[cig-commits] commit: Remove xml input files and move json_input to input

Mercurial hg at geodynamics.org
Wed Nov 23 16:23:23 PST 2011


changeset:   434:8de894d93a65
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Wed Nov 23 16:23:00 2011 -0800
files:       Q2Pm1_input/benchmarks/README Q2Pm1_input/benchmarks/divergence.xml Q2Pm1_input/benchmarks/divergence3D.xml Q2Pm1_input/benchmarks/geomod_2004_extension.xml Q2Pm1_input/benchmarks/geomod_2008_brittle.xml Q2Pm1_input/benchmarks/sinusoid.xml Q2Pm1_input/benchmarks/stressbc.xml Q2Pm1_input/benchmarks/stressbc3D.xml Q2Pm1_input/cookbook/multi_material.xml Q2Pm1_input/cookbook/non_newtonian.xml Q2Pm1_input/cookbook/template.xml Q2Pm1_input/cookbook/thermal.xml Q2Pm1_input/cookbook/thermal_file.xml Q2Pm1_input/cookbook/tracers.xml Q2Pm1_input/cookbook/velocities Q2Pm1_input/cookbook/viscous.xml Q2Pm1_input/cookbook/viscous_bottom.xml Q2Pm1_input/cookbook/viscous_deformed_bottom.xml Q2Pm1_input/cookbook/viscous_extension.xml Q2Pm1_input/cookbook/viscous_extension3D.xml Q2Pm1_input/cookbook/viscous_file.xml Q2Pm1_input/cookbook/viscous_inflow.xml Q2Pm1_input/cookbook/viscous_normal_stress.xml Q2Pm1_input/cookbook/viscous_sinusoid.xml Q2Pm1_input/cookbook/viscous_split.xml Q2Pm1_input/cookbook/yielding.xml Q2Pm1_input/cookbook/yielding_OneToMany.xml input/benchmarks/circular_inclusion.json input/benchmarks/circular_inclusion/README input/benchmarks/circular_inclusion/circular_inclusion.xml input/benchmarks/divergence.json input/benchmarks/divergence/README input/benchmarks/divergence/divergence.xml input/benchmarks/divergence/divergence3D.xml input/benchmarks/divergence3D.json input/benchmarks/drucker_prager.json input/benchmarks/drucker_prager.xml input/benchmarks/falling_sphere/README input/benchmarks/falling_sphere/sphere_in_cylinder.xml input/benchmarks/geomod2004_extension.json input/benchmarks/geomod_2004_extension.xml input/benchmarks/geomod_2004_shortening.xml input/benchmarks/geomod_2004_shortening_nodiff.xml input/benchmarks/geomod_2008_brittle.xml input/benchmarks/geomod_2008_stable.xml input/benchmarks/geomod_2008_unstable.xml input/benchmarks/sinusoid.json input/benchmarks/sinusoid.xml input/benchmarks/sphere_in_cylinder.json input/benchmarks/thermal_diffusion.json input/benchmarks/thermal_eulerian.json input/benchmarks/thermal_lagrangian.json input/cookbook/deforming_bottom.json input/cookbook/extension.json input/cookbook/extension3D.json input/cookbook/file.json input/cookbook/fixed_bottom.json input/cookbook/hydrostatic.xml input/cookbook/inflow_outflow.json input/cookbook/multi_material.json input/cookbook/multi_material.xml input/cookbook/non_newtonian.json input/cookbook/non_newtonian.xml input/cookbook/normal_stress.json input/cookbook/sinusoid.json input/cookbook/split.json input/cookbook/template.json input/cookbook/template.xml input/cookbook/test.topo input/cookbook/thermal.json input/cookbook/thermal.xml input/cookbook/thermal_density.xml input/cookbook/thermal_file.json input/cookbook/thermal_file.xml input/cookbook/thermal_only.json input/cookbook/tracers.json input/cookbook/tracers.xml input/cookbook/viscous.json input/cookbook/viscous.xml input/cookbook/viscous_bottom.xml input/cookbook/viscous_deformed_bottom.xml input/cookbook/viscous_extension.xml input/cookbook/viscous_extension3D.xml input/cookbook/viscous_file.xml input/cookbook/viscous_inflow.xml input/cookbook/viscous_normal_stress.xml input/cookbook/viscous_periodic.xml input/cookbook/viscous_sinusoid.xml input/cookbook/viscous_split.xml input/cookbook/yielding.json input/cookbook/yielding.xml input/examples/dike.xml input/examples/subduction.xml
description:
Remove xml input files and move json_input to input


diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/README
--- a/Q2Pm1_input/benchmarks/README	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-sphere in cylinder
-------------------
-
-  Gale sphere_in_cylinder.xml --elementResI=8 --elementResJ=16 --elementResK=8 --outputPath="./sphere_cylinder_16_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=16 --elementResJ=32 --elementResK=16 --outputPath="./sphere_cylinder_32_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=32 --elementResJ=64 --elementResK=32 --outputPath="./sphere_cylinder_64_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=32 --elementResJ=128 --elementResK=64 --outputPath="./sphere_cylinder_128_4_8"
-
-sinusoid
---------
-
-  Gale sinusoid.xml --elementResI=64 --elementResJ=128 --outputPath="./sinusoid_64_128"
-  Gale sinusoid.xml --elementResI=128 --elementResJ=256 --outputPath="./sinusoid_128_256"
-  Gale sinusoid.xml --elementResI=256 --elementResJ=512 --outputPath="./sinusoid_256_512"
-
-stressbc
---------
-
-In 2D
-
-  Gale stressbc.xml --elementResI=5 --elementResJ=5 --outputPath="./stressbc_5"
-  Gale stressbc.xml --elementResI=10 --elementResJ=10 --outputPath="./stressbc_10"
-  Gale stressbc.xml --elementResI=20 --elementResJ=20 --outputPath="./stressbc_20"
-
-In 3D
-
-  Gale stressbc3D.xml --elementResI=4 --elementResJ=4 --elementResK=4 --outputPath="./stressbc3D_4"
-  Gale stressbc3D.xml --elementResI=8 --elementResJ=8 --elementResK=8 --outputPath="./stressbc3D_8"
-  Gale stressbc3D.xml --elementResI=16 --elementResJ=16 --elementResK=16 --outputPath="./stressbc3D_16"
-
-The L-Infinity norm of the velocity should decrease by a factor of 8
-each time for both 2D and 3D.
-
-divergence
-----------
-
-  Gale divergence.xml --linearTolerance=1.0e-5 --outputPath=divergence5
-  Gale divergence.xml --linearTolerance=1.0e-6 --outputPath=divergence6
-  Gale divergence.xml --linearTolerance=1.0e-7 --outputPath=divergence7
-  Gale divergence.xml --linearTolerance=1.0e-8 --outputPath=divergence8
-  Gale divergence.xml --linearTolerance=1.0e-9 --outputPath=divergence9
-
-  Gale divergence3D.xml --linearTolerance=1.0e-5 --outputPath=divergence3D_5
-  Gale divergence3D.xml --linearTolerance=1.0e-6 --outputPath=divergence3D_6
-  Gale divergence3D.xml --linearTolerance=1.0e-7 --outputPath=divergence3D_7
-  Gale divergence3D.xml --linearTolerance=1.0e-8 --outputPath=divergence3D_8
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/divergence.xml
--- a/Q2Pm1_input/benchmarks/divergence.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,548 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-p    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="chamberShape">
-      <param name="Type">Sphere</param>
-      <param name="radius">10.0</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">1.0</param>
-      <param name="CentreZ">1.0</param>
-    </struct>
-
-    <struct name="topLeftShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="topRightShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="bottomLeftShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="bottomRightShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    
-      
-    <struct name="divergenceForce">
-      <param name="Type">DivergenceForce</param>
-      <param name="ForceVector">cont_force</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="DomainShape">chamberShape</param>
-      <param name="GeometryMesh">mesh-Q2</param>
-      <param name="force_type">double</param>
-      <param name="force_value">-2</param>
-    </struct>
-
-
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>StrainRateInvariantField</param>
-  </list>
-  <param name="checkpointEvery">1</param>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">0</param>
-  <param name="outputPath">./output.divergence</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">2.0f</param>
-  <param name="maxZ">2.0f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">16</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="checkpointEvery">1</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/divergence3D.xml
--- a/Q2Pm1_input/benchmarks/divergence3D.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,693 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-p    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="chamberShape">
-      <param name="Type">Sphere</param>
-      <param name="radius">10.0</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">1.0</param>
-      <param name="CentreZ">1.0</param>
-    </struct>
-
-    <struct name="topLeftFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="topRightFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="bottomLeftFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="bottomRightFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-
-
-    <struct name="topLeftBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="topRightBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="bottomLeftBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="bottomRightBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-    
-      
-    <struct name="divergenceForce">
-      <param name="Type">DivergenceForce</param>
-      <param name="ForceVector">cont_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="DomainShape">chamberShape</param>
-      <param name="GeometryMesh">mesh-Q2</param>
-      <param name="force_type">double</param>
-      <param name="force_value">-3</param>
-    </struct>
-
-
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>StrainRateInvariantField</param>
-  </list>
-  <param name="checkpointEvery">1</param>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">0</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.divergence3D</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">2.0f</param>
-  <param name="maxZ">2.0f</param>
-  <param name="elementResI">8</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">8</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="checkpointEvery">1</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/geomod_2004_extension.xml
--- a/Q2Pm1_input/benchmarks/geomod_2004_extension.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,568 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="pdmsShape">
-      <param name="Type">Box</param>
-      <param name="startX">0.05</param>
-      <param name="endX">0.15</param>
-      <param name="startY">0.0</param>
-      <param name="endY">0.005</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="crustShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!pdmsShape</param>
-      </list>
-    </struct>
-    <struct name="crustViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.1</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="pdmsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">5.0e-6</param>
-<!--       <param name="eta0">50000.0</param> -->
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">crustShape</param>
-      <param name="density">1560.0</param>
-      <list name="Rheology">
-        <param>crustViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="pdms">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">pdmsShape</param>
-      <param name="density">965.0</param>
-      <list name="Rheology">
-        <param>pdmsViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="checkpointEvery">1</param>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output.extension</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.20f</param>
-  <param name="maxY">0.035f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">8</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">StepFunction</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="StepFunctionLowerOffset">0.099</param>
-  <param name="StepFunctionUpperOffset">0.101</param>
-  <param name="StepFunctionValue">6.94444444444e4</param>
-<!--   <param name="StepFunctionValue">6.94444444444e-6</param> -->
-  <param name="StepFunctionDim">0</param>
-  <param name="StepFunctionLessThan">False</param>
-  <!-- <param name="checkpointEvery">100</param> -->
-  <param name="mgLevels">2</param>
-  <param name="dtFactor">1.0</param>
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="maxUzawaIterations">5000</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-  <param name="minimumViscosity">1.0e-4</param>
-  <param name="maxStrainRate">5e8</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/geomod_2008_brittle.xml
--- a/Q2Pm1_input/benchmarks/geomod_2008_brittle.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,627 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="corundumShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">0.01</param>
-      <param name="endY">0.02</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="quartzShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!corundumShape</param>
-      </list>
-    </struct>
-
-    <struct name="quartzStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="quartzYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">quartzStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.286745385759</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.249328002843</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="quartzViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="corundumStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="corundumYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">corundumStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.445228685309</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.42447481621</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="corundumViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="quartz">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">quartzShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>quartzViscosity</param>
-        <param>quartzYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="corundum">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">corundumShape</param>
-      <param name="density">1890</param>
-      <list name="Rheology">
-        <param>corundumViscosity</param>
-        <param>corundumYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="checkpointEvery">1</param>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output.geomod_brittle</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.35f</param>
-  <param name="maxY">0.03f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="floatRightTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">StepFunction</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-
-  <param name="StepFunctionLowerValue">6.94444444444e4</param>
-<!--   <param name="StepFunctionLowerValue">6.94444444444e-6</param> -->
-  <param name="StepFunctionUpperValue">0</param>
-  <param name="StepFunctionLowerOffset">0.23</param>
-  <param name="StepFunctionUpperOffset">0.23</param>
-  <param name="minimumViscosity">1e-6</param>
-  <param name="maxStrainRate">5e6</param>
-
-  <!-- <param name="checkpointEvery">100</param> -->
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/sinusoid.xml
--- a/Q2Pm1_input/benchmarks/sinusoid.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,476 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="pdmsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="pdms">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">background</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>pdmsViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="topSurfaceType">cosine</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topAmplitude">0.01</param>
-      <param name="topFrequency">6.28318530718</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="checkpointEvery">1</param>
-  <param name="maxTimeSteps">50</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output.sinusoid</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.5f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">3</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="gravity">1.</param>
-  <param name="linearTolerance">1.0e-5</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/stressbc.xml
--- a/Q2Pm1_input/benchmarks/stressbc.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,482 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <!-- <param name="Swarm">picIntegrationPoints</param> -->
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="normal_type">func</param>
-      <param name="normal_value">Equation1</param>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="bottomSurfaceType">wedge</param>
-      <param name="bottomBeginOffset">0</param>
-      <param name="bottomEndOffset">1</param>
-      <param name="bottomGradient">0.1</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">0</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">1.0f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">1</param>
-  <param name="elementResJ">1</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="wrapBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">1.0-y</param>
-  <param name="linearTolerance">1e-10</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/benchmarks/stressbc3D.xml
--- a/Q2Pm1_input/benchmarks/stressbc3D.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <!-- <param name="Swarm">picIntegrationPoints</param> -->
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="normal_type">func</param>
-      <param name="normal_value">Equation1</param>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="bottomSurfaceType">wedge</param>
-      <param name="bottomBeginOffset">0</param>
-      <param name="bottomEndOffset">1</param>
-      <param name="bottomGradient">0.1</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">0</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">1.0f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">1</param>
-  <param name="elementResJ">1</param>
-  <param name="elementResK">1</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="wrapBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">1.0-y</param>
-  <param name="linearTolerance">1e-10</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/multi_material.xml
--- a/Q2Pm1_input/cookbook/multi_material.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,487 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/non_newtonian.xml
--- a/Q2Pm1_input/cookbook/non_newtonian.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,657 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="nonNewtonian">
-      <param name="Type">NonNewtonian</param>
-      <param name="StrainRateInvariantField">StrainRateInvariantField</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="n">3.4</param>
-      <param name="T_0">1.0</param>
-      <param name="A">1.0</param>
-      <param name="refStrainRate">0.01</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>nonNewtonian</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <!-- Energy Equation -->
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="defaultDiffusivity">1</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/template.xml
--- a/Q2Pm1_input/cookbook/template.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,436 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/thermal.xml
--- a/Q2Pm1_input/cookbook/thermal.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,648 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">oneToManyMapper</param>
-    </struct>
-    <struct name="oneToManyMapper">
-      <param name="Type">OneToManyMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <!-- Energy Equation -->
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">gaussSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="defaultDiffusivity">1</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/thermal_file.xml
--- a/Q2Pm1_input/cookbook/thermal_file.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,653 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <!-- Energy Equation -->
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">File1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="defaultDiffusivity">1</param>
-  <param name="File1_Name">input/cookbook/temperatures</param>
-  <param name="File1_Dim">0</param>
-  <param name="File1_N">202</param>
-  <param name="File1_Dim2">1</param>
-  <param name="File1_N2">37</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/tracers.xml
--- a/Q2Pm1_input/cookbook/tracers.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,543 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="bottomSurfaceType">cylinder</param>
-      <param name="bottomX0">SolidBodyRotationCentreX</param>
-      <param name="bottomY0">SolidBodyRotationCentreY</param>
-      <param name="bottomRadius">InnerRadiusCylinder</param>
-      <param name="bottomMinX">CylinderMinX</param>
-      <param name="bottomMaxX">CylinderMaxX</param>
-    </struct>
-
-    <struct name="pLayout">
-      <param name="Type">ManualParticleLayout</param>
-      <param name="totalInitialParticles">1</param>
-      <list name="manualParticlePositions">
-        <asciidata>
-          <columnDefinition name="x">
-            <param name="type">double</param>
-          </columnDefinition>
-          <columnDefinition name="y">
-            <param name="type">double</param>
-          </columnDefinition>
-          <columnDefinition name="z">
-            <param name="type">double</param>
-          </columnDefinition>
-          1.0 .1 .1
-          1.3 .1 .1
-          1.6 .1 .1
-          1.9 .1 .1
-          1.0 .2 .1
-          1.3 .2 .1
-          1.6 .2 .1
-          1.9 .2 .1
-        </asciidata>
-      </list>
-    </struct>
-    <struct name="passiveSwarmMovementHandler">
-      <param name="Type"> ParticleMovementHandler </param>
-    </struct>
-    <struct name="passiveTracerSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">pLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param> passiveSwarmMovementHandler </param>
-      </list>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="passiveTracerAdvect">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">passiveTracerSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-    </struct>
-    <struct name="swarmOutput">
-      <param name="Type">TracerOutput</param>
-      <param name="Swarm">passiveTracerSwarm</param>
-      <list name="Fields">
-        <param>PressureField</param>
-        <param>StrainRateInvariantField</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">100</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <param name="staticBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">equation</param>
-            <param name="value">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">equation</param>
-            <param name="value">r=hypot(x,y+3), -step(3.35-r)*x</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">equation</param>
-            <param name="value">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="Equation1">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-  <param name="Equation2">r=hypot(x,y+3), -step(3.35-r)*x</param>
-
-  <param name="SolidBodyRotationCentreX">0</param>
-  <param name="SolidBodyRotationCentreY">-3</param>
-  <param name="InnerRadiusCylinder">3.15</param>
-  <param name="CylinderMinX">0</param>
-  <param name="CylinderMaxX">0.960468635615</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/velocities
--- a/Q2Pm1_input/cookbook/velocities	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-0.0 0
-0.02 3.07487987013e-09
-0.04 4.58718172561e-09
-0.06 6.84327097539e-09
-0.08 1.02089606194e-08
-0.1 1.52299795128e-08
-0.12 2.27204594115e-08
-0.14 3.38949421131e-08
-0.16 5.05653109265e-08
-0.18 7.54345778081e-08
-0.2 1.12535162055e-07
-0.22 1.67882724815e-07
-0.24 2.50451574507e-07
-0.26 3.73629798389e-07
-0.28 5.57390058586e-07
-0.3 8.31528027664e-07
-0.32 1.24049354113e-06
-0.34 1.85059777286e-06
-0.36 2.76076495019e-06
-0.38 4.11857174483e-06
-0.4 6.14417460221e-06
-0.42 9.16600371985e-06
-0.44 1.36740090846e-05
-0.46 2.03990872799e-05
-0.48 3.04315569006e-05
-0.5 4.53978687024e-05
-0.52 6.77241496198e-05
-0.54 0.000101029193908
-0.56 0.00015071035806
-0.58 0.000224816770233
-0.6 0.000335350130466
-0.62 0.00050020110708
-0.64 0.000746028833837
-0.66 0.00111253603286
-0.68 0.00165880108017
-0.7 0.00247262315663
-0.72 0.00368423989944
-0.74 0.00548629889945
-0.76 0.00816257115316
-0.78 0.0121284349843
-0.8 0.0179862099621
-0.82 0.0265969935769
-0.84 0.0391657227968
-0.86 0.0573241758989
-0.88 0.0831726964939
-0.9 0.119202922022
-0.92 0.167981614866
-0.94 0.231475216501
-0.96 0.310025518872
-0.98 0.401312339888
-1.0 0.5
-1.02 0.598687660112
-1.04 0.689974481128
-1.06 0.768524783499
-1.08 0.832018385134
-1.1 0.880797077978
-1.12 0.916827303506
-1.14 0.942675824101
-1.16 0.960834277203
-1.18 0.973403006423
-1.2 0.982013790038
-1.22 0.987871565016
-1.24 0.991837428847
-1.26 0.994513701101
-1.28 0.996315760101
-1.3 0.997527376843
-1.32 0.99834119892
-1.34 0.998887463967
-1.36 0.999253971166
-1.38 0.999499798893
-1.4 0.99966464987
-1.42 0.99977518323
-1.44 0.999849289642
-1.46 0.999898970806
-1.48 0.99993227585
-1.5 0.999954602131
-1.52 0.999969568443
-1.54 0.999979600913
-1.56 0.999986325991
-1.58 0.999990833996
-1.6 0.999993855825
-1.62 0.999995881428
-1.64 0.999997239235
-1.66 0.999998149402
-1.68 0.999998759506
-1.7 0.999999168472
-1.72 0.99999944261
-1.74 0.99999962637
-1.76 0.999999749548
-1.78 0.999999832117
-1.8 0.999999887465
-1.82 0.999999924565
-1.84 0.999999949435
-1.86 0.999999966105
-1.88 0.99999997728
-1.9 0.99999998477
-1.92 0.999999989791
-1.94 0.999999993157
-1.96 0.999999995413
-1.98 0.999999996925
-2.0 1.0
-4.0 1.0
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous.xml
--- a/Q2Pm1_input/cookbook/viscous.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_bottom.xml
--- a/Q2Pm1_input/cookbook/viscous_bottom.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">100</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="normal_type">func</param>
-      <param name="normal_value">Equation1</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="wrapBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">0.35-y</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_deformed_bottom.xml
--- a/Q2Pm1_input/cookbook/viscous_deformed_bottom.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="bottomSurfaceType">cylinder</param>
-      <param name="bottomX0">SolidBodyRotationCentreX</param>
-      <param name="bottomY0">SolidBodyRotationCentreY</param>
-      <param name="bottomRadius">InnerRadiusCylinder</param>
-      <param name="bottomMinX">CylinderMinX</param>
-      <param name="bottomMaxX">CylinderMaxX</param>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <param name="staticBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="Equation1">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-  <param name="Equation2">r=hypot(x,y+3), -step(3.35-r)*x</param>
-
-  <param name="SolidBodyRotationCentreX">0</param>
-  <param name="SolidBodyRotationCentreY">-3</param>
-  <param name="InnerRadiusCylinder">3.15</param>
-  <param name="CylinderMinX">0</param>
-  <param name="CylinderMaxX">0.960468635615</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_extension.xml
--- a/Q2Pm1_input/cookbook/viscous_extension.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_extension3D.xml
--- a/Q2Pm1_input/cookbook/viscous_extension3D.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,496 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">backgroundShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="topSurfaceType">topo_data</param>
-      <param name="topSurfaceName">input/cookbook/test.topo</param>
-      <param name="topNx">32</param>
-      <param name="topNz">12</param>
-      <param name="topMinX">minX</param>
-      <param name="topMaxX">maxX</param>
-      <param name="topMinZ">minZ</param>
-      <param name="topMaxZ">maxZ</param>
-      
-      <param name="bottomSurfaceType">wedge</param>
-      <param name="bottomBeginOffset">0</param>
-      <param name="bottomEndOffset">1.0</param>
-      <param name="bottomGradient">-0.1</param>
-      <param name="bottomGradientZ">0.0</param>
-    </struct>
- 
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">8</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_file.xml
--- a/Q2Pm1_input/cookbook/viscous_file.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,468 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">File1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="File1_Name">input/cookbook/velocities</param>
-  <param name="File1_Dim">0</param>
-  <param name="File1_N">102</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_inflow.xml
--- a/Q2Pm1_input/cookbook/viscous_inflow.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,471 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation3</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">step(y-0.1)*step(0.2-y)</param>
-  <param name="Equation2">-step(x-0.9)*step(1.1-x)</param>
-  <param name="Equation3">step(x-0.9)*step(1.1-x)</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_normal_stress.xml
--- a/Q2Pm1_input/cookbook/viscous_normal_stress.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="normal_type">func</param>
-      <param name="normal_value">Equation1</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticBottom">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">0.35-y</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_sinusoid.xml
--- a/Q2Pm1_input/cookbook/viscous_sinusoid.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,466 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">backgroundShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="sourceGenerator">Q2Mesh-generator</param>
-      <param name="topSurfaceType">sine</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topAmplitude">0.1</param>
-      <param name="topFrequency">6.28318530718</param>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/viscous_split.xml
--- a/Q2Pm1_input/cookbook/viscous_split.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,466 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">step(x-1)</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/yielding.xml
--- a/Q2Pm1_input/cookbook/yielding.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,510 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">nearestMapper</param>
-    </struct>
-    <struct name="nearestMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="softeningStrain">0.1</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">1.0</param>
-      <param name="cohesionAfterSoftening">0.0001</param>
-      <param name="frictionCoefficient">0.0</param>
-      <param name="frictionCoefficientAfterSoftening">0.0</param>
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 Q2Pm1_input/cookbook/yielding_OneToMany.xml
--- a/Q2Pm1_input/cookbook/yielding_OneToMany.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,517 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-Q2">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">quadratic</param>
-    </struct>
-    <struct name="Q2Mesh-generator">
-      <param name="Type">C2Generator</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="mesh-Pm1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear-inner</param>
-    </struct>
-    <struct name="Pm1Mesh-generator">
-      <param name="Type">InnerGenerator</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="elementMesh">mesh-Q2</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-Q2</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Q2</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Q2</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-Pm1</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-Pm1</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-Pm1</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="IC">stressICs</param>
-    </struct>
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-Q2</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-      <param name="gaussParticles">3</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">oneToManyMapper</param>
-      <!-- <param name="IntegrationPointMapper">nearestMapper</param> -->
-    </struct>
-    <struct name="oneToManyMapper">
-      <param name="Type">OneToManyMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-      <param name="HarmonicAverage">False</param>
-    </struct>
-    <!-- <struct name="nearestMapper"> -->
-    <!--   <param name="Type">NearestNeighborMapper</param> -->
-    <!--   <param name="IntegrationPointsSwarm">gaussSwarm</param> -->
-    <!--   <param name="MappedSwarm">picIntegrationPoints</param> -->
-    <!-- </struct> -->
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">20</param>
-      <param name="resolutionY">20</param>
-      <param name="resolutionZ">20</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-Q2</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-Q2</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <!-- <struct name="buoyancyForceTerm"> -->
-    <!--   <param name="Type">BuoyancyForceTerm</param> -->
-    <!--   <param name="ForceVector">mom_force</param> -->
-    <!--   <param name="Swarm">picIntegrationPoints</param> -->
-    <!--   <param name="gravity">gravity</param> -->
-    <!-- </struct> -->
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-Q2</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.10</param>
-    </struct>
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="softeningStrain">0.1</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">1.0</param>
-      <param name="cohesionAfterSoftening">0.0001</param>
-      <param name="frictionCoefficient">0.0</param>
-      <param name="frictionCoefficientAfterSoftening">0.0</param>
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>StrainRateInvariantField</param>
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">40</param>
-  <param name="seed">13</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-Q2</param>
-        <param name="innerMesh">mesh-Pm1</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/circular_inclusion.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/circular_inclusion.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,134 @@
+{
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "inclusionShape":
+        {
+            "Type": "EquationShape",
+            "equation": "1-(x*x+y*y)"
+        },
+        "backgroundShape":
+        {
+            "Type": "Intersection",
+            "shapes":[
+                "boxShape",
+                "!inclusionShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "inclusionViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "2.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "inclusion":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "inclusionShape",
+            "Rheology": [
+                "inclusionViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-x"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "y"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-x"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "y"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "0",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "80",
+    "maxY": "80",
+    "maxZ": "80",
+    "nx": "64",
+    "ny": "64",
+    "nz": "16",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1"
+ }
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/circular_inclusion/README
--- a/input/benchmarks/circular_inclusion/README	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-To check the results yourself, run the accompanying input file with 3 different resolutions:
-
-Gale circular_inclusion.xml --elementResI=128 --elementResJ=128 --outputPath=128
-
-Gale circular_inclusion.xml --elementResI=256 --elementResJ=256 --outputPath=256
-
-Gale circular_inclusion.xml --elementResI=512 --elementResJ=512 --outputPath=512
-
-You will probably need to run the last one on a parallel machine.
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/circular_inclusion/circular_inclusion.xml
--- a/input/benchmarks/circular_inclusion/circular_inclusion.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,529 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="inclusionShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">0.0</param>
-      <param name="CentreY">0.0</param>
-      <param name="radius">0.1</param>
-    </struct>
-    <struct name="viscousShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!inclusionShape</param>
-      </list>
-    </struct>
-    <struct name="viscousViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="inclusionViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">2</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">viscousShape</param>
-      <list name="Rheology">
-        <param>viscousViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="inclusion">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">inclusionShape</param>
-      <list name="Rheology">
-        <param>inclusionViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">1</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.circular_inclusion</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">8.0f</param>
-  <param name="maxY">8.0f</param>
-  <param name="maxZ">0.5f</param>
-  <param name="elementResI">64</param>
-  <param name="elementResJ">64</param>
-  <param name="elementResK">8</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_Extension</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_SimpleShear</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_Extension</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_SimpleShear</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-
-  <param name="SimpleShearFactor">1</param>
-  <param name="SimpleShearCentreY">0</param>
-  <param name="ExtensionFactor">-1</param>
-  <param name="ExtensionCentreX">0</param>
-  <param name="linearTolerance">1.0e-7</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/divergence.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/divergence.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,162 @@
+{
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "topLeftShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "topRightShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "bottomLeftShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "bottomRightShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "divergence":
+        {
+            "Type": "DivergenceForce",
+            "ForceVector": "cont_force",
+            "DomainShape": "boxShape",
+            "force_value": "-2"
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topLeftShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topRightShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomLeftShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomRightShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "0",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "2",
+    "maxZ": "2",
+    "nx": "4",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/divergence/README
--- a/input/benchmarks/divergence/README	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-# Run the benchmarks with
-
-./Gale divergence.xml --linearTolerance=1.0e-5 --outputPath=divergence5
-./Gale divergence.xml --linearTolerance=1.0e-6 --outputPath=divergence6
-./Gale divergence.xml --linearTolerance=1.0e-7 --outputPath=divergence7
-./Gale divergence.xml --linearTolerance=1.0e-8 --outputPath=divergence8
-./Gale divergence.xml --linearTolerance=1.0e-9 --outputPath=divergence9
-
-./Gale divergence3D.xml --particlesPerCell=30 --outputPath=divergence3D_30
-./Gale divergence3D.xml --particlesPerCell=60 --outputPath=divergence3D_60
-./Gale divergence3D.xml --particlesPerCell=120 --outputPath=divergence3D_120
-./Gale divergence3D.xml --particlesPerCell=240 --outputPath=divergence3D_240
-
-
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/divergence/divergence.xml
--- a/input/benchmarks/divergence/divergence.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,578 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-p    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="chamberShape">
-      <param name="Type">Sphere</param>
-      <param name="radius">10.0</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">1.0</param>
-      <param name="CentreZ">1.0</param>
-    </struct>
-
-    <struct name="topLeftShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="topRightShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="bottomLeftShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="bottomRightShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    
-      
-    <struct name="divergenceForce">
-      <param name="Type">DivergenceForce</param>
-      <param name="ForceVector">cont_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="DomainShape">chamberShape</param>
-      <param name="GeometryMesh">mesh-linear</param>
-      <param name="force_type">double</param>
-      <param name="force_value">-2</param>
-    </struct>
-
-
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">1</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.divergence</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">2.0f</param>
-  <param name="maxZ">2.0f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">16</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="checkpointEvery">1</param>
-  <param name="ExtensionFactor">1</param>
-  <param name="ExtensionCentreX">1</param>
-
-  <param name="SimpleShearFactor">1</param>
-  <param name="SimpleShearCentreY">1</param>
-
- <param name="journal.info">True</param>
- <param name="journal.debug">True</param>
- <param name="journal-level.info">2</param>
- <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/divergence/divergence3D.xml
--- a/input/benchmarks/divergence/divergence3D.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,721 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-p    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="chamberShape">
-      <param name="Type">Sphere</param>
-      <param name="radius">10.0</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">1.0</param>
-      <param name="CentreZ">1.0</param>
-    </struct>
-
-    <struct name="topLeftFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="topRightFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="bottomLeftFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-    <struct name="bottomRightFrontShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">-0.01</param>
-      <param name="endZ">0.01</param>
-    </struct>
-
-
-
-    <struct name="topLeftBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="topRightBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">1.99</param>
-      <param name="endY">2.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="bottomLeftBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">-0.01</param>
-      <param name="endX">0.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-
-    <struct name="bottomRightBackShape">
-      <param name="Type">Box</param>
-      <param name="startX">1.99</param>
-      <param name="endX">2.01</param>
-      <param name="startY">-0.01</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">1.99</param>
-      <param name="endZ">2.01</param>
-    </struct>
-    
-      
-    <struct name="divergenceForce">
-      <param name="Type">DivergenceForce</param>
-      <param name="ForceVector">cont_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="DomainShape">chamberShape</param>
-      <param name="GeometryMesh">mesh-linear</param>
-      <param name="force_type">double</param>
-      <param name="force_value">-3</param>
-    </struct>
-
-
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">1</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.divergence3D</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">2.0f</param>
-  <param name="maxZ">2.0f</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">16</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightFrontShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topLeftBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">topRightBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomLeftBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">bottomRightBackShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="checkpointEvery">1</param>
-  <param name="ExtensionFactor">1</param>
-  <param name="ExtensionCentreX">1</param>
-
-  <param name="SimpleShearFactor">1</param>
-  <param name="SimpleShearCentreY">1</param>
-
- <param name="journal.info">True</param>
- <param name="journal.debug">True</param>
- <param name="journal-level.info">2</param>
- <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/divergence3D.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/divergence3D.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,290 @@
+{
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "topLeftFrontShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "-0.01",
+            "endZ": "0.01"
+        },
+        "topRightFrontShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "-0.01",
+            "endZ": "0.01"
+        },
+        "bottomLeftFrontShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "-0.01",
+            "endZ": "0.01"
+        },
+        "bottomRightFrontShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "-0.01",
+            "endZ": "0.01"
+        },
+        "topLeftBackShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "1.99",
+            "endZ": "2.01"
+        },
+        "topRightBackShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "1.99",
+            "endY": "2.01",
+            "startZ": "1.99",
+            "endZ": "2.01"
+        },
+        "bottomLeftBackShape":
+        {
+            "Type": "Box",
+            "startX": "-0.01",
+            "endX": "0.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "1.99",
+            "endZ": "2.01"
+        },
+        "bottomRightBackShape":
+        {
+            "Type": "Box",
+            "startX": "1.99",
+            "endX": "2.01",
+            "startY": "-0.01",
+            "endY": "0.01",
+            "startZ": "1.99",
+            "endZ": "2.01"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "divergence":
+        {
+            "Type": "DivergenceForce",
+            "ForceVector": "cont_force",
+            "DomainShape": "boxShape",
+            "force_value": "-3"
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topLeftFrontShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "-1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topRightFrontShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "-1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomLeftFrontShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "-1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomRightFrontShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "-1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topLeftBackShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "topRightBackShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomLeftBackShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "MeshShapeVC",
+                "Shape": "bottomRightBackShape",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-1.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "0",
+    "outputPath": "./output",
+    "dim": "3",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "2",
+    "maxZ": "2",
+    "nx": "4",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/drucker_prager.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/drucker_prager.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,174 @@
+{
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "inclusionShape":
+        {
+            "Type": "EquationShape",
+            "equation": "(.01)^2-(x*x+y*y)"
+        },
+        "backgroundShape":
+        {
+            "Type": "Intersection",
+            "shapes":[
+                "boxShape",
+                "!inclusionShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "inclusionViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "0.0001"
+        },
+        "strainWeakening":
+        {
+            "Type": "StrainWeakening",
+            "TimeIntegrator": "timeIntegrator",
+            "MaterialPointsSwarm": "materialSwarm",
+            "softeningStrain": "0.1",
+            "initialDamageFraction": "0.0",
+            "initialDamageWavenumber": "0.5",
+            "initialDamageFactor": "0.5",
+            "healingRate": "0.0"
+        },
+        "yielding":
+        {
+            "Type": "DruckerPrager",
+            "PressureField": "PressureField",
+            "VelocityGradientsField": "VelocityGradientsField",
+            "MaterialPointsSwarm": "materialSwarm",
+            "Context": "context",
+            "StrainWeakening": "strainWeakening",
+            "StrainRateField": "StrainRateField",
+            "cohesion": "cohesion",
+            "cohesionAfterSoftening": "cohesionAfterSoftening",
+            "frictionCoefficient": "frictionCoefficient",
+            "frictionCoefficientAfterSoftening": "frictionCoefficient",
+            "minimumViscosity": "minimumViscosity",
+            "maxStrainRate": "maxStrainRate"
+        },
+        "brittle":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "Rheology": [
+                "backgroundViscosity",
+                "yielding",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "inclusion":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "inclusionShape",
+            "Rheology": [
+                "inclusionViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-x"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "y"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "-x"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "y"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "0",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "1",
+    "maxY": "1",
+    "maxZ": "1",
+    "nx": "64",
+    "ny": "64",
+    "nz": "16",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "nonLinearTolerance": "1.0e-3",
+    "linearTolerance": "1,0e-7",
+    "nonLinearMinIterations": "100",
+    "cohesion": "1e-6",
+    "cohesionAfterSoftening": "1e-10",
+    "frictionCoefficient": "1.0",
+    // "minimumViscosity": "1e-4",
+    "maxStrainRate": "100",
+    "journal.info": "True",
+    "journal.debug": "True",
+    "journal-level.info": "1",
+    "journal-level.debug": "1"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/drucker_prager.xml
--- a/input/benchmarks/drucker_prager.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,586 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMinIterations">nonLinearMinIterations</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">0.0</param>
-      <param name="CentreY">0.0</param>
-      <param name="radius">0.01</param>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">0.0001</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">density</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="finalSofteningStrain">0.1</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">cohesion</param>
-      <param name="cohesionAfterSoftening">cohesionAfterSoftening</param>
-      <param name="frictionCoefficient">frictionCoefficient</param>
-      <param name="frictionCoefficientAfterSoftening">frictionCoefficient</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">density</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">1</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./drucker_prager</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">1.0f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">64</param>
-  <param name="elementResJ">64</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearMinIterations">100</param>
-
-  <param name="cohesion">1.0e-6</param>
-  <param name="cohesionAfterSoftening">1.0e-10</param>
-  <param name="frictionCoefficient">1.0</param>
-  <param name="density">1.0</param>
-
-  <!-- <param name="minimumViscosity">1.0e-4</param> -->
-  <param name="maxStrainRate">100</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/falling_sphere/README
--- a/input/benchmarks/falling_sphere/README	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-To run the three testcases
-
-  Gale sphere_in_cylinder.xml --elementResI=8 --elementResJ=16 --elementResK=8 --outputPath="./sphere_cylinder_16_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=16 --elementResJ=32 --elementResK=16 --outputPath="./sphere_cylinder_32_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=32 --elementResJ=64 --elementResK=32 --outputPath="./sphere_cylinder_64_4_8"
-
-  Gale sphere_in_cylinder.xml --elementResI=32 --elementResJ=128 --elementResK=64 --outputPath="./sphere_cylinder_128_4_8"
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/falling_sphere/sphere_in_cylinder.xml
--- a/input/benchmarks/falling_sphere/sphere_in_cylinder.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,576 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">1</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="layer1">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-      </list>
-    </struct>
-    <struct name="kugel">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">centreX</param>
-      <param name="CentreY">centreY</param>
-      <param name="CentreZ">centreZ</param>
-      <param name="radius">1.0</param>
-    </struct>
-    <struct name="kugelViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">100</param>
-    </struct>
-    <struct name="kugelViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">kugel</param>
-      <param name="density">0.01</param>
-      <list name="Rheology">
-        <param>kugelViscosity</param>
-        <param>storeViscosity</param>
-      </list>
-    </struct>
-    <struct name="nonkugel">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!kugel</param>
-      </list>
-    </struct>
-
-    <!-- A shape for the interior of the cylinder -->
-    <struct name="cylinderShape">
-      <param name="Type">Cylinder</param>
-      <param name="CentreX">0.0</param>
-      <param name="CentreZ">0.0</param>
-      <param name="radius">maxX</param>
-      <param name="perpendicularAxis">y</param>
-    </struct>
-
-    <!-- A shape for the exterior, where everything needs to be fixed. -->
-    <struct name="nonCylinderShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!cylinderShape</param>
-      </list>
-    </struct>
-  </struct>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">1</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.sphere</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">4</param>
-  <param name="maxY">8</param>
-  <param name="maxZ">4</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">32</param>
-  <param name="elementResK">16</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <!-- Fix everything outside of the cylinder -->
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">nonCylinderShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="centreX">0.0</param>
-  <param name="centreY">4.0</param>
-  <param name="centreZ">0.0</param>
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod2004_extension.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/geomod2004_extension.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,204 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "9.81"
+        },
+        "backgroundShape":
+        {
+            "Type": "EquationShape",
+            "equation": "1"
+        },
+        "pdmsShape":
+        {
+            "Type": "Box",
+            "startX": "0.05",
+            "endX": "0.15",
+            "startY": "0",
+            "endY": "0.005",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "crustShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "backgroundShape",
+                "!pdmsShape"
+            ]
+        },
+        "crustViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0e2"
+            // "eta0": "1.0e12"
+        },
+        "strainWeakening":
+        {
+            "Type": "StrainWeakening",
+            "TimeIntegrator": "timeIntegrator",
+            "MaterialPointsSwarm": "materialSwarm",
+            "initialSofteningStrain": "0.5",
+            "finalSofteningStrain": "1.0",
+            "initialDamageFraction": "0.0",
+            "initialDamageWavenumber": "0.5",
+            "initialDamageFactor": "0.5",
+            "healingRate": "0.0"
+        },
+        "yielding":
+        {
+            "Type": "DruckerPrager",
+            "PressureField": "PressureField",
+            "VelocityGradientsField": "VelocityGradientsField",
+            "MaterialPointsSwarm": "materialSwarm",
+            "Context": "context",
+            "StrainWeakening": "strainWeakening",
+            "StrainRateField": "StrainRateField",
+            "cohesion": "10.0",
+            "cohesionAfterSoftening": "0.1",
+            "frictionCoefficient": "0.726542528005",
+            "frictionCoefficientAfterSoftening": "0.600860619027",
+            "minimumViscosity": "minimumViscosity",
+            "maxStrainRate": "maxStrainRate"
+        },
+        "pdmsViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "5e-6"
+            // "eta0": "50000"
+        },
+        "crust":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "crustShape",
+            "density": "1560.0",
+            "Rheology": [
+                "crustViscosity",
+                "yielding",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "pdms":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "pdmsShape",
+            "density": "965.0",
+            "Rheology": [
+                "pdmsViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "front",
+                "variables": [
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "back",
+                "variables": [
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "6.94444444444e4"
+                        // "value": "6.94444444444e-6"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "(step(x-0.101) + (x-0.099)/(.002)*step(x-.099)*step(0.101-x))*6.94444444444e4"
+                        // "value": "step(1-x)*6.94444444444e-6"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "5000",
+    "outputPath": "./output.extension",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "0.2",
+    "maxY": "0.035",
+    "maxZ": "1",
+    "nx": "64",
+    "ny": "16",
+    "nz": "8",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "linearTolerance": "1e-7",
+    "nonLinearTolerance": "1e-3",
+    "maxUzawaIterations": "5000",
+    "minimumViscosity": "1e-6",
+    "maxStrainRate": "1e6",
+    "journal.info": "True",
+    "journal.debug": "True",
+    "journal-level.info": "1",
+    "journal-level.debug": "1"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2004_extension.xml
--- a/input/benchmarks/geomod_2004_extension.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,593 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="pdmsShape">
-      <param name="Type">Box</param>
-      <param name="startX">0.05</param>
-      <param name="endX">0.15</param>
-      <param name="startY">0.0</param>
-      <param name="endY">0.005</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="crustShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!pdmsShape</param>
-      </list>
-    </struct>
-    <struct name="crustViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.1</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="pdmsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">5.0e-6</param>
-<!--       <param name="eta0">50000.0</param> -->
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">crustShape</param>
-      <param name="density">1560.0</param>
-      <list name="Rheology">
-        <param>crustViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="pdms">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">pdmsShape</param>
-      <param name="density">965.0</param>
-      <list name="Rheology">
-        <param>pdmsViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.extension</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.20f</param>
-  <param name="maxY">0.035f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">8</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">StepFunction</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="StepFunctionLowerOffset">0.099</param>
-  <param name="StepFunctionUpperOffset">0.101</param>
-  <param name="StepFunctionValue">6.94444444444e4</param>
-<!--   <param name="StepFunctionValue">6.94444444444e-6</param> -->
-  <param name="StepFunctionDim">0</param>
-  <param name="StepFunctionLessThan">False</param>
-  <param name="checkpointEvery">100</param>
-  <param name="mgLevels">2</param>
-  <param name="dtFactor">1.0</param>
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="maxUzawaIterations">5000</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-  <param name="minimumViscosity">1.0e-4</param>
-  <param name="maxStrainRate">5e8</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2004_shortening.xml
--- a/input/benchmarks/geomod_2004_shortening.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,670 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_SurfaceProcess</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="beadsShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">0.005</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sandShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!beadsShape</param>
-      </list>
-    </struct>
-
-    <struct name="sandStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="sandYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">sandStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.01</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">0.01</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.34432761329</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.34432761329</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-    </struct>
-    <struct name="sandViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="beadsStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="beadsYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">beadsStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.01</param>
-      <param name="frictionCoefficient">0.404026225835</param>
-      <param name="frictionCoefficientAfterSoftening">0.363970234266</param>
-      <param name="boundaryCohesion">0.01</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.34432761329</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.34432761329</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-    </struct>
-    <struct name="beadsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="sand">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sandShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>sandViscosity</param>
-        <param>sandYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="beads">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">beadsShape</param>
-      <param name="density">1480</param>
-      <list name="Rheology">
-        <param>beadsViscosity</param>
-        <param>beadsYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="topSurfaceType">wedge</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topBeginOffset">.3</param>
-      <param name="topEndOffset">100</param>
-      <param name="topGradient">0.1763269807</param>
-    </struct>
-
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.geomod_shortening</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.40f</param>
-  <param name="maxY">0.035f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">32</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticRight">True</param>
-        <param name="staticRightBottom">True</param>
-        <param name="floatRightTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="SurfaceProcess">
-    <param name="mesh">mesh-linear</param>
-    <param name="VelocityField">VelocityField</param>
-    <param name="diffusionCoefficient">1.0e4</param>
-<!--   <param name="diffusionCoefficient">1.0e-6</param> -->
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="minimumViscosity">5e-8</param>
-  <param name="nonLinearMaxIterations">1000</param>
-
-  <param name="checkpointEvery">100</param>
-
-  <!-- <param name="journal.info">True</param> -->
-  <!-- <param name="journal.debug">True</param> -->
-  <!-- <param name="journal-level.info">2</param> -->
-  <!-- <param name="journal-level.debug">2</param> -->
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2004_shortening_nodiff.xml
--- a/input/benchmarks/geomod_2004_shortening_nodiff.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,660 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="beadsShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">0.005</param>
-      <param name="endY">0.01</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="sandShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!beadsShape</param>
-      </list>
-    </struct>
-
-    <struct name="sandStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="sandYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">sandStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.01</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">0.01</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.34432761329</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.34432761329</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-    </struct>
-    <struct name="sandViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="beadsStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="beadsYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">beadsStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">10.0</param>
-      <param name="cohesionAfterSoftening">0.01</param>
-      <param name="frictionCoefficient">0.404026225835</param>
-      <param name="frictionCoefficientAfterSoftening">0.363970234266</param>
-      <param name="boundaryCohesion">0.01</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.34432761329</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.34432761329</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-    </struct>
-    <struct name="beadsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="sand">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sandShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>sandViscosity</param>
-        <param>sandYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="beads">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">beadsShape</param>
-      <param name="density">1480</param>
-      <list name="Rheology">
-        <param>beadsViscosity</param>
-        <param>beadsYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="topSurfaceType">wedge</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topBeginOffset">.3</param>
-      <param name="topEndOffset">100</param>
-      <param name="topGradient">0.1763269807</param>
-    </struct>
-
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.geomod_shortening</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.40f</param>
-  <param name="maxY">0.035f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">32</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticRight">True</param>
-        <param name="staticRightBottom">True</param>
-        <param name="floatRightTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="minimumViscosity">5e-8</param>
-  <param name="nonLinearMaxIterations">1000</param>
-
-  <param name="checkpointEvery">100</param>
-
-  <!-- <param name="journal.info">True</param> -->
-  <!-- <param name="journal.debug">True</param> -->
-  <!-- <param name="journal-level.info">2</param> -->
-  <!-- <param name="journal-level.debug">2</param> -->
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2008_brittle.xml
--- a/input/benchmarks/geomod_2008_brittle.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,652 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="corundumShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">0.01</param>
-      <param name="endY">0.02</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="quartzShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!corundumShape</param>
-      </list>
-    </struct>
-
-    <struct name="quartzStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="quartzYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">quartzStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.286745385759</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.249328002843</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="quartzViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="corundumStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="corundumYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">corundumStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.445228685309</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.42447481621</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="corundumViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="quartz">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">quartzShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>quartzViscosity</param>
-        <param>quartzYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="corundum">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">corundumShape</param>
-      <param name="density">1890</param>
-      <list name="Rheology">
-        <param>corundumViscosity</param>
-        <param>corundumYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.geomod_brittle</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.35f</param>
-  <param name="maxY">0.03f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="floatRightTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">StepFunction</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-
-  <param name="StepFunctionLowerValue">6.94444444444e4</param>
-<!--   <param name="StepFunctionLowerValue">6.94444444444e-6</param> -->
-  <param name="StepFunctionUpperValue">0</param>
-  <param name="StepFunctionLowerOffset">0.23</param>
-  <param name="StepFunctionUpperOffset">0.23</param>
-  <param name="minimumViscosity">1e-6</param>
-  <param name="maxStrainRate">5e6</param>
-
-  <param name="checkpointEvery">100</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2008_stable.xml
--- a/input/benchmarks/geomod_2008_stable.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,641 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-
-    <struct name="wedgeShape">
-      <param name="Type">PolygonShape</param>
-      <list name="vertices">
-        <asciidata>
-          <columnDefinition name = "x" type="double"/>
-          <columnDefinition name = "y" type="double"/>
-          0.05        0.0
-          0.1324      0.0
-          0.1324      0.03
-        </asciidata>
-      </list>
-    </struct>
-
-    <struct name="bottomBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">boundaryHeight</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="quartzShape">
-      <param name="Type">Union</param>
-      <list name="shapes">
-        <param>wedgeShape</param>
-        <param>bottomBoundaryShape</param>
-      </list>
-    </struct>
-
-    <struct name="airShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!quartzShape</param>
-      </list>
-    </struct>
-
-    <struct name="quartzStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="quartzYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">quartzStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30.0</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.286745385759</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.249328002843</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-    </struct>
-    <struct name="quartzViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="airViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e-10</param>
-<!--       <param name="eta0">1.0e-6</param> -->
-<!--       <param name="eta0">1.0e4</param> -->
-    </struct>
-
-    <struct name="quartz">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">quartzShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>quartzViscosity</param>
-        <param>quartzYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="air">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">airShape</param>
-      <param name="density">0</param>
-      <list name="Rheology">
-        <param>airViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.geomod_stable</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.1324f</param>
-  <param name="maxY">0.032f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">32</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">False</param>
-        <param name="staticTop">True</param>
-        <param name="staticBottom">True</param>
-        <param name="staticRight">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">-6.94444444444e-6</param> -->
-<!--             <param name="value">0.0</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">-6.94444444444e-6</param> -->
-<!--             <param name="value">0.0</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="boundaryHeight">0.001</param>
-  <param name="minimumViscosity">5e-8</param>
-
-  <!-- <param name="journal.info">True</param> -->
-  <!-- <param name="journal.debug">True</param> -->
-  <!-- <param name="journal-level.info">2</param> -->
-  <!-- <param name="journal-level.debug">2</param> -->
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/geomod_2008_unstable.xml
--- a/input/benchmarks/geomod_2008_unstable.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,649 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct> 
-    <struct name="DensityField">
-      <param name="Type">DensityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="BuoyancyForceTerm">buoyancyForceTerm</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="corundumShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">0.01</param>
-      <param name="endY">0.02</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="quartzShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!corundumShape</param>
-      </list>
-    </struct>
-
-    <struct name="quartzStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="quartzYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">quartzStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.286745385759</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.249328002843</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="quartzViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="corundumStrainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.5</param>
-      <param name="finalSofteningStrain">1.0</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="corundumYielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">corundumStrainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">30.0</param>
-      <param name="cohesionAfterSoftening">30</param>
-      <param name="frictionCoefficient">0.726542528005</param>
-      <param name="frictionCoefficientAfterSoftening">0.600860619027</param>
-      <param name="boundaryCohesion">30</param>
-      <param name="boundaryCohesionAfterSoftening">0.01</param>
-      <param name="boundaryFrictionCoefficient">0.445228685309</param>
-      <param name="boundaryFrictionCoefficientAfterSoftening">0.42447481621</param>
-      <param name="boundaryBottom">True</param>
-      <param name="boundaryRight">True</param>
-      <param name="minimumViscosity">minimumViscosity</param>
-      <param name="maxStrainRate">maxStrainRate</param>
-    </struct>
-    <struct name="corundumViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0e2</param>
-<!--       <param name="eta0">1.0e12</param> -->
-    </struct>
-
-    <struct name="quartz">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">quartzShape</param>
-      <param name="density">1560</param>
-      <list name="Rheology">
-        <param>quartzViscosity</param>
-        <param>quartzYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="corundum">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">corundumShape</param>
-      <param name="density">1890</param>
-      <list name="Rheology">
-        <param>corundumViscosity</param>
-        <param>corundumYielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">5000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.geomod_unstable</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.35f</param>
-  <param name="maxY">0.03f</param>
-  <param name="maxZ">1.0f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticRight">True</param>
-        <param name="staticRightBottom">True</param>
-        <param name="floatRightTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <!-- 2.5 cm/hr -->
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">6.94444444444e4</param>
-<!--             <param name="value">6.94444444444e-6</param> -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <param name="linearTolerance">1.0e-7</param>
-  <param name="nonLinearTolerance">1.0e-3</param>
-  <param name="minimumViscosity">1e-6</param>
-  <param name="maxStrainRate">5e6</param>
-
-  <param name="checkpointEvery">100</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/sinusoid.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/sinusoid.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,110 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "backgroundShape":
+        {
+            "Type": "EquationShape",
+            "equation": "1"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "surfaceAdaptor":
+        {
+            "Type": "SurfaceAdaptor",
+            "mesh":"v-mesh",
+            "sourceGenerator": "v-mesh-generator",
+            "topEquation": "0.01*cos(2*pi*x)"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0.0",
+    "minY": "0.0",
+    "minZ": "0.0",
+    "maxX": "0.5",
+    "maxY": "1.0",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "32",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/sinusoid.xml
--- a/input/benchmarks/sinusoid.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,513 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="pdmsViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="pdms">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">background</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>pdmsViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="topSurfaceType">cosine</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topAmplitude">0.01</param>
-      <param name="topFrequency">6.28318530718</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-  </struct>
-  <param name="maxTimeSteps">50</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.sinusoid</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">0.5f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">3</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="gravity">1.</param>
-  <param name="linearTolerance">1.0e-5</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/sphere_in_cylinder.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/sphere_in_cylinder.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,184 @@
+{
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "cylinderShape": 
+        {
+            "Type": "EquationShape",
+            "equation": "4-hypot(x,z)"
+        },
+        "sphereShape": 
+        {
+            "Type": "EquationShape",
+            "equation": "1-(x*x + (y-4)*(y-4) + z*z)"
+        },
+        "backgroundShape":
+        {
+            "Type": "Intersection",
+            "shapes":[
+                "cylinderShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "density": "0.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "nonbackgroundShape":
+        {
+            "Type": "Intersection",
+            "shapes":[
+                "!backgroundShape"
+            ]
+        },
+        "highViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "100.0"
+        },
+        "sphere":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonbackgroundShape",
+            "density": "1.0",
+            "Rheology": [
+                "highViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "front",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "back",
+                "variables": [
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "0",
+    "outputPath": "./output",
+    "dim": "3",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "4",
+    "maxY": "8",
+    "maxZ": "4",
+    "nx": "8",
+    "ny": "16",
+    "nz": "8",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/thermal_diffusion.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/thermal_diffusion.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,119 @@
+{
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "3.14159",
+            "heatingElements": [
+                {
+                    "Q": "0.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity"
+            ]
+        }
+    },
+    "velocityICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "TemperatureField"
+    ],
+    "enable-stokes": false,
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "1",
+    "maxY": "1",
+    "maxZ": "0.3",
+    "nx": "8",
+    "ny": "8",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/thermal_eulerian.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/thermal_eulerian.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,156 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "staticLeft": "True",
+                "staticRight": "True",
+                "staticTop": "True",
+                "staticBottom": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "0.0",
+            "heatingElements": [
+                {
+                    "Q": "0.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity"
+            ]
+        }
+    },
+    "velocityICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "(x<.375 || x>.625 || y<.375 || y>.625) ? 1 : 2"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "TemperatureField",
+        "VelocityField"
+    ],
+    "enable-stokes": false,
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "2",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "16",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/benchmarks/thermal_lagrangian.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/benchmarks/thermal_lagrangian.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,152 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField"
+            }
+        ]
+    },
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "0.0",
+            "heatingElements": [
+                {
+                    "Q": "0.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity"
+            ]
+        }
+    },
+    "velocityICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "vx",
+                        "value": ".3*x-0.2"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "(x+.3)*(1.5-x)*y + (x-.15)*(0.7-x)"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "(x<.375 || x>.625 || y<.375 || y>.625) ? 1 : 2"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "TemperatureField",
+        "VelocityField"
+    ],
+    "enable-stokes": false,
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "1",
+    "maxY": "1",
+    "maxZ": "0.3",
+    "nx": "8",
+    "ny": "8",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/deforming_bottom.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/deforming_bottom.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,114 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True",
+                "wrapBottom": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+        ,"stressBC":
+        {
+            "Type": "StressBC",
+            "ForceVector": "mom_force",
+            "wall": "bottom",
+            "normal_value": "0.35-y"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/extension.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/extension.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,108 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/extension3D.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/extension3D.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,139 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "backgroundShape":
+        {
+            "Type": "EquationShape",
+            "equation": "1"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "surfaceAdaptor":
+        {
+            "Type": "SurfaceAdaptor",
+            "mesh":"v-mesh",
+            "sourceGenerator": "v-mesh-generator",
+            "topSurfaceType": "topo_data",
+            "topSurfaceName": "input/cookbook/test.topo",
+            "topNx": "32",
+            "topNz": "12",
+            "topMinX": "minX",
+            "topMaxX": "maxX",
+            "topMinZ": "minZ",
+            "topMaxZ": "maxZ",
+            
+            "bottomEquation": "x<1 ? -0.1*x : -0.1"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "front",
+                "variables": [
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "back",
+                "variables": [
+                    {
+                        "name": "vz",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "3",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/file.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/file.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,116 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "type": "func",
+                        "value": "File1"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0",
+    "File1_Name": "input/cookbook/velocities",
+    "File1_Dim": "0",
+    "File1_N": "102"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/fixed_bottom.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/fixed_bottom.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,122 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True",
+                "staticLeft" : "True",
+                "staticLeftTop" : "True",
+                "staticBottom" : "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "surfaceAdaptor":
+        {
+            "Type": "SurfaceAdaptor",
+            "mesh": "v-mesh",
+            "sourceGenerator": "v-mesh-generator",
+            "bottomEquation": "step(0.960468635615-x)*(-3 + sqrt(3.15*3.15 - x*x))"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "r=hypot(x,y+3), step(3.35-r)*(y+3)"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "r=hypot(x,y+3), step(3.35-r)*(y+3)"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "r=hypot(x,y+3), -step(3.35-r)*x"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/hydrostatic.xml
--- a/input/cookbook/hydrostatic.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,511 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="hydrostaticTerm">
-      <param name="Type">HydrostaticTerm</param>
-      <param name="densityEquation">step(.35-y)</param>
-      <param name="pressureEquation">step(.35-y)*(.35-y)</param>
-    </struct>
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">top</param>
-      <param name="y_type">HydrostaticTerm</param>
-      <param name="y_value">hydrostaticTerm</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-      <param name="HydrostaticTerm">hydrostaticTerm</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/inflow_outflow.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/inflow_outflow.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,114 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True",
+                "staticLeft" : "True",
+                "staticBottom" : "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "step(y-0.1)*step(0.2-y)"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "step(x-0.9)*step(1.1-x)"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "-step(x-0.9)*step(1.1-x)"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/multi_material.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/multi_material.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,138 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "Rheology": [
+                "sphereViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/multi_material.xml
--- a/input/cookbook/multi_material.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,528 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/non_newtonian.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/non_newtonian.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,224 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity",
+            "TemperatureField": "TemperatureField"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "nonNewtonian":
+        {
+            "Type": "NonNewtonian",
+            "StrainRateInvariantField": "StrainRateInvariantField",
+            "TemperatureField": "TemperatureField",
+            "n": "3.4",
+            "T_0": "1.0",
+            "A": "1.0",
+            "refStrainRate": "0.01"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "1.0",
+            "heatingElements": [
+                {
+                    "Q": "1.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "nonNewtonian",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "alpha": "10.0",
+            "diffusivity": "10.0",
+            "heatingElements": [
+                {
+                    "Q": "1000.0",
+                    "lambda": "10.0"
+                }
+            ],
+            "Rheology": [
+                "sphereViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.01"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "2.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "TemperatureField",
+        "PressureField"
+    ],
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/non_newtonian.xml
--- a/input/cookbook/non_newtonian.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,724 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="nonNewtonian">
-      <param name="Type">NonNewtonian</param>
-      <param name="StrainRateInvariantField">StrainRateInvariantField</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="n">3.4</param>
-      <param name="T_0">1.0</param>
-      <param name="A">1.0</param>
-      <param name="refStrainRate">0.01</param>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>nonNewtonian</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>	
-
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/normal_stress.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/normal_stress.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,114 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True",
+                "staticBottom": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+        ,"stressBC":
+        {
+            "Type": "StressBC",
+            "ForceVector": "mom_force",
+            "wall": "bottom",
+            "normal_value": "0.35-y"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/sinusoid.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/sinusoid.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,110 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "backgroundShape":
+        {
+            "Type": "EquationShape",
+            "equation": "1"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "backgroundShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "surfaceAdaptor":
+        {
+            "Type": "SurfaceAdaptor",
+            "mesh":"v-mesh",
+            "sourceGenerator": "v-mesh-generator",
+            "topEquation": "0.1*sin(2*pi*x)"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/split.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/split.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,112 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "step(x-1)"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/template.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/template.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,82 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/template.xml
--- a/input/cookbook/template.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/test.topo
--- a/input/cookbook/test.topo	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,384 +0,0 @@
-   0    0   0.080000
-   0    1   0.080000
-   0    2   0.080000
-   0    3   0.080000
-   0    4   0.080000
-   0    5   0.080000
-   0    6   0.080000
-   0    7   0.080000
-   0    8   0.080000
-   0    9   0.080000
-   0   10   0.080000
-   0   11   0.080000
-   1    0   0.080000
-   1    1   0.080000
-   1    2   0.080000
-   1    3   0.080000
-   1    4   0.080000
-   1    5   0.080000
-   1    6   0.080000
-   1    7   0.080000
-   1    8   0.080000
-   1    9   0.080000
-   1   10   0.080000
-   1   11   0.080000
-   2    0   0.080000
-   2    1   0.080000
-   2    2   0.080000
-   2    3   0.080000
-   2    4   0.080000
-   2    5   0.080000
-   2    6   0.080000
-   2    7   0.080000
-   2    8   0.080000
-   2    9   0.080000
-   2   10   0.080000
-   2   11   0.080000
-   3    0   0.080000
-   3    1   0.080000
-   3    2   0.080000
-   3    3   0.080000
-   3    4   0.080000
-   3    5   0.080000
-   3    6   0.080000
-   3    7   0.080000
-   3    8   0.080000
-   3    9   0.080000
-   3   10   0.080000
-   3   11   0.080000
-   4    0   0.067500
-   4    1   0.067500
-   4    2   0.067500
-   4    3   0.067500
-   4    4   0.067500
-   4    5   0.067500
-   4    6   0.067500
-   4    7   0.067500
-   4    8   0.067500
-   4    9   0.067500
-   4   10   0.067500
-   4   11   0.067500
-   5    0   0.055000
-   5    1   0.055000
-   5    2   0.055000
-   5    3   0.055000
-   5    4   0.055000
-   5    5   0.055000
-   5    6   0.055000
-   5    7   0.055000
-   5    8   0.055000
-   5    9   0.055000
-   5   10   0.055000
-   5   11   0.055000
-   6    0   0.052222
-   6    1   0.052222
-   6    2   0.052222
-   6    3   0.052222
-   6    4   0.052222
-   6    5   0.052222
-   6    6   0.052222
-   6    7   0.052222
-   6    8   0.052222
-   6    9   0.052222
-   6   10   0.052222
-   6   11   0.052222
-   7    0   0.049444
-   7    1   0.049444
-   7    2   0.049444
-   7    3   0.049444
-   7    4   0.049444
-   7    5   0.049444
-   7    6   0.049444
-   7    7   0.049444
-   7    8   0.049444
-   7    9   0.049444
-   7   10   0.049444
-   7   11   0.049444
-   8    0   0.046667
-   8    1   0.046667
-   8    2   0.046667
-   8    3   0.046667
-   8    4   0.046667
-   8    5   0.046667
-   8    6   0.046667
-   8    7   0.046667
-   8    8   0.046667
-   8    9   0.046667
-   8   10   0.046667
-   8   11   0.046667
-   9    0   0.043889
-   9    1   0.043889
-   9    2   0.043889
-   9    3   0.043889
-   9    4   0.043889
-   9    5   0.043889
-   9    6   0.043889
-   9    7   0.043889
-   9    8   0.043889
-   9    9   0.043889
-   9   10   0.043889
-   9   11   0.043889
-  10    0   0.041111
-  10    1   0.041111
-  10    2   0.041111
-  10    3   0.041111
-  10    4   0.041111
-  10    5   0.041111
-  10    6   0.041111
-  10    7   0.041111
-  10    8   0.041111
-  10    9   0.041111
-  10   10   0.041111
-  10   11   0.041111
-  11    0   0.038333
-  11    1   0.038333
-  11    2   0.038333
-  11    3   0.038333
-  11    4   0.038333
-  11    5   0.038333
-  11    6   0.038333
-  11    7   0.038333
-  11    8   0.038333
-  11    9   0.038333
-  11   10   0.038333
-  11   11   0.038333
-  12    0   0.035556
-  12    1   0.035556
-  12    2   0.035556
-  12    3   0.035556
-  12    4   0.035556
-  12    5   0.035556
-  12    6   0.035556
-  12    7   0.035556
-  12    8   0.035556
-  12    9   0.035556
-  12   10   0.035556
-  12   11   0.035556
-  13    0   0.032778
-  13    1   0.032778
-  13    2   0.032778
-  13    3   0.032778
-  13    4   0.032778
-  13    5   0.032778
-  13    6   0.032778
-  13    7   0.032778
-  13    8   0.032778
-  13    9   0.032778
-  13   10   0.032778
-  13   11   0.032778
-  14    0   0.030000
-  14    1   0.030000
-  14    2   0.030000
-  14    3   0.030000
-  14    4   0.030000
-  14    5   0.030000
-  14    6   0.030000
-  14    7   0.030000
-  14    8   0.030000
-  14    9   0.030000
-  14   10   0.030000
-  14   11   0.030000
-  15    0   0.029231
-  15    1   0.029231
-  15    2   0.029231
-  15    3   0.029231
-  15    4   0.029231
-  15    5   0.029231
-  15    6   0.029231
-  15    7   0.029231
-  15    8   0.029231
-  15    9   0.029231
-  15   10   0.029231
-  15   11   0.029231
-  16    0   0.028462
-  16    1   0.028462
-  16    2   0.028462
-  16    3   0.028462
-  16    4   0.028462
-  16    5   0.028462
-  16    6   0.028462
-  16    7   0.028462
-  16    8   0.028462
-  16    9   0.028462
-  16   10   0.028462
-  16   11   0.028462
-  17    0   0.027692
-  17    1   0.027692
-  17    2   0.027692
-  17    3   0.027692
-  17    4   0.027692
-  17    5   0.027692
-  17    6   0.027692
-  17    7   0.027692
-  17    8   0.027692
-  17    9   0.027692
-  17   10   0.027692
-  17   11   0.027692
-  18    0   0.026923
-  18    1   0.026923
-  18    2   0.026923
-  18    3   0.026923
-  18    4   0.026923
-  18    5   0.026923
-  18    6   0.026923
-  18    7   0.026923
-  18    8   0.026923
-  18    9   0.026923
-  18   10   0.026923
-  18   11   0.026923
-  19    0   0.026154
-  19    1   0.026154
-  19    2   0.026154
-  19    3   0.026154
-  19    4   0.026154
-  19    5   0.026154
-  19    6   0.026154
-  19    7   0.026154
-  19    8   0.026154
-  19    9   0.026154
-  19   10   0.026154
-  19   11   0.026154
-  20    0   0.025385
-  20    1   0.025385
-  20    2   0.025385
-  20    3   0.025385
-  20    4   0.025385
-  20    5   0.025385
-  20    6   0.025385
-  20    7   0.025385
-  20    8   0.025385
-  20    9   0.025385
-  20   10   0.025385
-  20   11   0.025385
-  21    0   0.024615
-  21    1   0.024615
-  21    2   0.024615
-  21    3   0.024615
-  21    4   0.024615
-  21    5   0.024615
-  21    6   0.024615
-  21    7   0.024615
-  21    8   0.024615
-  21    9   0.024615
-  21   10   0.024615
-  21   11   0.024615
-  22    0   0.02846
-  22    1   0.023846
-  22    2   0.023846
-  22    3   0.023846
-  22    4   0.023846
-  22    5   0.023846
-  22    6   0.023846
-  22    7   0.023846
-  22    8   0.023846
-  22    9   0.023846
-  22   10   0.023846
-  22   11   0.023846
-  23    0   0.023077
-  23    1   0.023077
-  23    2   0.023077
-  23    3   0.023077
-  23    4   0.023077
-  23    5   0.023077
-  23    6   0.023077
-  23    7   0.023077
-  23    8   0.023077
-  23    9   0.023077
-  23   10   0.023077
-  23   11   0.023077
-  24    0   0.022308
-  24    1   0.022308
-  24    2   0.022308
-  24    3   0.022308
-  24    4   0.022308
-  24    5   0.022308
-  24    6   0.022308
-  24    7   0.022308
-  24    8   0.022308
-  24    9   0.022308
-  24   10   0.022308
-  24   11   0.022308
-  25    0   0.021538
-  25    1   0.021538
-  25    2   0.021538
-  25    3   0.021538
-  25    4   0.021538
-  25    5   0.021538
-  25    6   0.021538
-  25    7   0.021538
-  25    8   0.021538
-  25    9   0.021538
-  25   10   0.021538
-  25   11   0.021538
-  26    0   0.020769
-  26    1   0.020769
-  26    2   0.020769
-  26    3   0.020769
-  26    4   0.020769
-  26    5   0.020769
-  26    6   0.020769
-  26    7   0.020769
-  26    8   0.020769
-  26    9   0.020769
-  26   10   0.020769
-  26   11   0.020769
-  27    0   0.020000
-  27    1   0.020000
-  27    2   0.020000
-  27    3   0.020000
-  27    4   0.020000
-  27    5   0.020000
-  27    6   0.020000
-  27    7   0.020000
-  27    8   0.020000
-  27    9   0.020000
-  27   10   0.020000
-  27   11   0.020000
-  28    0   0.018750
-  28    1   0.018750
-  28    2   0.018750
-  28    3   0.018750
-  28    4   0.018750
-  28    5   0.018750
-  28    6   0.018750
-  28    7   0.018750
-  28    8   0.018750
-  28    9   0.018750
-  28   10   0.018750
-  28   11   0.018750
-  29    0   0.017500
-  29    1   0.017500
-  29    2   0.017500
-  29    3   0.017500
-  29    4   0.017500
-  29    5   0.017500
-  29    6   0.017500
-  29    7   0.017500
-  29    8   0.017500
-  29    9   0.017500
-  29   10   0.017500
-  29   11   0.017500
-  30    0   0.016250
-  30    1   0.016250
-  30    2   0.016250
-  30    3   0.016250
-  30    4   0.016250
-  30    5   0.016250
-  30    6   0.016250
-  30    7   0.016250
-  30    8   0.016250
-  30    9   0.016250
-  30   10   0.016250
-  30   11   0.016250
-  31    0   0.015000
-  31    1   0.015000
-  31    2   0.015000
-  31    3   0.015000
-  31    4   0.015000
-  31    5   0.015000
-  31    6   0.015000
-  31    7   0.015000
-  31    8   0.015000
-  31    9   0.015000
-  31   10   0.015000
-  31   11   0.015000
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/thermal.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,219 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity",
+            "TemperatureField": "TemperatureField"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "1.0",
+            "heatingElements": [
+                {
+                    "Q": "1.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "alpha": "10.0",
+            "diffusivity": "10.0",
+            "heatingElements": [
+                {
+                    "Q": "1000.0",
+                    "lambda": "10.0"
+                }
+            ],
+            "Rheology": [
+                "sphereViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.01"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "2.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "TemperatureField",
+        "PressureField"
+    ],
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal.xml
--- a/input/cookbook/thermal.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,715 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>	
-
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal_density.xml
--- a/input/cookbook/thermal_density.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,715 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-      <param name="isNonLinear">True</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="PressureField">PressureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="densityEquation">1-T*10+10*p</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>	
-
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal_file.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/thermal_file.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,225 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity",
+            "TemperatureField": "TemperatureField"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "1.0",
+            "heatingElements": [
+                {
+                    "Q": "1.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "alpha": "10.0",
+            "diffusivity": "10.0",
+            "heatingElements": [
+                {
+                    "Q": "1000.0",
+                    "lambda": "10.0"
+                }
+            ],
+            "Rheology": [
+                "sphereViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0.01"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "2.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "type": "func",
+                        "value": "File1"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "TemperatureField",
+        "PressureField"
+    ],
+    "enable-thermal": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "8",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0",
+    "File1_Name": "input/cookbook/temperatures",
+    "File1_Dim": "0",
+    "File1_N": "202",
+    "File1_Dim2": "1",
+    "File1_N2": "37"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal_file.xml
--- a/input/cookbook/thermal_file.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,720 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">1.0</param>
-      <param name="diffusivity">1.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0</param>
-          <param name="lambda">1.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <param name="alpha">10.0</param>
-      <param name="diffusivity">10.0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1000.0</param>
-          <param name="lambda">10.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>	
-
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.01</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">2.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">File1</param>
-          </struct>
-        </list>
-      </struct> 
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="File1_Name">input/cookbook/temperatures</param>
-  <param name="File1_Dim">0</param>
-  <param name="File1_N">202</param>
-  <param name="File1_Dim2">1</param>
-  <param name="File1_N2">37</param>
-
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/thermal_only.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/thermal_only.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,190 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "T-mesh": "T-mesh",
+                "displacementField": "DisplacementField",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "alpha": "1.0",
+            "diffusivity": "1.0",
+            "heatingElements": [
+                {
+                    "Q": "1.0",
+                    "lambda": "1.0"
+                }
+            ],
+            "Rheology": [
+                "backgroundViscosity"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "alpha": "10.0",
+            "diffusivity": "10.0",
+            "heatingElements": [
+                {
+                    "Q": "1000.0",
+                    "lambda": "10.0"
+                }
+            ],
+            "Rheology": [
+                "sphereViscosity"
+            ]
+        }
+    },
+    "velocityICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "vx",
+                        "value": "0.0"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "0.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureBCs": {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "top",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "temperature",
+                        "value": "2.0"
+                    }
+                ]
+            }
+        ]
+    },
+    "temperatureICs":
+    {
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "AllNodesVC",
+                "variables":[
+                    {
+                        "name": "temperature",
+                        "value": "1.0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "VelocityField",
+        "TemperatureField"
+    ],
+    "enable-thermal": true,
+    "enable-stokes": false,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/tracers.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/tracers.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,150 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True",
+                "staticLeft" : "True",
+                "staticLeftTop" : "True",
+                "staticBottom" : "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "surfaceAdaptor":
+        {
+            "Type": "SurfaceAdaptor",
+            "mesh": "v-mesh",
+            "sourceGenerator": "v-mesh-generator",
+            "bottomEquation": "step(0.960468635615-x)*(-3 + sqrt(3.15*3.15 - x*x))"
+        },
+
+        "pLayout":
+        {
+            "Type": "ManualParticleLayout",
+            "totalInitialParticles": "1",
+            "manualParticlePositions": [
+                "asciidata",
+                ["x", "y"],
+                1.0, .1,
+                1.3, .1,
+                1.6, .1,
+                1.9, .1,
+                1.0, .2,
+                1.3, .2,
+                1.6, .2,
+                1.9, .2
+            ]
+        },
+        "swarmOutput":
+        {
+            "Type": "TracerOutput",
+            "Swarm": "passiveTracerSwarm",
+            "Fields" : [
+                "PressureField",
+                "StrainRateInvariantField"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "r=hypot(x,y+3), step(3.35-r)*(y+3)"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "r=hypot(x,y+3), step(3.35-r)*(y+3)"
+                    },
+                    {
+                        "name": "vy",
+                        "value": "r=hypot(x,y+3), -step(3.35-r)*x"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "enable-tracers": true,
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "100",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/tracers.xml
--- a/input/cookbook/tracers.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,593 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-      <param name="Threshold">0.8</param>
-      <param name="CentPosRatio">0.01</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="leftBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">0.1</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="bottomSurfaceType">cylinder</param>
-      <param name="bottomX0">SolidBodyRotationCentreX</param>
-      <param name="bottomY0">SolidBodyRotationCentreY</param>
-      <param name="bottomRadius">InnerRadiusCylinder</param>
-      <param name="bottomMinX">CylinderMinX</param>
-      <param name="bottomMaxX">CylinderMaxX</param>
-    </struct>
-
-    <struct name="pLayout">
-      <param name="Type">ManualParticleLayout</param>
-      <param name="totalInitialParticles">1</param>
-      <list name="manualParticlePositions">
-        <asciidata>
-          <columnDefinition name = "x" type="double"/>
-          <columnDefinition name = "y" type="double"/>
-          <columnDefinition name = "z" type="double"/>
-          1.0 .1 .1
-          1.3 .1 .1
-          1.6 .1 .1
-          1.9 .1 .1
-          1.0 .2 .1
-          1.3 .2 .1
-          1.6 .2 .1
-          1.9 .2 .1
-        </asciidata>
-      </list>
-    </struct>
-    <struct name="passiveSwarmMovementHandler">
-      <param name="Type"> ParticleMovementHandler </param>
-    </struct>
-    <struct name="passiveTracerSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">pLayout</param>
-      <param name="FiniteElement_Mesh">linearMesh</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param> passiveSwarmMovementHandler </param>
-      </list>
-    </struct>
-    <struct name="passiveTracerAdvect">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">passiveTracerSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-    </struct>
-    <struct name="swarmOutput">
-      <param name="Type">TracerOutput</param>
-      <param name="Swarm">passiveTracerSwarm</param>
-      <param name="PressureField">PressureField</param>
-      <list name="Fields">
-        <param>VelocityMagnitudeField</param>
-        <param>StrainRateInvariantField</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">100</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <param name="staticBottom">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="SolidBodyRotationCentreX">0</param>
-  <param name="SolidBodyRotationCentreY">-3</param>
-  <param name="InnerRadiusCylinder">3.15</param>
-  <param name="CylinderMinX">0</param>
-  <param name="CylinderMaxX">0.960468635615</param>
-
-  <param name="Equation1">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-  <param name="Equation2">r=hypot(x,y+3), -step(3.35-r)*x</param>
-  <param name="Equation3">Equation1</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/viscous.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,108 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "boxShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous.xml
--- a/input/cookbook/viscous.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_bottom.xml
--- a/input/cookbook/viscous_bottom.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,516 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="bottomBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">0.05</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="y_type">double</param>
-      <param name="y_value">0.35</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="wrapBottom">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_deformed_bottom.xml
--- a/input/cookbook/viscous_deformed_bottom.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,545 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-      <param name="Threshold">0.8</param>
-      <param name="CentPosRatio">0.01</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="leftBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">0.1</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="bottomSurfaceType">cylinder</param>
-      <param name="bottomX0">SolidBodyRotationCentreX</param>
-      <param name="bottomY0">SolidBodyRotationCentreY</param>
-      <param name="bottomRadius">InnerRadiusCylinder</param>
-      <param name="bottomMinX">CylinderMinX</param>
-      <param name="bottomMaxX">CylinderMaxX</param>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <param name="staticBottom">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="Equation1">r=hypot(x,y+3), step(3.35-r)*(y+3)</param>
-  <param name="Equation2">r=hypot(x,y+3), -step(3.35-r)*x</param>
-
-  <param name="SolidBodyRotationCentreX">0</param>
-  <param name="SolidBodyRotationCentreY">-3</param>
-  <param name="InnerRadiusCylinder">3.15</param>
-  <param name="CylinderMinX">0</param>
-  <param name="CylinderMaxX">0.960468635615</param>
-
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_extension.xml
--- a/input/cookbook/viscous_extension.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_extension3D.xml
--- a/input/cookbook/viscous_extension3D.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,533 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">backgroundShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="topSurfaceType">topo_data</param>
-      <param name="topSurfaceName">input/cookbook/test.topo</param>
-      <param name="topNx">32</param>
-      <param name="topNz">12</param>
-      <param name="topMinX">minX</param>
-      <param name="topMaxX">maxX</param>
-      <param name="topMinZ">minZ</param>
-      <param name="topMaxZ">maxZ</param>
-
-      <param name="bottomSurfaceType">wedge</param>
-      <param name="bottomBeginOffset">0</param>
-      <param name="bottomEndOffset">1.0</param>
-      <param name="bottomGradient">-0.1</param>
-      <param name="bottomGradientZ">0.0</param>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">3</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3</param>
-  <param name="elementResI">16</param>
-  <param name="elementResJ">8</param>
-  <param name="elementResK">8</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_file.xml
--- a/input/cookbook/viscous_file.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,508 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">File1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="File1_Name">input/cookbook/velocities</param>
-  <param name="File1_Dim">0</param>
-  <param name="File1_N">102</param>
-  
-
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_inflow.xml
--- a/input/cookbook/viscous_inflow.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,521 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-      <param name="Threshold">0.8</param>
-      <param name="CentPosRatio">0.01</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="leftBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">0.1</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <param name="staticBottom">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Equation2</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation3</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-  <param name="Equation1">step(y-0.1)*step(0.2-y)</param>
-  <param name="Equation2">-step(x-0.9)*step(1.1-x)</param>
-  <param name="Equation3">step(x-0.9)*step(1.1-x)</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_normal_stress.xml
--- a/input/cookbook/viscous_normal_stress.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,516 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="bottomBoundaryShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">0.05</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">bottom</param>
-      <param name="y_type">double</param>
-      <param name="y_value">0.35</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticBottom">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_periodic.xml
--- a/input/cookbook/viscous_periodic.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,514 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <element type="param" name="periodic_x">true</element>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <element type="struct" name="periodicBCsManager">
-      <element type="param" name="Type">PeriodicBoundariesManager</element>
-      <element type="param" name="Geometry">geometry</element>
-      <element type="param" name="Swarm">materialSwarm</element>
-      <element type="param" name="mesh">mesh-linear</element>
-      <element type="param" name="TimeIntegrator">timeIntegrator</element>
-      <element type="list" name="PeriodicBoundaries">
-        <element type="param">I_AXIS</element>
-      </element>
-    </element>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.9</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">10.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_sinusoid.xml
--- a/input/cookbook/viscous_sinusoid.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">backgroundShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="topSurfaceType">sine</param>
-      <list name="topOrigin">
-        <param>0.0</param>
-      </list>
-      <param name="topAmplitude">0.1</param>
-      <param name="topFrequency">6.28318530718</param>
-    </struct>
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/viscous_split.xml
--- a/input/cookbook/viscous_split.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">f</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="viscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">boxShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Equation1</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-
-  <param name="Equation1">step(x-1)</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/yielding.json
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/yielding.json	Wed Nov 23 16:23:00 2011 -0800
@@ -0,0 +1,165 @@
+{
+    "EulerDeform":
+    {
+        "systems": [
+            {
+                "mesh": "v-mesh",
+                "p-mesh": "p-mesh",
+                "remesher": "velocityRemesher",
+                "velocityField": "VelocityField",
+                "wrapTop": "True"
+            }
+        ]
+    },
+    "components":
+    {
+        "buoyancyForceTerm":
+        {
+            "Type": "BuoyancyForceTerm",
+            "ForceVector": "mom_force",
+            "Swarm": "gaussSwarm",
+            "gravity": "gravity"
+        },
+        "boxShape":
+        {
+            "Type": "Box",
+            "startX": "minX",
+            "endX": "maxX",
+            "startY": "minY",
+            "endY": "maxY",
+            "startZ": "minZ",
+            "endZ": "maxZ"
+        },
+        "sphereShape":
+        {
+            "Type": "EquationShape",
+            "equation": ".1^2 - ((x-1)^2 + (y-.15)^2)"
+        },
+        "nonsphereShape":
+        {
+            "Type": "Intersection",
+            "shapes":
+            [
+                "boxShape",
+                "!sphereShape"
+            ]
+        },
+        "backgroundViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "1.0"
+        },
+        "strainWeakening":
+        {
+            "Type": "StrainWeakening",
+            "TimeIntegrator": "timeIntegrator",
+            "MaterialPointsSwarm": "materialSwarm",
+            "softeningStrain": "0.1",
+            "initialDamageFraction": "0.0",
+            "initialDamageWavenumber": "0.5",
+            "initialDamageFactor": "0.5",
+            "healingRate": "0.0"
+        },
+        "yielding":
+        {
+            "Type": "DruckerPrager",
+            "PressureField": "PressureField",
+            "VelocityGradientsField": "VelocityGradientsField",
+            "MaterialPointsSwarm": "materialSwarm",
+            "Context": "context",
+            "StrainWeakening": "strainWeakening",
+            "StrainRateField": "StrainRateField",
+            "cohesion": "1.0",
+            "cohesionAfterSoftening": "0.0001",
+            "frictionCoefficient": "0.0",
+            "frictionCoefficientAfterSoftening": "0.0",
+            "minimumViscosity": "1.0e-4"
+        },
+        "viscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "nonsphereShape",
+            "density": "1.0",
+            "Rheology": [
+                "backgroundViscosity",
+                 "yielding",
+                "storeViscosity",
+                "storeStress"
+            ]
+        },
+        "sphereViscosity":
+        {
+            "Type": "MaterialViscosity",
+            "eta0": "10.0"
+        },
+        "sphereViscous":
+        {
+            "Type": "RheologyMaterial",
+            "Shape": "sphereShape",
+            "density": "1.0",
+            "Rheology": [
+                "sphereViscosity",
+                "storeViscosity",
+                "storeStress"
+            ]
+        }
+    },
+    "velocityBCs" :{
+        "type": "CompositeVC",
+        "vcList": [
+            {
+                "type": "WallVC",
+                "wall": "left",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "right",
+                "variables": [
+                    {
+                        "name": "vx",
+                        "value": "1.0"
+                    }
+                ]
+            },
+            {
+                "type": "WallVC",
+                "wall": "bottom",
+                "variables": [
+                    {
+                        "name": "vy",
+                        "value": "0"
+                    }
+                ]
+            }
+        ]
+    },
+
+    "FieldVariablesToCheckpoint": [
+        "StrainRateInvariantField",
+        "VelocityField",
+        "PressureField"
+    ],
+    "timeIntegratorOrder": "1",
+    "maxTimeSteps": "10",
+    "outputPath": "./output",
+    "dim": "2",
+    "minX": "0",
+    "minY": "0",
+    "minZ": "0",
+    "maxX": "2",
+    "maxY": "0.35",
+    "maxZ": "0.3",
+    "nx": "16",
+    "ny": "4",
+    "nz": "4",
+    "particlesPerCell": "40",
+    "seed": "13",
+    "checkpointEvery": "1",
+    "gravity": "1.0"
+}
\ No newline at end of file
diff -r 8d25939560e5 -r 8de894d93a65 input/cookbook/yielding.xml
--- a/input/cookbook/yielding.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,557 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">timeIntegratorOrder</param>
-      <param name="simultaneous">t</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <struct name="sphereShape">
-      <param name="Type">Sphere</param>
-      <param name="CentreX">1.0</param>
-      <param name="CentreY">0.15</param>
-      <param name="radius">0.1</param>
-    </struct>
-
-    <struct name="sphereViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">2.0</param>
-    </struct>
-
-    <struct name="sphereViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">sphereShape</param>
-      <param name="density">1.0</param>
-      <list name="Rheology">
-        <param>sphereViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-    <struct name="nonSphereShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-        <param>!sphereShape</param>
-      </list>
-    </struct>
-
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="finalSofteningStrain">0.1</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">1.0</param>
-      <param name="cohesionAfterSoftening">0.0001</param>
-      <param name="frictionCoefficient">0.0</param>
-      <param name="frictionCoefficientAfterSoftening">0.0</param>
-    </struct>
-    <struct name="crust">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">nonSphereShape</param>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>StrainRateInvariantField</param>
-  </list>
-  <param name="timeIntegratorOrder">1</param>
-  <param name="maxTimeSteps">10</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">2.0f</param>
-  <param name="maxY">0.35f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">32</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-          <!-- <struct> -->
-          <!--   <param name="name">vy</param> -->
-          <!--   <param name="type">double</param> -->
-          <!--   <param name="value">0.0</param> -->
-          <!-- </struct> -->
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">1.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <param name="checkpointEvery">1</param>
-  <param name="gravity">1.0</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/examples/dike.xml
--- a/input/examples/dike.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,979 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxAirY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">1</param>
-      <param name="simultaneous">t</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Inflow">True</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="killNonConvergent">false</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearMinIterations">nonLinearMinIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-      <param name="isNonLinear">true</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="HydrostaticTerm">hydrostaticTerm</param>
-      <param name="gravity">9.81</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-<!--============== END "BASIC COMPONENTS" =================-->
-    <struct name="hydrostaticTerm">
-      <param name="Type">HydrostaticTerm</param>
-      <param name="upperDensity">2300</param>
-      <param name="upperAlpha">3.0e-5</param>
-      <param name="lowerDensity">2300</param>
-      <param name="lowerAlpha">3.0e-5</param>
-      <param name="height">maxY</param>
-<!--      <param name="materialBoundary">maxY</param>-->
-      <param name="T_0">TemperatureProfileTop</param>
-      <param name="linearCoefficient">TemperatureProfileLinearCoefficient</param>
-      <param name="exponentialCoefficient1">TemperatureProfileExponentialCoefficient1</param>
-      <param name="exponentialCoefficient2">TemperatureProfileExponentialCoefficient2</param>
-      <param name="gravity">9.81</param>
-    </struct>
-
-    <struct name="backgroundShape">
-      <param name="Type">Everywhere</param>
-    </struct>
-
-   <struct name="boxShape">
-      <param name="Type">Box</param>
-      <param name="startX">minX</param>
-      <param name="endX">maxX</param>
-      <param name="startY">minY</param>
-      <param name="endY">maxY</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-      <!--<param name="beta">0.785398163398</param>-->
-    </struct>
-
-<!-- ============== Crust  ================  -->
-<!--    <struct name="crustShape"> -->
-<!--      <param name="Type">Box</param> -->
-<!--      <param name="startX">minX</param> -->
-<!--      <param name="endX">maxX</param> -->
-<!--      <param name="startY">10000</param> -->
-<!--      <param name="endY">maxY</param> -->
-<!--      <param name="startZ">minZ</param> -->
-<!--      <param name="endZ">maxZ</param> -->
-<!--    </struct> -->
-<!--    <struct name="crustViscosity"> -->
-<!--      <param name="Type">FrankKamenetskii</param> -->
-<!--      <param name="TemperatureField">TemperatureField</param> -->
-<!--       ref. visc is 1e22 so this times eta0 gives  -->
-<!--  viscosity=1e25, at T=273 & viscosity=1e20 at T=1473 -->
-<!--      <param name="eta0">2.31739465e4</param> -->
-<!--      <param name="theta">0.011512925465</param> -->
-<!--    </struct> -->
-<!--    <struct name="crust"> -->
-<!--      <param name="Type">RheologyMaterial</param> -->
-<!--      <param name="Shape">crustShape</param> -->
-<!--      <param name="density">2800</param> -->
-<!--      <param name="alpha">3.0e-5</param> -->
-<!--      <param name="diffusivity">1.0e16</param> -->
-<!--      <list name="heatingElements"> -->
-<!--        <struct> -->
-<!--          <param name="Q">1.0e-12</param> -->
-<!--          <param name="lambda">0.0</param> -->
-<!--        </struct> -->
-<!--      </list> -->
-<!--      <list name="Rheology"> -->
-<!--        <param>crustViscosity</param> -->
-<!--        <param>yielding</param> -->
-<!--        <param>storeViscosity</param> -->
-<!--        <param>storeStress</param> -->
-<!--      </list> -->
-<!--    </struct> -->
-
-<!-- ============== Strain Weakening  ================  -->
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="initialSofteningStrain">0.0</param>
-      <param name="finalSofteningStrain">0.1</param>
-      <param name="initialDamageFraction">0.9</param>
-      <param name="initialDamageWavenumber">0.0</param>
-      <param name="initialDamageFactor">0.9</param>
-      <param name="strainLimitedShape">dikeShape</param> -->
-      <param name="initialStrainShape">initStrainBox</param> -->
-      <param name="healingRate">6.0</param>
-    </struct>
-    <struct name="initStrainBox">
-        <param name="Type">Box</param>
-        <param name="startX">29500</param>
-        <param name="endX">45000.0</param>
-        <param name="startY">0.0</param>
-        <param name="endY">maxY</param>
-        <param name="startZ">minZ</param>
-        <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="cohesion">44e6</param>
-      <param name="cohesionAfterSoftening">4e6</param>
-      <param name="frictionCoefficient">0.57735026919</param>
-      <param name="frictionCoefficientAfterSoftening">0.57735026919</param>
-      <param name="HydrostaticTerm">hydrostaticTerm</param>
-    </struct>
-
-<!-- ============== Mantle  ================  -->
-    <struct name="mantleShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-<!--        <param>!crustShape</param> -->
-      </list>
-    </struct>
-
-    <struct name="airShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>backgroundShape</param>
-        <param>!mantleShape</param>
-      </list>
-    </struct>
-
-    <struct name="airViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1e-4</param>
-    </struct>
-
-	<!-- Define the compressibility function -->
-	<struct name="compresibility">
-      <param name="Type">Compressible</param>
-      <param name="GeometryMesh">mesh-linear</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="oneOnLambda">10.0</param>   <!-- this is the 'compressibility factor, 1/lambda, which must be set between 0 and 10. The higher, the more compressible -->
-	</struct>
-
-    <struct name="air">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">airShape</param>
-      <param name="density">0</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">0.0</param>
-          <param name="lambda">0.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>airViscosity</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-      <param name="Compressible">compresibility</param>-->
-   </struct>
-
-    <struct name="nonnewViscosity">
-      <param name="Type">NonNewtonian</param>
-      <param name="StrainRateInvariantField">StrainRateInvariantField</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="n">3.0</param>
-      <param name="T_0">1473</param>
-      <param name="T_melt">1480</param>
-      <param name="A">1.0e-36</param>
-      <param name="refStrainRate">1.0e22</param>
-      <param name="minViscosity">1.0e-2</param>
-      <param name="maxViscosity">1.0e3</param>
-    </struct>
-
-    <struct name="mantleViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">mantleShape</param>
-      <param name="density">2300</param> <!--3300-1030 kg/m^3-->
-      <param name="alpha">3.0e-5</param>
-      <param name="diffusivity">1.0e16</param> <!--1.0e-6*1.0e22-->
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">8.48484848485e-13</param>
-          <param name="lambda">0.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>nonnewViscosity</param>
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-
-<!-- ============== Diking Zone  ================  -->
-    <struct name="dikeShape">
-      <param name="Type">Box</param>
-      <param name="startX">29000</param>
-      <param name="endX">31000</param>
-      <param name="startY">0</param>
-      <!-- <param name="startY">8000</param> -->
-      <param name="endY">16000</param>
-      <param name="startZ">minZ</param>
-      <param name="endZ">maxZ</param>
-    </struct>
-    <struct name="nonDikeShape">
-      <param name="Type">Intersection</param>
-      <list name="shapes">
-        <param>boxShape</param>
-       <param>!dikeShape</param>
-      </list>
-    </struct>
-     
-
-    <struct name="divergenceForce">
-      <param name="Type">DivergenceForce</param>
-      <param name="ForceVector">cont_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="DomainShape">dikeShape</param>
-      <param name="GeometryMesh">mesh-linear</param>
-      <param name="force_type">double</param>
-      <param name="force_value">-2.0e9</param> 
-    </struct>
-
-<!-- ============== Stress  BC on bottom =====================  -->
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">top</param>
-<!--      <param name="wall">bottom</param> -->
-      <param name="y_type">HydrostaticTerm</param>
-      <param name="y_value">hydrostaticTerm</param>  <!-- 16000*3300*(1-3e-5*1473/2)*9.81 -->
-<!--      <param name="y_type">double</param>-->
-<!--       <param name="y_value">5.04e+8</param>-->  <!-- 16000*3300*(1-3e-5*1473/2)*9.81=5.07e+8 -->
-    </struct>
-
-<!-- ============== Temperature Components  =====================  -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-    <struct name="residual">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="massMatrix">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-    <struct name="predictorMulticorrector">
-      <param name="Type">AdvDiffMulticorrector</param>
-    </struct>
-    <struct name="EnergyEqn">
-      <param name="Type">AdvectionDiffusionSLE</param>
-      <param name="SLE_Solver">predictorMulticorrector</param>
-      <param name="Context">context</param>
-      <param name="PhiField">TemperatureField</param>
-      <param name="Residual">residual</param>
-      <param name="MassMatrix">massMatrix</param>
-      <param name="courantFactor">0.25</param>
-    </struct>
-    <struct name="lumpedMassMatrixForceTerm">
-      <param name="Type">LumpedMassMatrixForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">massMatrix</param>
-    </struct>
-    <struct name="defaultResidualForceTerm">
-      <param name="Type">AdvDiffResidualForceTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="ForceVector">residual</param>
-      <param name="ExtraInfo">EnergyEqn</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="defaultDiffusivity">defaultDiffusivity</param>
-      <param name="UpwindXiFunction">Exact</param>
-    </struct>
-    <struct name="internalHeatingTerm">
-      <param name="Type">RadiogenicHeatingTerm</param>
-      <param name="ForceVector">residual</param>
-      <param name="Swarm">picIntegrationPoints</param>
-    </struct>
-
-  </struct>
-
-<!--  ====the end of component section====  -->
-
-<!-- ============== Mesh  ====================  -->
- <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">False</param>
-        <param name="staticTop">True</param>-->
-        <param name="staticBottom">True</param> -->
-        <param name="staticFront">True</param>
-        <param name="staticBack">True</param>
-        <param name="staticLeft">True</param>
-<!--        <param name="staticLeftTop">True</param>-->
-<!--        <param name="floatLeftTop">True</param>-->
-<!--        <param name="xLeftCoord">minX</param>-->
-        <param name="staticLeftBottom">True</param> -->
-        <param name="staticRight">True</param>
-<!--        <param name="staticRightTop">True</param>-->
-<!--        <param name="floatRightTop">True</param>-->
-<!--        <param name="xRightCoord">maxX</param>-->
-        <param name="staticRightBottom">True</param> -->
-        <list name="fields">
-         <struct>
-           <param name="field">VelocityField</param>
-           <param name="variable">velocity</param>
-         </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
- <!-- ============== Velocity BCs ====================  -->
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vz</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">-4e12</param>   <!-- -4e-10*1e25 -->
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">4e12</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-<!-- ============== Temperature BCs ===============  -->
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">273</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">nonDikeShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">MeshShapeVC</param>
-        <param name="Shape">dikeShape</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">double</param>
-            <param name="value">1500</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-<!-- ============== Temperature ICs =====================  -->
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-<!-- ================= PARAMETERS ======================= -->
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="maxTimeSteps">15000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">2</param>
-  <param name="outputPath">output_dike</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0.0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">60000.0f</param>
-  <param name="maxY">16000.0f</param>
-  <param name="maxAirY">18000.0f</param>
-  <param name="maxZ">2500.0f</param>
-  <param name="elementResI">120</param>
-  <param name="elementResJ">36</param>
-  <param name="elementResK">5</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="defaultDiffisivity">1.0e16</param> <!--1.0e-6*1.0e25-->
-  
-<!-- === PARAMETERS for temperature profile rotation ============ -->
-  <param name="TemperatureProfileTop">273</param>
-  <!-- Assume thermal conductivity of 3 W/m K and heat flux at 0.029 W/m^2 -->
-  <param name="TemperatureProfileLinearCoefficient">0.10909</param> <!--1200K/depth[1200K]=0.102176 0.10909-->
-<!-- Heating rate = 2.8e-6 W/m^3, h_r=10 km, thermal conductivity 3 W/m K -->
-  <param name="TemperatureProfileExponentialCoefficient1">0</param>
-  <!-- 1/h_r = 10^-4 -->
-  <param name="TemperatureProfileExponentialCoefficient2">0</param>
-
-
-
-  <param name="TemperatureProfileMax">1473.0</param>
-  <param name="TemperatureProfileH0">7000.0</param>
-  <param name="TemperatureProfiledH">27000.0</param>
-  <param name="TemperatureProfileHm">16000.0</param>
-  <param name="ExtensionCentreX">30000</param>
-
-  <!--<param name="SolidBodyRotationCentreX">15000</param>-->
-  <!--<param name="SolidBodyRotationCentreY">0</param>-->
-  <!--<param name="SolidBodyRotationCentreZ">0</param>-->
-  <!--<param name="TemperatureRotationOmega">0</param>--><!--counterclockwise rotation from x axis-->
-<!-- === PARAMETERS for temperature profile rotation end========== -->
-<!--  <param name="GaussianHeight">5.25e8</param> -->
-<!--  <param name="GaussianWidth">5000</param> -->
-<!--  <param name="GaussianCenter">30000</param> -->
-<!--  <param name="GaussianDim">0</param> -->
-
-  <!--<param name="dt">0</param>-->
-  <param name="dtFactor">0.5</param>
-  <param name="linearTolerance">1.0e-5</param>
-  <param name="nonLinearTolerance">1.0e-2</param>
-
- <param name="journal.info">True</param>
- <param name="journal.debug">True</param>
- <param name="journal-level.info">2</param> 
- <param name="journal-level.debug">2</param>
-</StGermainData>
diff -r 8d25939560e5 -r 8de894d93a65 input/examples/subduction.xml
--- a/input/examples/subduction.xml	Wed Nov 23 15:40:33 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,811 +0,0 @@
-<?xml version="1.0"?>
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-  <import>
-    <toolbox>Underworld</toolbox>
-  </import>
-  <plugins>
-    <struct>
-      <param name="Type">Underworld_EulerDeform</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">Underworld_VTKOutput</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct>
-      <param name="Type">StgFEM_StandardConditionFunctions</param>
-      <param name="Context">context</param>
-    </struct>
-  </plugins>
-  <struct name="components">
-    <struct name="context">
-      <param name="Type">UnderworldContext</param>
-    </struct>
-    <struct name="mesh-linear">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="linearMesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="dim">dim</param>
-      <param name="shadowDepth">shadowDepth</param>
-      <param name="regular">False</param>
-      <list name="size">
-        <param>elementResI</param>
-        <param>elementResJ</param>
-        <param>elementResK</param>
-      </list>
-      <list name="minCoord">
-        <param>minX</param>
-        <param>minY</param>
-        <param>minZ</param>
-      </list>
-      <list name="maxCoord">
-        <param>maxX</param>
-        <param>maxY</param>
-        <param>maxZ</param>
-      </list>
-    </struct>
-    <struct name="velocity">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Vector</param>
-      <param name="DataType">Double</param>
-      <param name="VectorComponentCount">dim</param>
-      <list name="names">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="velocityBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="velocityDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="BaseVariableCount">dim</param>
-      <list name="BaseVariables">
-        <param>vx</param>
-        <param>vy</param>
-        <param>vz</param>
-      </list>
-    </struct>
-    <struct name="VelocityField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">velocityDofLayout</param>
-      <param name="BC">velocityBCs</param>
-      <param name="IC">velocityICs</param>
-      <param name="LinkedDofInfo">velocityLinkedDofs</param>
-    </struct>
-    <struct name="VelocityMagnitudeField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Magnitude</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="VelocityGradientsInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorInvariant</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorSymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="VorticityField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">TensorAntisymmetricPart</param>
-      <param name="FeVariable">VelocityGradientsField</param>
-    </struct>
-    <struct name="StrainRateInvariantField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">SymmetricTensor_Invariant</param>
-      <param name="FeVariable">StrainRateField</param>
-    </struct>
-    <struct name="pressure">
-      <param name="Type">MeshVariable</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-    </struct>
-    <struct name="pressureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>pressure</param>
-      </list>
-    </struct>
-    <struct name="PressureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">pressureDofLayout</param>
-      <param name="LinkedDofInfo">pressureLinkedDofs</param>
-    </struct>
-    <struct name="StressField">
-      <param name="Type">StressField</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="Context">context</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="IC">stressICs</param>
-    </struct> 
-    <struct name="ViscosityField">
-      <param name="Type">ViscosityField</param>
-      <param name="Context">context</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="Mesh">mesh-linear</param>
-      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
-    </struct>
-    <struct name="cellLayout">
-      <param name="Type">SingleCellLayout</param>
-    </struct>
-    <struct name="particleLayout">
-      <param name="Type">GaussParticleLayout</param>
-    </struct>
-    <struct name="gaussSwarm">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">particleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">GaussMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="gaussMaterialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">cellLayout</param>
-      <param name="ParticleLayout">backgroundLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>gaussMSwarmMovementHandler</param>
-      </list>
-    </struct>
-    <struct name="timeIntegrator">
-      <param name="Type">TimeIntegrator</param>
-      <param name="order">1</param>
-      <param name="simultaneous">t</param>
-      <param name="Context">context</param>
-    </struct>
-    <struct name="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-linear</param>
-    </struct>
-    <struct name="weights">
-      <param name="Type">PCDVC</param>
-      <param name="resolutionX">10</param>
-      <param name="resolutionY">10</param>
-      <param name="resolutionZ">10</param>
-      <param name="lowerT">0.6</param>
-      <param name="upperT">25</param>
-      <param name="maxDeletions">3</param>
-      <param name="maxSplits">3</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="localLayout">
-      <param name="Type">MappedParticleLayout</param>
-    </struct>
-    <struct name="picIntegrationPoints">
-      <param name="Type">IntegrationPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">localLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <param name="WeightsCalculator">weights</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="IntegrationPointMapper">mapper</param>
-    </struct>
-    <struct name="mapper">
-      <param name="Type">CoincidentMapper</param>
-      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="materialSwarmParticleLayout">
-      <param name="Type">MeshParticleLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="cellParticleCount">particlesPerCell</param>
-    </struct>
-    <struct name="pMovementHandler">
-      <param name="Type">ParticleMovementHandler</param>
-    </struct>
-    <struct name="pShadowSync">
-      <param name="Type">ParticleShadowSync</param>
-    </struct>
-    <struct name="materialSwarm">
-      <param name="Type">MaterialPointsSwarm</param>
-      <param name="CellLayout">elementCellLayout</param>
-      <param name="ParticleLayout">materialSwarmParticleLayout</param>
-      <param name="FeMesh">mesh-linear</param>
-      <list name="ParticleCommHandlers">
-        <param>pMovementHandler</param>
-        <param>pShadowSync</param>
-      </list>
-      <param name="SplittingRoutine">splittingRoutine</param>
-      <param name="RemovalRoutine">removalRoutine</param>
-      <param name="EscapedRoutine">escapedRoutine</param>
-    </struct>
-    <struct name="materialSwarmAdvector">
-      <param name="Type">SwarmAdvector</param>
-      <param name="Swarm">materialSwarm</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="VelocityField">VelocityField</param>
-      <param name="PeriodicBCsManager">periodicBCsManager</param>
-      <param name="allowFallbackToFirstOrder">True</param>
-    </struct>
-    <struct name="solutionVelocity">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">VelocityField</param>
-    </struct>
-    <struct name="solutionPressure">
-      <param name="Type">SolutionVector</param>
-      <param name="FeVariable">PressureField</param>
-    </struct>
-    <struct name="mom_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">VelocityField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="cont_force">
-      <param name="Type">ForceVector</param>
-      <param name="FeVariable">PressureField</param>
-      <param name="ExtraInfo">context</param>
-    </struct>
-    <struct name="k_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">VelocityField</param>
-      <param name="RHS">mom_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="constitutiveMatrix">
-      <param name="Type">ConstitutiveMatrixCartesian</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">k_matrix</param>
-    </struct>
-    <struct name="g_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">VelocityField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">mom_force</param>
-      <param name="transposeRHS">cont_force</param>
-      <param name="allowZeroElementContributions">False</param>
-    </struct>
-    <struct name="gradientStiffnessMatrixTerm">
-      <param name="Type">GradientStiffnessMatrixTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="StiffnessMatrix">g_matrix</param>
-    </struct>
-    <struct name="preconditioner">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="preconditionerTerm">
-      <param name="Type">UzawaPreconditionerTerm</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="StiffnessMatrix">preconditioner</param>
-    </struct>
-    <struct name="uzawa">
-      <param name="Type">Stokes_SLE_UzawaSolver</param>
-      <param name="velocitySolver">matrixSolver</param>
-      <param name="Preconditioner">preconditioner</param>
-      <param name="tolerance">linearTolerance</param>
-      <param name="monitor">false</param>
-      <param name="maxIterations">5000</param>
-      <param name="minIterations">1</param>
-    </struct>
-    <struct name="stokesEqn">
-      <param name="Type">Stokes_SLE</param>
-      <param name="SLE_Solver">uzawa</param>
-      <param name="Context">context</param>
-      <param name="StressTensorMatrix">k_matrix</param>
-      <param name="GradientMatrix">g_matrix</param>
-      <param name="DivergenceMatrix"></param>
-      <param name="CompressibilityMatrix">c_matrix</param>
-      <param name="VelocityVector">solutionVelocity</param>
-      <param name="PressureVector">solutionPressure</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="ContinuityForceVector">cont_force</param>
-      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-      <param name="nonLinearMinIterations">nonLinearMinIterations</param>
-      <param name="nonLinearTolerance">nonLinearTolerance</param>
-      <param name="makeConvergenceFile">false</param>
-      <param name="isNonLinear">true</param>
-    </struct>
-    <struct name="c_matrix">
-      <param name="Type">StiffnessMatrix</param>
-      <param name="RowVariable">PressureField</param>
-      <param name="ColumnVariable">PressureField</param>
-      <param name="RHS">cont_force</param>
-      <param name="allowZeroElementContributions">True</param>
-    </struct>
-    <struct name="mixedStabiliser">
-      <param name="Type">MixedStabiliserTerm</param>
-      <param name="Swarm">gaussSwarm</param>
-      <param name="picSwarm">picIntegrationPoints</param>
-      <param name="storeVisc">storeViscosity</param>
-      <param name="StiffnessMatrix">c_matrix</param>
-    </struct>
-    <struct name="hydrostaticTerm">
-      <param name="Type">HydrostaticTerm</param>
-      <param name="upperDensity">2800</param>
-      <param name="upperAlpha">3.0e-5</param>
-      <param name="lowerDensity">2800</param>
-      <param name="lowerAlpha">3.0e-5</param>
-      <param name="height">maxY</param>
-      <param name="materialBoundary">0</param>
-      <param name="T_0">TemperatureProfileTop</param>
-      <param name="linearCoefficient">TemperatureProfileLinearCoefficient</param>
-      <param name="exponentialCoefficient1">TemperatureProfileExponentialCoefficient1</param>
-      <param name="exponentialCoefficient2">TemperatureProfileExponentialCoefficient2</param>
-      <param name="gravity">gravity</param>
-    </struct>
-
-    <struct name="stressBC">
-      <param name="Type">StressBC</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="wall">top</param>
-      <param name="y_type">HydrostaticTerm</param>
-      <param name="y_value">hydrostaticTerm</param>
-    </struct>
-    <struct name="buoyancyForceTerm">
-      <param name="Type">BuoyancyForceTerm</param>
-      <param name="ForceVector">mom_force</param>
-      <param name="TemperatureField">TemperatureField</param>
-      <param name="Swarm">picIntegrationPoints</param>
-      <param name="gravity">gravity</param>
-      <param name="HydrostaticTerm">hydrostaticTerm</param>
-    </struct>
-    <struct name="background">
-      <param name="Type">Everywhere</param>
-    </struct>
-    <struct name="escapedRoutine">
-      <param name="Type">EscapedRoutine</param>
-      <param name="idealParticleCount">0</param>
-    </struct>
-    <struct name="velocityRemesher">
-      <param name="Type">RegularRemesherCmpt</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="remeshDims">
-        <param>0</param>
-        <param>1</param>
-        <param>2</param>
-      </list>
-    </struct>
-
-    <struct name="surfaceAdaptor">
-      <param name="Type">SurfaceAdaptor</param>
-      <param name="mesh">mesh-linear</param>
-      <param name="sourceGenerator">linearMesh-generator</param>
-      <param name="bottomSurfaceType">cylinder</param>
-      <param name="bottomX0">SolidBodyRotationCentreX</param>
-      <param name="bottomY0">SolidBodyRotationCentreY</param>
-      <param name="bottomRadius">InnerRadiusCylinder</param>
-      <param name="bottomMinX">CylinderMinX</param>
-      <param name="bottomMaxX">CylinderMaxX</param>
-    </struct>
-
-    <struct name="backgroundViscosity">
-      <param name="Type">MaterialViscosity</param>
-      <param name="eta0">1.0</param>
-    </struct>
-    <struct name="storeViscosity">
-      <param name="Type">StoreVisc</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-    <struct name="storeStress">
-      <param name="Type">StoreStress</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-    </struct>
-
-    <!-- Crust -->
-    <struct name="crustViscosity">
-      <param name="Type">FrankKamenetskii</param>
-      <param name="TemperatureField">TemperatureField</param>
-<!--       at T=273, viscosity=1e25, at T=1273, viscosity=1e20 -->
-      <param name="eta0">2.31739465</param>
-<!--       <param name="eta0">2.31739465e26</param> -->
-      <param name="theta">0.011512925465</param>
-    </struct>
-
-    <struct name="strainWeakening">
-      <param name="Type">StrainWeakening</param>
-      <param name="TimeIntegrator">timeIntegrator</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="finalSofteningStrain">0.1</param>
-      <param name="initialDamageFraction">0.0</param>
-      <param name="initialDamageWavenumber">0.5</param>
-      <param name="initialDamageFactor">0.5</param>
-      <param name="healingRate">0.0</param>
-    </struct>
-    <struct name="yielding">
-      <param name="Type">DruckerPrager</param>
-      <param name="PressureField">PressureField</param>
-      <param name="VelocityGradientsField">VelocityGradientsField</param>
-      <param name="MaterialPointsSwarm">materialSwarm</param>
-      <param name="Context">context</param>
-      <param name="StrainWeakening">strainWeakening</param>
-      <param name="StrainRateField">StrainRateField</param>
-      <param name="cohesion">44e6</param>
-      <param name="cohesionAfterSoftening">4e6</param>
-      <param name="frictionCoefficient">0.57735026919</param>
-      <param name="frictionCoefficientAfterSoftening">0.57735026919</param>
-      <param name="HydrostaticTerm">hydrostaticTerm</param>
-    </struct>
-
-    <struct name="crustViscous">
-      <param name="Type">RheologyMaterial</param>
-      <param name="Shape">background</param>
-      <param name="density">2800</param>
-      <param name="alpha">3.0e-5</param>
-      <param name="diffusivity">1.0e-6</param>
-      <list name="heatingElements">
-        <struct>
-          <param name="Q">1.0e-12</param>
-          <param name="lambda">0.0</param>
-        </struct>
-      </list>
-      <list name="Rheology">
-        <param>backgroundViscosity</param>
-        <!-- <param>crustViscosity</param> -->
-        <param>yielding</param>
-        <param>storeViscosity</param>
-        <param>storeStress</param>
-      </list>
-    </struct>
-    
-
-    <!-- Temperature components -->
-    <struct name="temperature">
-      <param name="Type">MeshVariable</param>
-      <param name="Rank">Scalar</param>
-      <param name="DataType">Double</param>
-      <param name="mesh">mesh-linear</param>
-    </struct>
-    <struct name="temperatureBCs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureICs">
-      <param name="Type">CompositeVC</param>
-      <param name="Data">mesh-linear</param>
-    </struct>
-    <struct name="temperatureDofLayout">
-      <param name="Type">DofLayout</param>
-      <param name="mesh">mesh-linear</param>
-      <list name="BaseVariables">
-        <param>temperature</param>
-      </list>
-    </struct>
-    <struct name="TemperatureField">
-      <param name="Type">FeVariable</param>
-      <param name="FEMesh">mesh-linear</param>
-      <param name="DofLayout">temperatureDofLayout</param>
-      <param name="BC">temperatureBCs</param>
-      <param name="IC">temperatureICs</param>
-      <param name="LinkedDofInfo">temperatureLinkedDofs</param>
-    </struct>
-    <struct name="TemperatureGradientsField">
-      <param name="Type">OperatorFeVariable</param>
-      <param name="Operator">Gradient</param>
-      <param name="FeVariable">TemperatureField</param>
-    </struct>
-
-    <!-- Energy Equation -->
-
-<!--     <struct name="residual"> -->
-<!--       <param name="Type">ForceVector</param> -->
-<!--       <param name="FeVariable">TemperatureField</param> -->
-<!--     </struct> -->
-<!--     <struct name="massMatrix"> -->
-<!--       <param name="Type">ForceVector</param> -->
-<!--       <param name="FeVariable">TemperatureField</param> -->
-<!--     </struct> -->
-<!--     <struct name="predictorMulticorrector"> -->
-<!--       <param name="Type">AdvDiffMulticorrector</param> -->
-<!--     </struct> -->
-<!--     <struct name="EnergyEqn"> -->
-<!--       <param name="Type">AdvectionDiffusionSLE</param> -->
-<!--       <param name="SLE_Solver">predictorMulticorrector</param> -->
-<!--       <param name="Context">context</param> -->
-<!--       <param name="PhiField">TemperatureField</param> -->
-<!--       <param name="Residual">residual</param> -->
-<!--       <param name="MassMatrix">massMatrix</param> -->
-<!--       <param name="courantFactor">0.25</param> -->
-<!--     </struct> -->
-<!--     <struct name="lumpedMassMatrixForceTerm"> -->
-<!--       <param name="Type">LumpedMassMatrixForceTerm</param> -->
-<!--       <param name="Swarm">gaussSwarm</param> -->
-<!--       <param name="ForceVector">massMatrix</param> -->
-<!--     </struct> -->
-<!--     <struct name="defaultResidualForceTerm"> -->
-<!--       <param name="Type">AdvDiffResidualForceTerm</param> -->
-<!--       <param name="Swarm">gaussSwarm</param> -->
-<!--       <param name="ForceVector">residual</param> -->
-<!--       <param name="ExtraInfo">EnergyEqn</param> -->
-<!--       <param name="VelocityField">VelocityField</param> -->
-<!--       <param name="defaultDiffusivity">defaultDiffusivity</param> -->
-<!--       <param name="UpwindXiFunction">Exact</param> -->
-<!--     </struct> -->
-<!--     <struct name="internalHeatingTerm"> -->
-<!--       <param name="Type">RadiogenicHeatingTerm</param> -->
-<!--       <param name="ForceVector">residual</param> -->
-<!--       <param name="Swarm">picIntegrationPoints</param> -->
-<!--     </struct>	 -->
-
-  </struct>
-  <list name="FieldVariablesToCheckpoint">
-    <param>VelocityField</param>
-    <param>PressureField</param>
-    <param>TemperatureField</param>
-  </list>
-  <param name="maxTimeSteps">1000</param>
-  <param name="outputEvery">1</param>
-  <param name="dumpEvery">1</param>
-  <param name="outputPath">./output.subduction</param>
-  <param name="dim">2</param>
-  <param name="shadowDepth">1</param>
-  <param name="minX">0.0f</param>
-  <param name="minY">0f</param>
-  <param name="minZ">0.0f</param>
-  <param name="maxX">300000.0f</param>
-  <param name="maxY">50000f</param>
-  <param name="maxZ">1000000f</param>
-  <param name="elementResI">128</param>
-  <param name="elementResJ">16</param>
-  <param name="elementResK">4</param>
-  <param name="allowUnbalancing">True</param>
-  <param name="buildNodeNeighbourTbl">True</param>
-  <param name="buildElementNeighbourTbl">True</param>
-  <param name="particlesPerCell">30</param>
-  <param name="seed">13</param>
-  <param name="gaussParticlesX">2</param>
-  <param name="gaussParticlesY">2</param>
-  <param name="gaussParticlesZ">2</param>
-  <param name="particlesPerCell">30</param>
-  <struct name="EulerDeform">
-    <list name="systems">
-      <struct>
-        <param name="mesh">mesh-linear</param>
-        <param name="remesher">velocityRemesher</param>
-        <param name="velocityField">VelocityField</param>
-        <param name="wrapTop">True</param>
-        <param name="staticBottom">True</param>
-        <param name="staticLeft">True</param>
-        <param name="staticLeftTop">True</param>
-        <list name="fields">
-          <struct>
-            <param name="field">VelocityField</param>
-            <param name="variable">velocity</param>
-          </struct>
-          <struct>
-            <param name="field">PressureField</param>
-            <param name="variable">pressure</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-  <struct name="velocityBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <!-- <struct> -->
-      <!--   <param name="type">WallVC</param> -->
-      <!--   <param name="wall">front</param> -->
-      <!--   <list name="variables"> -->
-      <!--     <struct> -->
-      <!--       <param name="name">vz</param> -->
-      <!--       <param name="type">double</param> -->
-      <!--       <param name="value">0</param> -->
-      <!--     </struct> -->
-      <!--   </list> -->
-      <!-- </struct> -->
-      <!-- <struct> -->
-      <!--   <param name="type">WallVC</param> -->
-      <!--   <param name="wall">back</param> -->
-      <!--   <list name="variables"> -->
-      <!--     <struct> -->
-      <!--       <param name="name">vz</param> -->
-      <!--       <param name="type">double</param> -->
-      <!--       <param name="value">0</param> -->
-      <!--     </struct> -->
-      <!--   </list> -->
-      <!-- </struct> -->
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_PartialRotationX</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_PartialRotationY</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">double</param>
-            <param name="value">0</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">double</param>
-            <param name="value">0.0</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">vx</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_PartialRotationX</param>
-          </struct>
-          <struct>
-            <param name="name">vy</param>
-            <param name="type">func</param>
-            <param name="value">Velocity_PartialRotationY</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureBCs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">top</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">bottom</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">left</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">right</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">front</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-      <struct>
-        <param name="type">WallVC</param>
-        <param name="wall">back</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <struct name="temperatureICs">
-    <param name="type">CompositeVC</param>
-    <list name="vcList">
-      <struct>
-        <param name="type">AllNodesVC</param>
-        <list name="variables">
-          <struct>
-            <param name="name">temperature</param>
-            <param name="type">func</param>
-            <param name="value">TemperatureProfile</param>
-          </struct>
-        </list>
-      </struct>
-    </list>
-  </struct>
-
-  <!-- These numbers have to be kept in sync with the top and bottom BC's.  The
-  parser can not read the variables and use them there, so they have
-  to be specified in two places. -->
-
-  <param name="TemperatureProfileTop">273</param>
-  <!-- Assume thermal conductivity of 3 W/m K and heat flux at 0.029 W/m^2 -->
-  <param name="TemperatureProfileLinearCoefficient">0.0096667</param>
-  <!-- Heating rate = 2.8e-6 W/m^3, h_r=10 km, thermal conductivity 3 W/m K -->
-  <param name="TemperatureProfileExponentialCoefficient1">93.333</param>
-  <!-- 1/h_r = 10^-4 -->
-  <param name="TemperatureProfileExponentialCoefficient2">1.0e-4</param>
-
-<!--   <param name="checkpointEvery">1</param> -->
-  <param name="dtFactor">1.0</param>
-
-
-  <param name="gravity">9.81</param>
-
-  <param name="SolidBodyRotationOmega">-44844417883.6</param>
-            <!-- 3.17097919838e-10 scaled to 3.17097919838e16 then
-                 divided by InnerRadiusCylinder -->
-  <param name="SolidBodyRotationCentreX">0</param>
-  <param name="SolidBodyRotationCentreY">-460000</param>
-  <param name="InnerRadiusCylinder">500000</param>
-  <param name="CylinderMinX">0</param>
-  <param name="CylinderMaxX">191341.716183</param>
-  <param name="RadiusCylinder">510000</param>
-
-  <param name="journal.info">True</param>
-  <param name="journal.debug">True</param>
-  <param name="journal-level.info">2</param>
-  <param name="journal-level.debug">2</param>
-</StGermainData>



More information about the CIG-COMMITS mailing list