[cig-commits] commit: Make a few cookbooks work

Mercurial hg at geodynamics.org
Sat Sep 24 13:54:16 PDT 2011


changeset:   359:9d65571f1046
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Sat Sep 24 13:52:39 2011 -0700
files:       Q2Pm1_gaussian_PIC.xml Q2Pm1_input/cookbook/velocities Q2Pm1_input/cookbook/viscous_extension.xml Q2Pm1_input/cookbook/viscous_file.xml Q2Pm1_input/cookbook/viscous_inflow.xml Q2Pm1_input/cookbook/viscous_split.xml
description:
Make a few cookbooks work


diff -r 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_gaussian_PIC.xml
--- a/Q2Pm1_gaussian_PIC.xml	Wed Sep 21 23:31:57 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,523 +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-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">Inner2DGenerator</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="mesh-Q1">
-      <param name="Type">FeMesh</param>
-      <param name="elementType">linear</param>
-    </struct>
-    <struct name="Q1Mesh-generator">
-      <param name="Type">CartesianGenerator</param>
-      <param name="mesh">mesh-Q1</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="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-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-Pm1</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-Pm1</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>
-    </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">gaussMapper</param>
-    </struct>
-    <struct name="gaussMapper">
-      <param name="Type">NearestNeighborMapper</param>
-      <param name="IntegrationPointsSwarm">gaussSwarm</param>
-      <param name="MappedSwarm">picIntegrationPoints</param>
-    </struct>
-    <struct name="backgroundLayout">
-      <param name="Type">BackgroundParticleLayout</param>
-    </struct>
-    <struct name="gaussMSwarmMovementHandler">
-      <param name="Type">ParticleMovementHandler</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="elementCellLayout">
-      <param name="Type">ElementCellLayout</param>
-      <param name="Mesh">mesh-Q2</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-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">elementCellLayout</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="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>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">1.0f</param>
-  <param name="maxY">1.0f</param>
-  <param name="maxZ">0.3f</param>
-  <param name="elementResI">16</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">10</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="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>
- <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="linearTolerance">1.0e-10</param>
-</StGermainData>
diff -r 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_input/cookbook/velocities
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Q2Pm1_input/cookbook/velocities	Sat Sep 24 13:52:39 2011 -0700
@@ -0,0 +1,102 @@
+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 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_input/cookbook/viscous_extension.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Q2Pm1_input/cookbook/viscous_extension.xml	Sat Sep 24 13:52:39 2011 -0700
@@ -0,0 +1,517 @@
+<?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-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">Inner2DGenerator</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="mesh-Q1">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="Q1Mesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-Q1</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="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-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-Pm1</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-Pm1</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="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</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="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-Q2</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-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">elementCellLayout</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="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>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">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>
+  <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="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>
+<param name="linearTolerance">1.0e-10</param>
+</StGermainData>
diff -r 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_input/cookbook/viscous_file.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Q2Pm1_input/cookbook/viscous_file.xml	Sat Sep 24 13:52:39 2011 -0700
@@ -0,0 +1,527 @@
+<?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-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">Inner2DGenerator</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="mesh-Q1">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="Q1Mesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-Q1</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="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-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-Pm1</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-Pm1</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="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</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="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-Q2</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-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">elementCellLayout</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="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>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">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>
+  <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="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="linearTolerance">1.0e-10</param>
+
+<param name="File1_Name">velocities</param>
+<param name="File1_Dim">0</param>
+<param name="File1_N">102</param>
+
+</StGermainData>
diff -r 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_input/cookbook/viscous_inflow.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Q2Pm1_input/cookbook/viscous_inflow.xml	Sat Sep 24 13:52:39 2011 -0700
@@ -0,0 +1,517 @@
+<?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-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">Inner2DGenerator</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="mesh-Q1">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="Q1Mesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-Q1</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="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-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-Pm1</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-Pm1</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="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</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="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-Q2</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-Q2</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+      <param name="Inflow">True</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">elementCellLayout</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="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>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">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>
+  <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="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">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="linearTolerance">1.0e-10</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 3d05927cd4f6 -r 9d65571f1046 Q2Pm1_input/cookbook/viscous_split.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Q2Pm1_input/cookbook/viscous_split.xml	Sat Sep 24 13:52:39 2011 -0700
@@ -0,0 +1,520 @@
+<?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-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">Inner2DGenerator</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="mesh-Q1">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="Q1Mesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-Q1</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="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-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-Pm1</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-Pm1</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="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</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="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-Q2</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-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">elementCellLayout</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="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>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">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="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>
+  <param name="linearTolerance">1.0e-10</param>
+</StGermainData>



More information about the CIG-COMMITS mailing list