[cig-commits] r5490 - in long/3D/Gale/trunk: . documentation

walter at geodynamics.org walter at geodynamics.org
Thu Dec 7 03:48:14 PST 2006


Author: walter
Date: 2006-12-07 03:48:12 -0800 (Thu, 07 Dec 2006)
New Revision: 5490

Modified:
   long/3D/Gale/trunk/
   long/3D/Gale/trunk/documentation/gale.lyx
   long/3D/Gale/trunk/fountain.xml
   long/3D/Gale/trunk/sinusoid.xml
Log:
 r1138 at earth:  boo | 2006-12-06 15:50:40 -0800
 Change 'you' to 'we', add Shapes, flux boundaries, stress boundaries, surface adaptor, and surface process



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

Modified: long/3D/Gale/trunk/documentation/gale.lyx
===================================================================
--- long/3D/Gale/trunk/documentation/gale.lyx	2006-12-07 05:03:23 UTC (rev 5489)
+++ long/3D/Gale/trunk/documentation/gale.lyx	2006-12-07 11:48:12 UTC (rev 5490)
@@ -346,8 +346,8 @@
 Note that there is no explicit time dependency (yet).
  Gale simulates creeping flows, so acceleration terms are neglected and
  material motion evolves through a series of equilibria.
- If your boundary condition has a time component, then you may infer a time.
- For example, if your boundaries move inwards at 1 mm/sec, then the solution
+ If your boundary condition has a time component, then we may infer a time.
+ For example, if the boundaries move inwards at 1 mm/sec, then the solution
  when the boundaries have moved 5 mm would correspond to 5 seconds.
 \end_layout
 
@@ -592,7 +592,7 @@
 
 \begin_layout Standard
 Gale takes an agnostic approach to surface processes such as erosion.
- Gale exposes a programming interface that allows you to modify the heights
+ Gale exposes a programming interface that allows us to modify the heights
  of the surface.
  There is a simple example using diffusion in 
 \family typewriter
@@ -1471,10 +1471,6 @@
 
 \begin_layout Chapter
 \start_of_appendix
-Parameters
-\end_layout
-
-\begin_layout Chapter
 Input File Format
 \end_layout
 
@@ -1696,6 +1692,11 @@
 
 \begin_layout Subsection
 EulerDeform
+\begin_inset LatexCommand \label{sub:EulerDeform}
+
+\end_inset
+
+
 \end_layout
 
 \begin_layout Standard
@@ -1879,11 +1880,11 @@
 \end_layout
 
 \begin_layout Standard
-Additionally, you can tell Gale to fix the positions of the boundaries.
- For example, if you are running a shortening model, normally Gale will
- move the boundaries inward as the simulation progresses.
+Additionally, we can tell Gale to fix the positions of the boundaries.
+ For example, if we are running a shortening model, normally Gale will move
+ the boundaries inward as the simulation progresses.
  If different parts of the boundary are moving at different rates (such
- as if you were simulating one slab sliding over the other), then the side
+ as if we were simulating one slab sliding over the other), then the side
  boundary would quickly become distorted and ruin the simulation.
  To fix the right boundary, set the variable 
 \family typewriter
@@ -1899,12 +1900,12 @@
 \end_layout
 
 \begin_layout Standard
-Similarly, you can independently set the left, top, bottom, front, and back
+Similarly, we can independently set the left, top, bottom, front, and back
  boundaries.
 \end_layout
 
 \begin_layout Standard
-Note that you must have included 
+Note that we must have included 
 \family typewriter
 Underworld_EulerDeform
 \family default
@@ -1941,9 +1942,9 @@
 \end_layout
 
 \begin_layout Standard
-The last section is where you would place most of your numeric constants.
+The last section is where we would place most of our numeric constants.
  For example, how many time steps, how often to print output, etc.
- You may also declare variables for convenience (e.g.
+ We may also declare variables for convenience (e.g.
  the number of grid points) and use it elsewhere, such as in the components.
 \end_layout
 
@@ -1971,7 +1972,7 @@
 \begin_layout Description
 checkpointEvery How often to dump the complete state of the simulation to
  disk.
- This allows you to restart the simulation from the checkpoint.
+ This allows us to restart the simulation from the checkpoint.
 \end_layout
 
 \begin_layout Description
@@ -1985,12 +1986,12 @@
 \end_layout
 
 \begin_layout Standard
-Also, if you use the basic components given in section 
+Also, if we use the basic components given in section 
 \begin_inset LatexCommand \ref{sec:Basic-Components}
 
 \end_inset
 
-, then you will need to specify 
+, then we will need to specify 
 \family typewriter
 elementResI
 \family default
@@ -2018,11 +2019,11 @@
 \begin_layout Standard
 Gale is built on top of StGermain, which is a very general framework for
  scientific computation.
- Because StGermain is so general, you have to tell it fairly basic things
+ Because StGermain is so general, we have to tell it fairly basic things
  that would be implicit in most codes.
- For example, you must tell StGermain that you want to set up a regular
- mesh and solve a finite element problem on it.
- This means that you have to include a number of components in every input
+ For example, we must tell StGermain that we want to set up a regular mesh
+ and solve a finite element problem on it.
+ This means that we have to include a number of components in every input
  file.
  These components are
 \end_layout
@@ -3457,7 +3458,7 @@
 
 \begin_layout Standard
 These components will be more or less unchanged between input files.
- You will need to change some associated variables specifying the resolution:
+ We will need to change some associated variables specifying the resolution:
  
 \family typewriter
 elementResI
@@ -3477,6 +3478,1620 @@
 Shapes
 \end_layout
 
+\begin_layout Standard
+When setting up a simulation, Gale reads in shapes to determine what to
+ put where.
+ For example, we can create a simulation with different materials by creating
+ different shapes and putting different materials in them.
+ As a simple example, we can create 3D box
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="simpleBox">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Box</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startX">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endX">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startY">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endY">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startZ">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endZ">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+We can perform operations on shapes to create new shapes.
+ For example, if we also create a sphere
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="simpleSphere">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Sphere</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
+then we can compose it with the box to create a new shape
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="nonSphere">
+\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>simpleBox</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>!simpleSphere</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Note that the exclamation point 
+\begin_inset Quotes sld
+\end_inset
+
+!
+\begin_inset Quotes srd
+\end_inset
+
+ in front of 
+\family typewriter
+simpleSphere
+\family default
+ means 
+\begin_inset Quotes sld
+\end_inset
+
+not
+\begin_inset Quotes srd
+\end_inset
+
+.
+ So 
+\family typewriter
+Intersection
+\family default
+ creates a shape that is the intersection of the box and everywhere outside
+ of the sphere.
+ We can list an arbitrary number of shapes in 
+\family typewriter
+Intersection
+\family default
+.
+ Also, we can use 
+\family typewriter
+Union
+\family default
+ to create a shape that covers all of the input shapes.
+\end_layout
+
+\begin_layout Standard
+In addition, every shape accepts the translation variables 
+\family typewriter
+CentreX
+\family default
+, 
+\family typewriter
+CentreY
+\family default
+, and 
+\family typewriter
+CentreZ
+\family default
+, and the Euler angles 
+\family typewriter
+alpha
+\family default
+, 
+\family typewriter
+beta
+\family default
+, and 
+\family typewriter
+gamma
+\family default
+.
+ So if we modify the Box example above to
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="simpleBox">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Box</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CentreX">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startX">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endX">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startY">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endY">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startZ">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endZ">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+then the box will actually span from 1 to 2.
+\end_layout
+
+\begin_layout Standard
+The Euler angles use the 
+\begin_inset Formula $y$
+\end_inset
+
+ convention, first rotating about the original 
+\begin_inset Formula $z$
+\end_inset
+
+ axis an angle 
+\begin_inset Formula $\gamma$
+\end_inset
+
+, then rotating around the new 
+\begin_inset Formula $y$
+\end_inset
+
+ axis an angle 
+\begin_inset Formula $\beta$
+\end_inset
+
+, and finally a rotation around the new 
+\begin_inset Formula $z$
+\end_inset
+
+ axis an angle 
+\begin_inset Formula $\alpha$
+\end_inset
+
+.
+ Specifically, these rotations are expressed through the rotation matrix
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+R=\left(\begin{array}{ccc}
+-\sin\alpha\sin\gamma+\cos\alpha\cos\beta\cos\gamma & \sin\alpha\cos\gamma+\cos\beta\sin\gamma\cos\alpha & -\cos\alpha\sin\beta\\
+-\cos\alpha\sin\gamma-\cos\beta\cos\gamma\sin\alpha & \cos\alpha\cos\gamma-\cos\beta\sin\gamma\sin\alpha & \sin\alpha\sin\beta\\
+\sin\beta\cos\alpha & \sin\beta\sin\alpha & \cos\beta\end{array}\right).\]
+
+\end_inset
+
+ So when Gale is trying to figure out whether a coordinate 
+\begin_inset Formula $(x,y,z)$
+\end_inset
+
+ is inside a shape, it creates a new coordinate
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\left(\begin{array}{c}
+x'\\
+y'\\
+z'\end{array}\right)=\left(\left(\begin{array}{c}
+x\\
+y\\
+z\end{array}\right)-\left(\begin{array}{c}
+CentreX\\
+CentreY\\
+CentreZ\end{array}\right)\right)R,\]
+
+\end_inset
+
+ which it uses in the formulas below.
+\end_layout
+
+\begin_layout Standard
+Finally, you may tell Gale to invert the shape with the 
+\family typewriter
+invert
+\family default
+ variable, making the inside the outside and vice versa.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="8" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+CentreX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+CentreY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+CentreZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+alpha
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+beta
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+gamma
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+invert
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+False
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+BelowCosinePlane 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+y<offset+delta*\cos\left(\frac{\pi period}{180}*x+phase\right)\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+offset
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+delta
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0.5
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+period
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+phase
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+See also the notes for BelowPlane.
+\end_layout
+
+\begin_layout Subsection
+BelowPlane
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+y<offset\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This shape also uses the variables 
+\begin_inset Formula $minX$
+\end_inset
+
+, 
+\begin_inset Formula $minY$
+\end_inset
+
+, 
+\begin_inset Formula $minZ$
+\end_inset
+
+, 
+\begin_inset Formula $maxX$
+\end_inset
+
+, 
+\begin_inset Formula $maxY$
+\end_inset
+
+, and 
+\begin_inset Formula $maxZ$
+\end_inset
+
+, which are only used when computing the volume of this shape.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="8" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+offset
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+minX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+minY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+minZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+maxX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+maxY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+maxZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Box
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\begin{array}{c}
+startX<x<endX\\
+startY<y<endY\\
+startZ<z<endZ\end{array}\]
+
+\end_inset
+
+Alternately, we can use widths, in which case 
+\begin_inset Formula \[
+\begin{array}{c}
+|x|<widthX/2\\
+|y|<widthY/2\\
+|z|<widthZ/2\end{array}.\]
+
+\end_inset
+
+You may mix and match these specification (e.g.
+ use start/end for 
+\begin_inset Formula $x$
+\end_inset
+
+, and width for 
+\begin_inset Formula $y$
+\end_inset
+
+).
+ If both are specified for one coordinate, Gale will use start and end.
+ 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+widthX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+widthY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+widthZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+ConvexHull
+\end_layout
+
+\begin_layout Standard
+This shape is a convenience function for creating intersections of 
+\family typewriter
+BelowPlane
+\family default
+'s.
+ The input is a list of vertices.
+ From each vertex, Gale computes a vector and plane normal to this vector.
+ The half spaces below the planes are then intersected to create a shape.
+ At present, we may only use three vertices in 2D, and four vertices in
+ 3D.
+ As an example, the shape
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="triangleShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ConvexHull</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="verticies">
+\end_layout
+
+\begin_layout LyX-Code
+    <asciidata>
+\end_layout
+
+\begin_layout LyX-Code
+      <columnDefinition name = "x" type="double"/>
+\end_layout
+
+\begin_layout LyX-Code
+      <columnDefinition name = "y" type="double"/>
+\end_layout
+
+\begin_layout LyX-Code
+                                      1.0      1.0
+\end_layout
+
+\begin_layout LyX-Code
+                                     -1.0      1.0
+\end_layout
+
+\begin_layout LyX-Code
+                                      0.0     -1.0
+\end_layout
+
+\begin_layout LyX-Code
+    </asciidata>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+creates a shape with vertices at (0,2), (4,-2), (-4,-2).
+\end_layout
+
+\begin_layout Subsubsection
+Cylinder
+\end_layout
+
+\begin_layout Standard
+This shape uses a variable 
+\begin_inset Formula $perpendicularAxis$
+\end_inset
+
+ to determine which direction is perpendicular to the axis of the cylinder.
+ This variable accepts any of (x, y, z, X, Y, Z, i, j, k, I, J, K, 0, 1,
+ 2).
+ For the case where 
+\begin_inset Formula $perpendicularAxis=z$
+\end_inset
+
+, then
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\begin{array}{c}
+radius^{2}>x^{2}+y^{2}\\
+startX<x<endX\\
+startY<y<endY\\
+startZ<z<endZ\end{array}.\]
+
+\end_inset
+
+ 
+\begin_inset Tabular
+<lyxtabular version="3" rows="8" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+radius
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+startX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+-\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+startY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+-\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+startZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+-\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+endX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+endY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+endZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+\begin_inset Formula \[
+\infty\]
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Everywhere
+\end_layout
+
+\begin_layout Standard
+This is a convenience shape simply meaning everywhere.
+\end_layout
+
+\begin_layout Subsubsection
+PolygonShape
+\end_layout
+
+\begin_layout Standard
+This is primarily a two dimensional shape.
+ The input to this shape is a list of vertices.
+ To figure out whether a point is inside the polygon, Gale adds up all of
+ the angles of the vectors going to the vertices.
+ If the point is inside the polygon, then the angles will sum to 
+\begin_inset Formula $\pm2\pi$
+\end_inset
+
+, depending on the direction we specify points.
+ If the point is outside the polygon, then the angles sum to 0.
+ A simple example is a triangle
+\end_layout
+
+\begin_layout LyX-Code
+    <struct name="triangleShape">
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="Type">PolygonShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <list name="verticies">
+\end_layout
+
+\begin_layout LyX-Code
+        <asciidata>
+\end_layout
+
+\begin_layout LyX-Code
+        <columnDefinition name = "x" type="double"/>
+\end_layout
+
+\begin_layout LyX-Code
+        <columnDefinition name = "y" type="double"/>
+\end_layout
+
+\begin_layout LyX-Code
+                                        0.0      0.0
+\end_layout
+
+\begin_layout LyX-Code
+                                        1.0      0.0
+\end_layout
+
+\begin_layout LyX-Code
+                                        1.0      1.0
+\end_layout
+
+\begin_layout LyX-Code
+        </asciidata>
+\end_layout
+
+\begin_layout LyX-Code
+      </list>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout Standard
+This creates a triangle with vertices at (0,0), (1,0), (1,1).
+\end_layout
+
+\begin_layout Standard
+We can extrude this shape into three dimensions by specifying startZ and
+ endZ.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+startZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+endZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Sphere
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+x^{2}+y^{2}+z^{2}<radius^{2}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+radius
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+0
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Superellipsoid
+\end_layout
+
+\begin_layout Standard
+In two dimensions
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\left(\frac{x}{radiusX}\right)^{2/epsilon1}+\left(\frac{y}{radiusY}\right)^{2/epsilon1}<1,\]
+
+\end_inset
+
+and in three dimensions
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\left(\left(\frac{x}{radiusX}\right)^{2/epsilon2}+\left(\frac{y}{radiusY}\right)^{2/epsilon2}\right)^{epsilon2/epsilon1}+\left(\frac{z}{radiusZ}\right)^{2/epsilon1}<1.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="center" valignment="top" leftline="true" width="0">
+<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+Defaults
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+radiusX
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+radiusY
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+radiusZ
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+epsilon1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+epsilon2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+1
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Section
 Materials
 \end_layout
@@ -3535,7 +5150,7 @@
 \family default
 .
  In many cases, this makes it simple to switch between 2D and 3D.
- When doing this, you may ignore the warning that the 
+ When doing this, we may ignore the warning that the 
 \begin_inset Formula $z$
 \end_inset
 
@@ -3552,11 +5167,11 @@
 \end_layout
 
 \begin_layout Standard
-To impose boundary conditions on the velocity, add a composite variable
+To impose boundary conditions on the velocity, we add a composite variable
  condition (CompositeVC) to the input file.
  Within that CompositeVC, add a list of conditions.
- Within each condition, you specify which boundary, which wall, and what
- the velocity's value is.
+ Within each condition, we specify which boundary and what the velocity's
+ value is.
  For example, to set the 
 \begin_inset Formula $y$
 \end_inset
@@ -3629,7 +5244,23 @@
 \end_layout
 
 \begin_layout Standard
-You can also set the velocity to a function.
+If, instead, we set 
+\family typewriter
+vy
+\family default
+ to a non-zero value, then the boundary will move as the simulation proceeds.
+ If we want the sides to remain fixed, then we probably want flux boundaries,
+ in which case we will also have to specify a few more things (see section
+ 
+\begin_inset LatexCommand \ref{sub:Flux-Boundary-Conditions}
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+We can also set the velocity to a function.
  For example, to also set the 
 \begin_inset Formula $x$
 \end_inset
@@ -3737,6 +5368,10 @@
 <param name="GaussianCenter">0.5</param>
 \end_layout
 
+\begin_layout LyX-Code
+<param name="GaussianDim">0</param>
+\end_layout
+
 \begin_layout Standard
 Note that the parameters are separated out into the variables section (see
  Section 
@@ -3745,7 +5380,7 @@
 \end_inset
 
 ).
- In general, you can use any of the Standard Condition Functions (see Section
+ In general, we can use any of the Standard Condition Functions (see Section
  
 \begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
 
@@ -3756,22 +5391,452 @@
 
 \begin_layout Subsection
 Flux Boundary Conditions
+\begin_inset LatexCommand \label{sub:Flux-Boundary-Conditions}
+
+\end_inset
+
+
 \end_layout
 
 \begin_layout Standard
-Sometimes, a velocity boundary condition varies along the boundary, 
+Sometimes, we may wish to have material flow across the boundary instead
+ of having the boundary move.
+ A simple example would be like Figure 
+\begin_inset LatexCommand \ref{fig:General-subduction-model}
+
+\end_inset
+
+, where material flows in from the left and out through the bottom.
+ There are three things that we must specify for this to work.
 \end_layout
 
+\begin_layout Enumerate
+The boundaries do not move.
+ For the slab subduction model, we need to ensure that neither the bottom
+ nor left boundaries move.
+ We do this by specifying
+\newline
+
+\family typewriter
+<param name="staticBottom">True</param>
+\newline
+<param name="staticLeft">True</param>
+\family default
+
+\newline
+in EulerDeform (see section 
+\begin_inset LatexCommand \ref{sub:EulerDeform}
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Enumerate
+Velocity conditions on the boundaries.
+ Again, for slab subduction this involves inflow conditions on the left
+ boundary and outflow conditions on bottom.
+ See Section 
+\begin_inset LatexCommand \ref{sub:Velocity-Boundary-Conditions}
+
+\end_inset
+
+ for details.
+ The other boundaries have no-slip conditions.
+\end_layout
+
+\begin_layout Enumerate
+A region where new particles are created, not split from existing particles.
+ When Gale advects material near an inflowing boundary, this leaves a vacuum.
+ Normally, Gale creates new particles by cloning nearby particles.
+ However, if the cloned particles have already undergone evolution (e.g.
+ they were strained), then the new particles would no longer be pristine.
+ To fix this, we can specify regions where particles should be created anew
+ by adding
+\newline
+
+\family typewriter
+<param name="originalParticleShape">leftBoundaryShape</param>
+\family default
+
+\newline
+to the 
+\family typewriter
+ReseedSplitting
+\family default
+ struct.
+ An example of this is in the sample input file 
+\family typewriter
+subduction.xml
+\family default
+.
+\end_layout
+
 \begin_layout Subsection
 Stress Boundary Conditions
 \end_layout
 
 \begin_layout Standard
-To use stress boundaries with Standard Condition Functions, you must list
- Standard Condition Functions before StressBC in the list of components.
+If the nature of our problem is that stresses are specified on the boundary
+ rather than velocities, we can specify those conditions using the 
+\family typewriter
+StressBC
+\family default
+ component.
+ For example, if we want to simulate an extension model that allows material
+ to well up in the middle, then we would specify a constant stress on the
+ bottom.
 \end_layout
 
+\begin_layout Standard
+StressBC is a component, so it must be inside the list of components (see
+ Section 
+\begin_inset LatexCommand \ref{sub:Components}
+
+\end_inset
+
+), not outside the list like the velocity boundary conditions.
+ For example, to specify the stress on the bottom boundary in the 
+\begin_inset Formula $y$
+\end_inset
+
+ direction as a constant, add
+\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="y_type">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="y_value">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+We can also use the Standard Condition Functions (see Section 
+\begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
+
+\end_inset
+
+), but due to technical issues, we must list Standard Condition Functions
+ before StressBC in the list of components.
+ So, for example, to add a stress condition to the left wall with a gaussian
+ shape, the complete list of components would be
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="conditionFunctions">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StgFEM_StandardConditionFunctions</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="stressBCBottom">
+\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="y_type">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="y_value">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="stressBCLeft">
+\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">left</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_value">Gaussian</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+And then in the list of variables (see Section 
+\begin_inset LatexCommand \ref{sub:Variables}
+
+\end_inset
+
+) we add the parameters for the Gaussian
+\end_layout
+
+\begin_layout LyX-Code
+<param name="GaussianHeight">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="GaussianWidth">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="GaussianCenter">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="GaussianDim">0</param>
+\end_layout
+
 \begin_layout Section
+Deformed Upper Boundary
+\end_layout
+
+\begin_layout Standard
+Normally, Gale starts the simulation in a rectangular box.
+ As the simulation proceeds, the boundaries can become distorted, in particular
+ the upper boundary.
+ However, we can also tell Gale to start with and initially deformed upper
+ boundary by adding a 
+\family typewriter
+SurfaceAdaptor
+\family default
+ component.
+ A simple example is to make the surface a sinusoid
+\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">cartesianGenerator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="surfaceType">cosine</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.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frequency">6.28318530718</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+This sets the height of the surface to
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+h=h_{0}+amplitude*\cos\left(x*frequency\right),\]
+
+\end_inset
+
+ where 
+\begin_inset Formula $h_{0}$
+\end_inset
+
+ is the original height.
+\end_layout
+
+\begin_layout Standard
+The other supported functions are 
+\family typewriter
+sine
+\family default
+ and 
+\family typewriter
+wedge
+\family default
+.
+ 
+\family typewriter
+sine
+\family default
+ takes the same arguments as the 
+\family typewriter
+cosine
+\family default
+ example above.
+ 
+\family typewriter
+wedge
+\family default
+ takes two arguments, 
+\family typewriter
+offset
+\family default
+ and 
+\family typewriter
+gradient
+\family default
+, and sets the height to
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+h=\left\{ \begin{array}{cc}
+h_{0} & x<offset\\
+h_{0}+gradient\left(x-offset\right) & x>offset\end{array}\right..\]
+
+\end_inset
+
+ If you want to implement your own surface functions, look in 
+\family typewriter
+src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
+\family default
+.
+\end_layout
+
+\begin_layout Section
+Surface Processes
+\end_layout
+
+\begin_layout Standard
+Gale has a simple facility for modifying the upper surface during the simulation.
+ The intent is to allow researchers to insert their own (complicated) surface
+ process routines.
+ To enable surface processes, we just add the component
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="SurfaceProcess">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+There is an example in 
+\family typewriter
+surface_process.xml
+\family default
+.
+ It currently implements simple diffusion.
+ To insert your own routine, see the file 
+\end_layout
+
+\begin_layout LyX-Code
+src/Gale/plugins/SurfaceProcess/SurfaceProcess.c
+\end_layout
+
+\begin_layout Standard
+In particular, replace the code bracketed by
+\end_layout
+
+\begin_layout LyX-Code
+** SURFACE PROCESS CODE GOES HERE, SHOULD MODIFY THE HEIGHTS ONLY.
+\end_layout
+
+\begin_layout LyX-Code
+...
+\end_layout
+
+\begin_layout LyX-Code
+** END SURFACE PROCESS CODE.
+\end_layout
+
+\begin_layout Standard
+with your own code.
+\end_layout
+
+\begin_layout Section
 Standard Condition Functions
 \begin_inset LatexCommand \label{sec:Standard-Condition-Functions}
 
@@ -3781,9 +5846,17 @@
 \end_layout
 
 \begin_layout Standard
-Standard Condition Functions are simply functions that you can use to specify
+Standard Condition Functions are simply functions that we can use to specify
  initial conditions and boundary conditions.
- At present, they take in a coordinate (x, y, z) and output a function f(x,y,z).
+ At present, they take in a coordinate 
+\begin_inset Formula $(x,y,z)$
+\end_inset
+
+ and output a function 
+\begin_inset Formula $f(x,y,z)$
+\end_inset
+
+.
  They are all defined in the directory 
 \family typewriter
 src/StgFEM/plugins/StandardConditionFunctions/
@@ -3801,7 +5874,8 @@
 \begin_inset Formula $L\equiv x_{max}-x_{min}$
 \end_inset
 
-, and all variables with CamelCase capitalization are from the input file.
+, and all names with CamelCase capitalization are variables from the input
+ file.
 \end_layout
 
 \begin_layout Description

Modified: long/3D/Gale/trunk/fountain.xml
===================================================================
--- long/3D/Gale/trunk/fountain.xml	2006-12-07 05:03:23 UTC (rev 5489)
+++ long/3D/Gale/trunk/fountain.xml	2006-12-07 11:48:12 UTC (rev 5490)
@@ -374,7 +374,7 @@
       <param name="wall">bottom</param>
 <!--       <param name="x_type">double</param> -->
 <!--       <param name="x_value">1.0</param> -->
-      <param name="y_type">function</param>
+      <param name="y_type">func</param>
       <param name="y_value">Gaussian</param>
     </struct>
     <struct name="background">
@@ -551,6 +551,7 @@
   <param name="GaussianHeight">1.0</param>
   <param name="GaussianWidth">0.1</param>
   <param name="GaussianCenter">0.5</param>
+  <param name="GaussianDim">0</param>
 
 <!--   <param name="journal.info">True</param> -->
 <!--   <param name="journal.debug">True</param> -->

Modified: long/3D/Gale/trunk/sinusoid.xml
===================================================================
--- long/3D/Gale/trunk/sinusoid.xml	2006-12-07 05:03:23 UTC (rev 5489)
+++ long/3D/Gale/trunk/sinusoid.xml	2006-12-07 11:48:12 UTC (rev 5490)
@@ -486,9 +486,6 @@
       </struct>
     </list>
   </struct>
-  <struct name="SurfaceProcess">
-    <param name="mesh">mesh-linear</param>
-  </struct>
   <struct name="velocityBCs">
     <param name="type">CompositeVC</param>
     <list name="vcList">



More information about the cig-commits mailing list