[cig-commits] r5835 - in long/3D/Gale/trunk: . documentation documentation/images input input/cookbook

walter at geodynamics.org walter at geodynamics.org
Fri Jan 19 01:56:08 PST 2007


Author: walter
Date: 2007-01-19 01:56:05 -0800 (Fri, 19 Jan 2007)
New Revision: 5835

Added:
   long/3D/Gale/trunk/documentation/images/inflow.eps
   long/3D/Gale/trunk/documentation/images/inflow.fig
   long/3D/Gale/trunk/documentation/images/multi-material.eps
   long/3D/Gale/trunk/documentation/images/multi-material.fig
   long/3D/Gale/trunk/documentation/images/sinusoid.eps
   long/3D/Gale/trunk/documentation/images/sinusoid.fig
   long/3D/Gale/trunk/documentation/images/splitwall.eps
   long/3D/Gale/trunk/documentation/images/splitwall.fig
   long/3D/Gale/trunk/documentation/images/stressbc.eps
   long/3D/Gale/trunk/documentation/images/stressbc.fig
   long/3D/Gale/trunk/input/cookbook/
   long/3D/Gale/trunk/input/cookbook/multi_material.xml
   long/3D/Gale/trunk/input/cookbook/template.xml
   long/3D/Gale/trunk/input/cookbook/viscous.xml
   long/3D/Gale/trunk/input/cookbook/viscous_extension.xml
   long/3D/Gale/trunk/input/cookbook/viscous_inflow.xml
   long/3D/Gale/trunk/input/cookbook/viscous_sinusoid.xml
   long/3D/Gale/trunk/input/cookbook/viscous_split.xml
   long/3D/Gale/trunk/input/cookbook/viscous_stressbc.xml
   long/3D/Gale/trunk/input/cookbook/yielding.xml
Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/documentation/gale.lyx
   long/3D/Gale/trunk/input/extension.xml
   long/3D/Gale/trunk/input/fountain.xml
   long/3D/Gale/trunk/input/shortening.xml
   long/3D/Gale/trunk/input/sinusoid.xml
   long/3D/Gale/trunk/input/subduction.xml
Log:
 r1449 at earth:  boo | 2007-01-19 01:54:14 -0800
 Fix try at cookbook examples



Property changes on: long/3D/Gale/trunk
___________________________________________________________________
Name: svk:merge
   - 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:1442
   + 3a629746-de10-0410-b17b-fd6ecaaa963e:/cig:1449

Modified: long/3D/Gale/trunk/documentation/gale.lyx
===================================================================
--- long/3D/Gale/trunk/documentation/gale.lyx	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/gale.lyx	2007-01-19 09:56:05 UTC (rev 5835)
@@ -853,6 +853,29 @@
 \end_layout
 
 \begin_layout Standard
+This will output some warnings like
+\end_layout
+
+\begin_layout LyX-Code
+Warning - in _WallVC_GetSet: Can't build a back wall VC when mesh has no
+ elements in the K axis.
+ Returning an empty set.
+\end_layout
+
+\begin_layout LyX-Code
+Warning:        () called to allocate a 2D variable length array where the
+ total size calculated was 0.
+ Returning NULL.
+\end_layout
+
+\begin_layout Standard
+You can ignore these warnings.
+ The input file is set up to run in 2D or 3D.
+ The default is to run in 2D, so Gale is just telling you that it will ignore
+ the 3D components.
+\end_layout
+
+\begin_layout Standard
 If you compiled Gale yourself, then you can run it from where you installed
  it.
  If running in parallel, then just prepend 
@@ -953,6 +976,1226 @@
 \end_layout
 
 \begin_layout Section
+Cookbook examples
+\end_layout
+
+\begin_layout Standard
+In this section, we will go through editing a template file (
+\family typewriter
+input/template.xml
+\family default
+) to create customized input files.
+ Unless otherwise specified, when we say to add something, that text should
+ be added after the line
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="components">
+\end_layout
+
+\begin_layout Standard
+at the beginning of the file, and before the lines
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="plugins">
+\end_layout
+
+\begin_layout Standard
+The template file is already indented to prevent you from adding a component
+ in the middle of another component, although indentation is not critical.\InsetSpace \thinspace{}
+
+\end_layout
+
+\begin_layout Standard
+When we say to add a variable, just add it at the end of the file before
+ the closing line
+\end_layout
+
+\begin_layout LyX-Code
+</StGermainData>
+\end_layout
+
+\begin_layout Standard
+Finished versions of all of these examples are in 
+\family typewriter
+input/cookbook
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Subsection
+\begin_inset LatexCommand \label{sub:Viscous-Material}
+
+\end_inset
+
+Viscous Material
+\end_layout
+
+\begin_layout Standard
+The first thing we have to do is add in a material.
+ The simplest variety is a purely viscous material.
+ So we add a box covering the whole domain
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="boxShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Box</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startX">minX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endX">maxX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startY">minY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endY">maxY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startZ">minZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endZ">maxZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Then we set the material's viscosity
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="backgroundViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="eta0">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+We tell Gale to store the viscosity on the material points
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="storeViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StoreVisc</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Finally, we create the material, using the components we just created.
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="viscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">boxShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Save this file, as it will be the basis for many other examples.
+\end_layout
+
+\begin_layout Subsection
+\begin_inset LatexCommand \label{sub:Viscous-Extension}
+
+\end_inset
+
+Viscous Material in Simple Extension
+\end_layout
+
+\begin_layout Standard
+This input file is valid, but there are no dynamics.
+ Gale will complain if you try to run it.
+ So we also make the right boundary move by changing the line in the right
+ 
+\family typewriter
+WallVC
+\family default
+ struct near the end of the file from
+\end_layout
+
+\begin_layout LyX-Code
+<param name="value">0.0</param>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="value">1.0</param>
+\end_layout
+
+\begin_layout Standard
+We can now run this example, and the output will go into the directory 
+\family typewriter
+output.template
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+If we want to run in 3D, we need only change the line
+\end_layout
+
+\begin_layout LyX-Code
+<param name="dims">2</param>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="dims">3</param>
+\end_layout
+
+\begin_layout Subsection
+Viscous Material with Complex Boundaries
+\end_layout
+
+\begin_layout Standard
+Now we want to make the bottom boundary move differently, and not just have
+ the material slide along.
+ In particular, we want to simulate a box like in Figure 
+\begin_inset LatexCommand \ref{fig:Split-Boundary}
+
+\end_inset
+
+, where the bottom right side of the box moves, but the bottom left sticks.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/splitwall.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Split-Boundary}
+
+\end_inset
+
+Split Boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+So we modify the bottom boundary condition to
+\end_layout
+
+\begin_layout LyX-Code
+<struct>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="name">vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="value">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="value">StepFunction</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+This makes the velocity of the bottom boundary a step function.
+ We must also specify the parameters of the step function by adding the
+ variables
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionLowerOffset">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionUpperOffset">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionValue">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionDim">0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionLessThan">False</param>
+\end_layout
+
+\begin_layout Subsection
+Viscous Material with Inflow/Outflow Boundaries
+\end_layout
+
+\begin_layout Standard
+A different kind of boundary condition is to have material flow in one side
+ and out another as in Figure 
+\begin_inset LatexCommand \ref{fig:Inflow/Outflow-Boundary}
+
+\end_inset
+
+.
+ 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/inflow.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Inflow/Outflow-Boundary}
+
+\end_inset
+
+Inflow/Outflow Boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Taking the input file we created in section 
+\begin_inset LatexCommand \ref{sub:Viscous-Material}
+
+\end_inset
+
+, first we need to tell Gale to keep the left and bottom sides fixed, no
+ matter what, by adding the lines
+\end_layout
+
+\begin_layout LyX-Code
+<param name="staticLeft">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="staticBottom">True</param>
+\end_layout
+
+\begin_layout Standard
+after 
+\family typewriter
+wrapTop
+\family default
+ in the 
+\family typewriter
+velocityRemesher
+\family default
+ struct in the 
+\family typewriter
+EulerDeform
+\family default
+ struct (
+\family typewriter
+EulerDeform
+\family default
+ comes after the list of components, but before the boundary conditions).
+\end_layout
+
+\begin_layout Standard
+Now we specify the velocities on the boundaries using the 
+\family typewriter
+StepFunctionProduct
+\family default
+ functions.
+ For the left boundary, we modify the left 
+\family typewriter
+WallVC
+\family default
+ to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wall">left</param>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+and add the variables
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3Start">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3End">0.2</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3Value">1</param>
+\end_layout
+
+\begin_layout Standard
+For the bottom boundary, we modify the the bottom 
+\family typewriter
+WallVC
+\family default
+ to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct2</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+and add the variables
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1Start">0.9</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1End">1.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1Value">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct2Start">0.9</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct2End">1.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct2Value">-1.0</param>
+\end_layout
+
+\begin_layout Subsection
+Viscous Material with Stress Boundaries
+\end_layout
+
+\begin_layout Standard
+Gale also supports stress boundary conditions.
+ So we can simulate a box like Figure 
+\begin_inset LatexCommand \ref{fig:Stress-Boundaries}
+
+\end_inset
+
+, where there is a tangential stress at the bottom causing a circulation,
+ but otherwise the bottom is stress-free.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/stressbc.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Stress-Boundaries}
+
+\end_inset
+
+Stress Boundaries
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Again, taking the input file we created in section 
+\begin_inset LatexCommand \ref{sub:Viscous-Material}
+
+\end_inset
+
+, we need only add a 
+\family typewriter
+StressBC
+\family default
+ component
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="stressBC">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StressBC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ForceVector">mom_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">picIntegrationPoints</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_value">StepFunctionProduct1</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and corresponding variables
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1Start">0.9</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1End">1.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct1Value">1.0</param>
+\end_layout
+
+\begin_layout Subsection
+\begin_inset LatexCommand \label{sub:Viscous-Initially-Deformed}
+
+\end_inset
+
+Viscous Material with Initially Deformed Upper Boundary
+\end_layout
+
+\begin_layout Standard
+All of the examples we so far have started out as a regular rectangular
+ box.
+ However, Gale can also start with the top initially deformed.
+ A simple example is to make it sinusoidal as in Figure 
+\begin_inset LatexCommand \ref{fig:Sinusoidal-Top}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/sinusoid.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Sinusoidal-Top}
+
+\end_inset
+
+Sinusoidal Top
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+To create this example, we simply add a 
+\family typewriter
+SurfaceAdaptor
+\family default
+ component to the input file from section 
+\begin_inset LatexCommand \ref{sub:Viscous-Material}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="surfaceAdaptor">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">SurfaceAdaptor</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="sourceGenerator">linearMesh-generator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="surfaceType">sine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="origin">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="amplitude">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frequency">6.28318530718</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+This example has no moving boundaries, so the material will simply relax
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Subsection
+Multiple Viscous Materials
+\end_layout
+
+\begin_layout Standard
+All of the previous examples have only one type of viscous material.
+ Gale can also handle multiple viscous materials such as in Figure 
+\begin_inset LatexCommand \ref{fig:Multiple-Viscous-Materials}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename images/multi-material.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Multiple-Viscous-Materials}
+
+\end_inset
+
+Multiple Viscous Materials
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Starting from the simple extension input file (Section 
+\begin_inset LatexCommand \ref{sub:Viscous-Extension}
+
+\end_inset
+
+), we first need to create the sphere
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="sphereShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Sphere</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CentreX">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CentreY">1.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="radius">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and then the new material
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="sphereViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="eta0">2.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="sphereViscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">sphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>sphereViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+We also need change the shape of the original material so it is not inside
+ the sphere.
+ We do this by creating a new shape which is the old shape minus the sphere.
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="nonSphereShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Intersection</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="shapes">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>boxShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>!sphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Finally, we replace the original viscous material's shape with this new
+ 
+\family typewriter
+nonSphereShape
+\family default
+.
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="viscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">nonSphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Subsection
+Yielding Material in Simple Extension
+\end_layout
+
+\begin_layout Standard
+We can make the previous example more interesting by replacing the background
+ viscous material with a yielding material.
+ First we create a 
+\family typewriter
+StrainWeakening
+\family default
+ component and a 
+\family typewriter
+MohrCoulomb
+\family default
+ component
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="strainWeakening">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StrainWeakening</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="softeningStrain">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFraction">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageWavenumber">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFactor">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="healingRate">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="yielding">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MohrCoulomb</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="PressureField">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VelocityGradientsField">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Context">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StrainWeakening">strainWeakening</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesion">10.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesionAfterSoftening">0.0001</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frictionCoefficient">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frictionCoefficientAfterSoftening">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="minimumYieldStress">0.00001</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Finally, we replace the existing viscous 
+\family typewriter
+RheologyMaterial
+\family default
+ with a yielding 
+\family typewriter
+RheologyMaterial
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="crust">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">nonSphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>yielding</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Section
 Gauging Accuracy
 \end_layout
 
@@ -1864,7 +3107,7 @@
 \end_layout
 
 \begin_layout Description
-dim The number of dimensions of the problem (2 or 3).
+dims The number of dimensions of the problem (2 or 3).
 \end_layout
 
 \begin_layout Description
@@ -2756,14 +3999,18 @@
 \end_layout
 
 \begin_layout LyX-Code
-  <param name="Type">SpaceFillerParticleLayout</param>
+  <param name="Type">RandomParticleLayout</param>
 \end_layout
 
 \begin_layout LyX-Code
-  <param name="averageInitialParticlesPerCell">particlesPerCell</param>
+  <param name="seed">13</param>
 \end_layout
 
 \begin_layout LyX-Code
+  <param name="cellParticleCount">particlesPerCell</param>
+\end_layout
+
+\begin_layout LyX-Code
 </struct>
 \end_layout
 

Added: long/3D/Gale/trunk/documentation/images/inflow.eps
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/inflow.eps
___________________________________________________________________
Name: svn:mime-type
   + application/postscript

Added: long/3D/Gale/trunk/documentation/images/inflow.fig
===================================================================
--- long/3D/Gale/trunk/documentation/images/inflow.fig	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/images/inflow.fig	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,25 @@
+#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+Landscape
+Center
+Metric
+A4      
+100.00
+Single
+-2
+1200 2
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+	 675 3825 900 3825 900 4500 675 4500 675 3825
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+	 675 2700 900 2700 900 3375 675 3375 675 2700
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+	 5850 4275 9900 4275 9900 4500 5850 4500 5850 4275
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+	 900 4275 4950 4275 4950 4500 900 4500 900 4275
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 0 3600 900 3600
+2 2 0 1 0 7 49 -1 -1 0.000 0 0 -1 0 0 5
+	 900 4275 9900 4275 9900 2700 900 2700 900 4275
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 5175 4275 5811 4911

Added: long/3D/Gale/trunk/documentation/images/multi-material.eps
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/multi-material.eps
___________________________________________________________________
Name: svn:mime-type
   + application/postscript

Added: long/3D/Gale/trunk/documentation/images/multi-material.fig
===================================================================
--- long/3D/Gale/trunk/documentation/images/multi-material.fig	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/images/multi-material.fig	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,15 @@
+#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+Landscape
+Center
+Metric
+A4      
+100.00
+Single
+-2
+1200 2
+1 3 0 1 0 7 48 -1 43 0.000 1 0.0000 5400 3600 450 450 5400 3600 5850 3600
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 9900 3510 10800 3510
+2 2 0 1 0 7 49 -1 56 0.000 0 0 -1 0 0 5
+	 900 4275 9900 4275 9900 2700 900 2700 900 4275

Added: long/3D/Gale/trunk/documentation/images/sinusoid.eps
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/sinusoid.eps
___________________________________________________________________
Name: svn:mime-type
   + application/postscript

Added: long/3D/Gale/trunk/documentation/images/sinusoid.fig
===================================================================
--- long/3D/Gale/trunk/documentation/images/sinusoid.fig	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/images/sinusoid.fig	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,16 @@
+#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+Landscape
+Center
+Metric
+A4      
+100.00
+Single
+-2
+1200 2
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 900 2700 900 4275 9900 4275 9900 2700
+3 0 0 1 0 7 50 -1 -1 0.000 0 0 0 9
+	 900 2700 2025 2475 3150 2700 4275 2925 5400 2925 6525 2700
+	 7650 2475 8775 2475 9900 2700
+	 0.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
+	 0.000

Added: long/3D/Gale/trunk/documentation/images/splitwall.eps
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/splitwall.eps
___________________________________________________________________
Name: svn:mime-type
   + application/postscript

Added: long/3D/Gale/trunk/documentation/images/splitwall.fig
===================================================================
--- long/3D/Gale/trunk/documentation/images/splitwall.fig	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/images/splitwall.fig	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,31 @@
+#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+Landscape
+Center
+Metric
+A4      
+100.00
+Single
+-2
+1200 2
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+	 900 4275 5400 4275 5400 4500 900 4500 900 4275
+2 2 0 1 0 7 49 -1 -1 0.000 0 0 -1 0 0 5
+	 900 4275 9900 4275 9900 2700 900 2700 900 4275
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 5400 4410 6300 4410
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 6300 4410 7200 4410
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 7200 4410 8100 4410
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 8100 4410 9000 4410
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 9000 4410 9900 4410
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 2.00 150.00 120.00
+	 9900 3510 10800 3510

Added: long/3D/Gale/trunk/documentation/images/stressbc.eps
===================================================================
(Binary files differ)


Property changes on: long/3D/Gale/trunk/documentation/images/stressbc.eps
___________________________________________________________________
Name: svn:mime-type
   + application/postscript

Added: long/3D/Gale/trunk/documentation/images/stressbc.fig
===================================================================
--- long/3D/Gale/trunk/documentation/images/stressbc.fig	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/documentation/images/stressbc.fig	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,27 @@
+#FIG 3.2  Produced by xfig version 3.2.5-alpha5
+Landscape
+Center
+Metric
+A4      
+100.00
+Single
+-2
+1200 2
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 4725 4387 113 113 4725 4275 4725 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 4050 4387 113 113 4050 4275 4050 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 3375 4387 113 113 3375 4275 3375 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 2700 4387 113 113 2700 4275 2700 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 2025 4387 113 113 2025 4275 2025 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 1350 4387 113 113 1350 4275 1350 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 6075 4387 113 113 6075 4275 6075 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 6750 4387 113 113 6750 4275 6750 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 7425 4387 113 113 7425 4275 7425 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 8100 4387 113 113 8100 4275 8100 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 8775 4387 113 113 8775 4275 8775 4500
+1 4 0 1 0 7 50 -1 -1 0.000 1 0.0000 9450 4387 113 113 9450 4275 9450 4500
+2 2 0 1 0 7 49 -1 -1 0.000 0 0 -1 0 0 5
+	 900 4275 9900 4275 9900 2700 900 2700 900 4275
+2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 9
+	0 0 2.00 150.00 120.00
+	 4950 4500 5040 4410 5130 4590 5220 4410 5310 4590 5400 4410
+	 5490 4590 5580 4500 5760 4500

Added: long/3D/Gale/trunk/input/cookbook/multi_material.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/multi_material.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/multi_material.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,506 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="viscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">nonSphereShape</param>
+      <param name="density">1.0</param>
+      <list name="Rheology">
+        <param>backgroundViscosity</param>
+        <param>storeViscosity</param>
+      </list>
+    </struct>
+
+    <struct name="sphereShape">
+      <param name="Type">Sphere</param>
+      <param name="CentreX">1.0</param>
+      <param name="CentreY">1.5</param>
+      <param name="radius">1.0</param>
+    </struct>
+
+    <struct name="sphereViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">2.0</param>
+    </struct>
+
+    <struct name="sphereViscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">sphereShape</param>
+      <param name="density">1.0</param>
+      <list name="Rheology">
+        <param>sphereViscosity</param>
+        <param>storeViscosity</param>
+      </list>
+    </struct>
+
+    <struct name="nonSphereShape">
+      <param name="Type">Intersection</param>
+      <list name="shapes">
+        <param>boxShape</param>
+        <param>!sphereShape</param>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">3</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">1.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/template.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/template.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/template.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,448 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,476 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous_extension.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous_extension.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous_extension.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,476 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">3</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">1.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous_inflow.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous_inflow.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous_inflow.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,495 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <param name="staticLeft">True</param>
+        <param name="staticBottom">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">StepFunctionProduct3</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">func</param>
+            <param name="value">StepFunctionProduct2</param>
+          </struct>
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">StepFunctionProduct1</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+
+  <param name="StepFunctionProduct3Start">0.1</param>
+  <param name="StepFunctionProduct3End">0.2</param>
+  <param name="StepFunctionProduct3Value">1</param>
+
+  <param name="StepFunctionProduct1Start">0.9</param>
+  <param name="StepFunctionProduct1End">1.1</param>
+  <param name="StepFunctionProduct1Value">1.0</param>
+  <param name="StepFunctionProduct2Start">0.9</param>
+  <param name="StepFunctionProduct2End">1.1</param>
+  <param name="StepFunctionProduct2Value">-1.0</param>
+
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous_sinusoid.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous_sinusoid.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous_sinusoid.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,488 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+    <struct name="surfaceAdaptor">
+      <param name="Type">SurfaceAdaptor</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="sourceGenerator">linearMesh-generator</param>
+      <param name="surfaceType">sine</param>
+      <list name="origin">
+        <param>0.0</param>
+      </list>
+      <param name="amplitude">0.5</param>
+      <param name="frequency">6.28318530718</param>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous_split.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous_split.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous_split.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,486 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">3</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">1.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">StepFunction</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+  <param name="StepFunctionLowerOffset">1.0</param>
+  <param name="StepFunctionUpperOffset">1.0</param>
+  <param name="StepFunctionValue">1.0</param>
+  <param name="StepFunctionDim">0</param>
+  <param name="StepFunctionLessThan">False</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/viscous_stressbc.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/viscous_stressbc.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/viscous_stressbc.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,489 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="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>
+      </list>
+    </struct>
+
+    <struct name="stressBC">
+      <param name="Type">StressBC</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="wall">bottom</param>
+      <param name="x_type">func</param>
+      <param name="x_value">StepFunctionProduct1</param>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+
+  <param name="StepFunctionProduct1Start">0.9</param>
+  <param name="StepFunctionProduct1End">1.1</param>
+  <param name="StepFunctionProduct1Value">1.0</param>
+</StGermainData>

Added: long/3D/Gale/trunk/input/cookbook/yielding.xml
===================================================================
--- long/3D/Gale/trunk/input/cookbook/yielding.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/cookbook/yielding.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -0,0 +1,539 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <struct name="components">
+    <struct name="conditionFunctions">
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+    </struct>
+    <struct name="mesh-constant">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">constant</param>
+    </struct>
+    <struct name="constantMesh-generator">
+      <param name="Type">C0Generator</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="elementMesh">mesh-linear</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dims">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-constant</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-constant</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">1</param>
+      <param name="simultaneous">t</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="discreteVoronoi">
+      <param name="Type">CellularAutomataVoronoi</param>
+      <param name="resolution">10</param>
+      <param name="diagonalNeighbours">true</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">DiscreteVoronoiWeights</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">RandomParticleLayout</param>
+      <param name="seed">13</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <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="removalRoutine">
+      <param name="Type">DiscreteVoronoiRemove</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="splittingRoutine">
+      <param name="Type">ReseedSplitting</param>
+      <param name="idealParticleCount">particlesPerCell</param>
+      <param name="DiscreteVoronoi">discreteVoronoi</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">1.0e-5</param>
+      <param name="maxIterations">5000</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="killNonConvergent">false</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">1.0</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">StripRemesher</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="meshType">regular</param>
+      <list name="dims">
+        <param>true</param>
+        <param>true</param>
+        <param>true</param>
+      </list>
+    </struct>
+    <struct name="pressureRemesher">
+      <param name="Type">CellRemesher</param>
+      <param name="mesh">mesh-constant</param>
+      <param name="meshType">regular</param>
+      <param name="dims">3</param>
+      <param name="cellMesh">mesh-linear</param>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="viscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">nonSphereShape</param>
+      <param name="density">1.0</param>
+      <list name="Rheology">
+        <param>backgroundViscosity</param>
+        <param>storeViscosity</param>
+      </list>
+    </struct>
+
+    <struct name="sphereShape">
+      <param name="Type">Sphere</param>
+      <param name="CentreX">1.0</param>
+      <param name="CentreY">1.5</param>
+      <param name="radius">1.0</param>
+    </struct>
+
+    <struct name="sphereViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">2.0</param>
+    </struct>
+
+    <struct name="sphereViscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">sphereShape</param>
+      <param name="density">1.0</param>
+      <list name="Rheology">
+        <param>sphereViscosity</param>
+        <param>storeViscosity</param>
+      </list>
+    </struct>
+
+    <struct name="nonSphereShape">
+      <param name="Type">Intersection</param>
+      <list name="shapes">
+        <param>boxShape</param>
+        <param>!sphereShape</param>
+      </list>
+    </struct>
+
+    <struct name="strainWeakening">
+      <param name="Type">StrainWeakening</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="softeningStrain">0.1</param>
+      <param name="initialDamageFraction">0.0</param>
+      <param name="initialDamageWavenumber">0.5</param>
+      <param name="initialDamageFactor">0.5</param>
+      <param name="healingRate">0.0</param>
+    </struct>
+    <struct name="yielding">
+      <param name="Type">MohrCoulomb</param>
+      <param name="PressureField">PressureField</param>
+      <param name="VelocityGradientsField">VelocityGradientsField</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="Context">context</param>
+      <param name="StrainWeakening">strainWeakening</param>
+      <param name="cohesion">10.0</param>
+      <param name="cohesionAfterSoftening">0.0001</param>
+      <param name="frictionCoefficient">0.0</param>
+      <param name="frictionCoefficientAfterSoftening">0.0</param>
+      <param name="minimumYieldStress">0.00001</param>
+    </struct>
+    <struct name="crust">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">nonSphereShape</param>
+      <list name="Rheology">
+        <param>backgroundViscosity</param>
+        <param>yielding</param>
+        <param>storeViscosity</param>
+      </list>
+    </struct>
+
+  </struct>
+  <list name="plugins">
+    <param>Underworld_EulerDeform</param>
+    <param>Underworld_DumpSwarm</param>
+  </list>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output.template</param>
+  <param name="dims">3</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-constant</param>
+        <param name="remesher">pressureRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <list name="fields">
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">front</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">back</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vz</param>
+            <param name="type">double</param>
+            <param name="value">0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">1.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+</StGermainData>

Modified: long/3D/Gale/trunk/input/extension.xml
===================================================================
--- long/3D/Gale/trunk/input/extension.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/extension.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -398,7 +398,7 @@
   <param name="maxTimeSteps">500</param>
   <param name="dumpEvery">1</param>
   <param name="outputPath">./output.extension</param>
-  <param name="dim">2</param>
+  <param name="dims">2</param>
   <param name="shadowDepth">1</param>
   <param name="minX">0.0f</param>
   <param name="minY">0.0f</param>

Modified: long/3D/Gale/trunk/input/fountain.xml
===================================================================
--- long/3D/Gale/trunk/input/fountain.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/fountain.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -309,10 +309,10 @@
       <param name="ForceVector">mom_force</param>
       <param name="Swarm">picIntegrationPoints</param>
       <param name="wall">bottom</param>
-<!--       <param name="x_type">double</param> -->
-<!--       <param name="x_value">1.0</param> -->
-      <param name="y_type">func</param>
-      <param name="y_value">Gaussian</param>
+      <param name="x_type">double</param>
+      <param name="x_value">1.0</param>
+<!--       <param name="y_type">func</param> -->
+<!--       <param name="y_value">Gaussian</param> -->
     </struct>
     <struct name="background">
       <param name="Type">Everywhere</param>
@@ -371,7 +371,7 @@
   <param name="maxTimeSteps">500</param>
   <param name="dumpEvery">1</param>
   <param name="outputPath">./output.fountain</param>
-  <param name="dim">2</param>
+  <param name="dims">2</param>
   <param name="shadowDepth">1</param>
   <param name="minX">0.0f</param>
   <param name="minY">0.0f</param>

Modified: long/3D/Gale/trunk/input/shortening.xml
===================================================================
--- long/3D/Gale/trunk/input/shortening.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/shortening.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -410,7 +410,7 @@
   <param name="outputEvery">1</param>
   <param name="dumpEvery">1</param>
   <param name="outputPath">./output.shortening</param>
-  <param name="dim">2</param>
+  <param name="dims">2</param>
   <param name="shadowDepth">1</param>
   <param name="minX">0.0f</param>
   <param name="minY">0.0f</param>

Modified: long/3D/Gale/trunk/input/sinusoid.xml
===================================================================
--- long/3D/Gale/trunk/input/sinusoid.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/sinusoid.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -374,7 +374,7 @@
   <param name="outputEvery">1</param>
   <param name="dumpEvery">1</param>
   <param name="outputPath">./output.sinusoid</param>
-  <param name="dim">2</param>
+  <param name="dims">2</param>
   <param name="shadowDepth">1</param>
   <param name="minX">0.0f</param>
   <param name="minY">0.0f</param>

Modified: long/3D/Gale/trunk/input/subduction.xml
===================================================================
--- long/3D/Gale/trunk/input/subduction.xml	2007-01-19 00:35:35 UTC (rev 5834)
+++ long/3D/Gale/trunk/input/subduction.xml	2007-01-19 09:56:05 UTC (rev 5835)
@@ -462,7 +462,7 @@
   <param name="outputEvery">1</param>
   <param name="dumpEvery">1</param>
   <param name="outputPath">./output.subduction</param>
-  <param name="dim">2</param>
+  <param name="dims">2</param>
   <param name="shadowDepth">1</param>
   <param name="minX">0.0f</param>
   <param name="minY">0.0f</param>



More information about the cig-commits mailing list