[cig-commits] commit: Added fixed, deformed bottom boundary cookbook

Mercurial hg at geodynamics.org
Thu Jul 15 12:08:06 PDT 2010


changeset:   295:1cd8c6798765
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Tue Jul 13 23:38:09 2010 -0700
files:       doc/gale.lyx doc/images/Paraview_deformed_bottom.png doc/images/deformed_bottom.eps doc/images/deformed_bottom.svg input/cookbook/viscous_deformed_bottom.xml
description:
Added fixed, deformed bottom boundary cookbook


diff -r c86df357143d -r 1cd8c6798765 doc/gale.lyx
--- a/doc/gale.lyx	Tue Jul 13 19:38:17 2010 -0700
+++ b/doc/gale.lyx	Tue Jul 13 23:38:09 2010 -0700
@@ -3483,7 +3483,7 @@ input/cookbook/template.xml
  There are two things in the template file, however, that might need modificatio
 n: the force of gravity, which by default is set to 1 (if you are using
  cgs, for example, the force of gravity must be changed to 980), and the
- normal velocities on all boundaries except the top, which are set to zero.
+ normal velocity on all boundaries except the top, which are set to zero.
  Beyond that, you only need to specify where to place materials.
 \end_layout
 
@@ -3961,7 +3961,7 @@ name "fig:Strain-viscous-extension"
 
 \end_inset
 
-Strain rate invariant and velocities of viscous material in extension
+Strain rate invariant and velocity of viscous material in extension
 \end_layout
 
 \end_inset
@@ -4260,7 +4260,7 @@ name "fig:Strain-complex"
 
 \end_inset
 
-Strain rate invariant and velocities with complex boundaries
+Strain rate invariant and velocity with complex boundaries
 \end_layout
 
 \end_inset
@@ -4294,8 +4294,8 @@ reference "fig:Inflow/Outflow-Boundary"
 
 .
  The current example is not intended to be geologically realistic in any
- sense, but is meant to illustrate the enormous flexibility we have in the
- development of complex boundary conditions.
+ sense, but is meant to illustrate the flexibility we have in the development
+ of complex boundary conditions.
 \end_layout
 
 \begin_layout Standard
@@ -4380,7 +4380,7 @@ wrapTop
 
 \end_deeper
 \begin_layout Enumerate
-Now specify the velocities on the boundaries using the 
+Now specify the velocity on the boundaries using the 
 \family typewriter
 StepFunctionProduct
 \family default
@@ -4663,7 +4663,7 @@ name "fig:Strain-inflow"
 
 \end_inset
 
-Strain rate invariant and velocities with inflow/outflow boundaries
+Strain rate invariant and velocity with inflow/outflow boundaries
 \end_layout
 
 \end_inset
@@ -5068,7 +5068,7 @@ name "fig:Strain-viscous-normal-stress"
 
 \end_inset
 
-Strain rate invariant and velocities of viscous material in extension with
+Strain rate invariant and velocity of viscous material in extension with
  a normal stress boundary
 \end_layout
 
@@ -5149,7 +5149,7 @@ name "fig:Strain-deformable-bottom"
 
 \end_inset
 
-Strain rate invariant and velocities of viscous material with a deformable
+Strain rate invariant and velocity of viscous material with a deformable
  bottom boundary
 \end_layout
 
@@ -5271,11 +5271,11 @@ SurfaceAdaptor
 \end_layout
 
 \begin_layout LyX-Code
-  <param name="surfaceType">sine</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="origin">
+  <param name="topSurfaceType">sine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="topOrigin">
 \end_layout
 
 \begin_layout LyX-Code
@@ -5287,11 +5287,11 @@ SurfaceAdaptor
 \end_layout
 
 \begin_layout LyX-Code
-  <param name="amplitude">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="frequency">6.28318530718</param>
+  <param name="topAmplitude">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="topFrequency">6.28318530718</param>
 \end_layout
 
 \begin_layout LyX-Code
@@ -5354,11 +5354,519 @@ name "fig:Strain-initial-deformed"
 
 \end_inset
 
-Strain rate invariant and velocities with initially deformed upper boundary
-\end_layout
-
-\end_inset
-
+Strain rate invariant and velocity with initially deformed upper boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Viscous Material with Fixed, Deformed Bottom Boundary
+\end_layout
+
+\begin_layout Standard
+This example deforms the bottom boundary and keeps it fixed.
+ We will set the left half of the boundary to follow a circle, while the
+ right half will still be flat.
+ Then, the boundary condition for the velocity is set to move the material
+ in from the left and out through the bottom as in Figure .
+ This is meant to approximate one slab subducting under another.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename images/deformed_bottom.eps
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:Geometry-deformed-bottom"
+
+\end_inset
+
+Geometry and boundary conditions for the fixed, deformed bottom boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+myviscous_inflow.xml
+\family default
+ to 
+\family typewriter
+myviscous_deformed_bottom.xml
+\end_layout
+
+\begin_layout Enumerate
+Add a 
+\family typewriter
+SurfaceAdaptor
+\family default
+ component for the bottom boundary:
+\end_layout
+
+\begin_deeper
+\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="bottomSurfaceType">cylinder</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="bottomX0">SolidBodyRotationCentreX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="bottomY0">SolidBodyRotationCentreY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="bottomRadius">InnerRadiusCylinder</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="bottomMinX">CylinderMinX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="bottomMaxX">CylinderMaxX</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Replace the left boundary condition for the velocity
+\end_layout
+
+\begin_deeper
+\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">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 LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+with
+\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">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">Velocity_PartialRotationX</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\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">Velocity_PartialRotationY</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Replace the bottom boundary condition
+\end_layout
+
+\begin_deeper
+\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">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 LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+with
+\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">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="value">Velocity_PartialRotationX</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\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">Velocity_PartialRotationY</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Finally, replace the 
+\family typewriter
+StepFunction
+\family default
+ variables
+\end_layout
+
+\begin_deeper
+\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 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 Standard
+with rotation variables
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="SolidBodyRotationOmega">-1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="SolidBodyRotationCentreX">0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="SolidBodyRotationCentreY">-3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="InnerRadiusCylinder">3.15</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CylinderMinX">0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CylinderMaxX">0.960468635615</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RadiusCylinder">3.35</param>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in input/cookbook/viscous_deformed_bottom.xml.
+ Figure shows the strain rate invariant and velocity.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename images/Paraview_deformed_bottom.png
+	lyxscale 75
+	width 100col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:Strain-deformed-bottom"
+
+\end_inset
+
+Strain rate invariant and velocity for a deformed bottom boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
 
 \end_layout
 
@@ -5892,7 +6400,7 @@ name "fig:Strain-multiple"
 
 \end_inset
 
-Strain rate invariant and velocities with multiple viscous materials
+Strain rate invariant and velocity with multiple viscous materials
 \end_layout
 
 \end_inset
@@ -6227,7 +6735,7 @@ name "fig:strain-yield"
 
 \end_inset
 
-Strain rate invariant and velocities of yielding material in extension
+Strain rate invariant and velocity of yielding material in extension
 \end_layout
 
 \end_inset
@@ -6993,7 +7501,7 @@ name "fig:Temperature-and-velocity"
 
 \end_inset
 
-Temperature and velocities for the thermal convection example
+Temperature and velocity for the thermal convection example
 \end_layout
 
 \end_inset
@@ -8535,16 +9043,6 @@ Note the critical line
 
 \begin_layout Standard
 that makes the top surface conform to the simulation.
- Other options (
-\family typewriter
-wrapBottom
-\family default
-, 
-\family typewriter
-wrapLeft
-\family default
-) are available, but untested.
- 
 \end_layout
 
 \begin_layout Standard
diff -r c86df357143d -r 1cd8c6798765 doc/images/Paraview_deformed_bottom.png
Binary file doc/images/Paraview_deformed_bottom.png has changed
diff -r c86df357143d -r 1cd8c6798765 doc/images/deformed_bottom.eps
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/images/deformed_bottom.eps	Tue Jul 13 23:38:09 2010 -0700
@@ -0,0 +1,355 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: cairo 1.8.10 (http://cairographics.org)
+%%CreationDate: Tue Jul 13 23:32:12 2010
+%%Pages: 1
+%%BoundingBox: 0 0 216 287
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+/cairo_eps_state save def
+/dict_count countdictstack def
+/op_count count 1 sub def
+userdict begin
+/q { gsave } bind def
+/Q { grestore } bind def
+/cm { 6 array astore concat } bind def
+/w { setlinewidth } bind def
+/J { setlinecap } bind def
+/j { setlinejoin } bind def
+/M { setmiterlimit } bind def
+/d { setdash } bind def
+/m { moveto } bind def
+/l { lineto } bind def
+/c { curveto } bind def
+/h { closepath } bind def
+/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
+      0 exch rlineto 0 rlineto closepath } bind def
+/S { stroke } bind def
+/f { fill } bind def
+/f* { eofill } bind def
+/B { fill stroke } bind def
+/B* { eofill stroke } bind def
+/n { newpath } bind def
+/W { clip } bind def
+/W* { eoclip } bind def
+/BT { } bind def
+/ET { } bind def
+/pdfmark where { pop globaldict /?pdfmark /exec load put }
+    { globaldict begin /?pdfmark /pop load def /pdfmark
+    /cleartomark load def end } ifelse
+/BDC { mark 3 1 roll /BDC pdfmark } bind def
+/EMC { mark /EMC pdfmark } bind def
+/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
+/Tj { show currentpoint cairo_store_point } bind def
+/TJ {
+  {
+    dup
+    type /stringtype eq
+    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
+  } forall
+  currentpoint cairo_store_point
+} bind def
+/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
+    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
+/Tf { pop /cairo_font exch def /cairo_font_matrix where
+      { pop cairo_selectfont } if } bind def
+/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
+      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
+      /cairo_font where { pop cairo_selectfont } if } bind def
+/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
+      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
+/g { setgray } bind def
+/rg { setrgbcolor } bind def
+/d1 { setcachedevice } bind def
+%%EndProlog
+11 dict begin
+/FontType 42 def
+/FontName /f-0-0 def
+/PaintType 0 def
+/FontMatrix [ 1 0 0 1 0 0 ] def
+/FontBBox [ 0 0 0 0 ] def
+/Encoding 256 array def
+0 1 255 { Encoding exch /.notdef put } for
+Encoding 1 /uni0072 put
+Encoding 2 /uni005F put
+Encoding 3 /uni0069 put
+Encoding 4 /uni006E put
+Encoding 5 /uni0065 put
+Encoding 6 /uni003D put
+Encoding 7 /uni0033 put
+Encoding 8 /uni002E put
+Encoding 9 /uni0031 put
+Encoding 10 /uni0035 put
+Encoding 11 /uni006F put
+Encoding 12 /uni0075 put
+Encoding 13 /uni0074 put
+Encoding 14 /uni0077 put
+Encoding 15 /uni0064 put
+Encoding 16 /uni0068 put
+Encoding 17 /uni0032 put
+Encoding 18 /uni0067 put
+/CharStrings 19 dict dup begin
+/.notdef 0 def
+/uni0072 1 def
+/uni005F 2 def
+/uni0069 3 def
+/uni006E 4 def
+/uni0065 5 def
+/uni003D 6 def
+/uni0033 7 def
+/uni002E 8 def
+/uni0031 9 def
+/uni0035 10 def
+/uni006F 11 def
+/uni0075 12 def
+/uni0074 13 def
+/uni0077 14 def
+/uni0064 15 def
+/uni0068 16 def
+/uni0032 17 def
+/uni0067 18 def
+end readonly def
+/sfnts [
+<00010000000a008000030020636d61700076f10b00000c900000006463767420ffd31d390000
+0cf4000001fc6670676de7b4f1c400000ef00000008b676c79661f6653fd000000ac00000be4
+68656164dd84a2d000000f7c00000036686865611045077600000fb400000024686d747858c9
+0aa500000fd80000004c6c6f636116e019f000001024000000286d617870044e063a0000104c
+00000020707265703b07f1000000106c0000056800020066fe96046605a400030007001a400c
+04fb0006fb0108057f0204002fc4d4ec310010d4ecd4ec301311211125211121660400fc7303
+1bfce5fe96070ef8f2720629000100ba0000034a047b001100304014060b0700110b03870eb8
+09bc070a06080008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d012e
+012322061511231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cbbefd
+b20460ae6663050500000001ffecfe1d0414feac0003000fb500a90100020410c4c43100d4ec
+30011521350414fbd8feac8f8f000000000200c100000179061400030007002b400e06be04b1
+00bc020501080400460810fc3cec3231002fe4fcec30400b1009400950096009700905015d13
+33112311331523c1b8b8b8b80460fba00614e900000100ba00000464047b0013003640190309
+00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11
+12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95
+acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00020071ffe3047f047b0014
+001b00704024001501098608880515a90105b90c01bb18b912b80c8c1c1b1502081508004b02
+120f451c10fcecf4ecc4111239310010e4f4ece410ee10ee10f4ee1112393040293f1d701da0
+1dd01df01d053f003f013f023f153f1b052c072f082f092c0a6f006f016f026f156f1b095d71
+015d0115211e0133323637150e01232000111000333200072e0123220607047ffcb20ccdb76a
+c76263d06bfef4fec70129fce20107b802a5889ab90e025e5abec73434ae2a2c0138010a0113
+0143feddc497b4ae9e00000200d9016005db03a200030007001c400d009c02069c0408050104
+00230810fc3cc432310010d4ecd4ec301321152115211521d90502fafe0502fafe03a2a8f0aa
+00000001009cffe3047305f00028007b402e0015130a86091f862013a0150da00993061ca020
+932391068c15a329161c13000314191c2620101c03141f09062910fcc4c4d4ecf4ec11173939
+310010ece4f4e4ec10e6ee10ee10ee10ee11123930014bb016544bb014545b58bd0029004000
+0100290029ffc038113738594009641e611f6120642104005d011e0115140421222627351e01
+3332363534262b013533323635342623220607353e01333204151406033f91a3fed0fee85ec7
+6a54c86dbec7b9a5aeb6959ea39853be7273c959e6010c8e03251fc490ddf22525c33132968f
+8495a67770737b2426b42020d1b27cab0000000100db000001ae00fe00030011b70083020119
+00180410fcec31002fec3037331523dbd3d3fefe000100e10000045a05d5000a004b40154203
+a00402a005810700a009081f061c03001f010b10d4ecc4fcec31002fec32f4ecd4ec304b5358
+5922014bb00f5458bd000bffc00001000b000b00403811373859b40f030f04025d3721110535
+253311211521fe014afe990165ca014afca4aa047348b848fad5aa0000000001009effe30464
+05d5001d00754023041a071186101d1aa00714a010890d02a000810d8c07a41e171c010a031c
+000a10061e10fcc4d4ec10c4ee310010e4e4f4ec10e6ee10fec410ee11123930014bb016544b
+b014545b58bd001e00400001001e001effc03811373859014bb00f5458bd001effc00001001e
+001e0040381137385913211521113e0133320015140021222627351e01333236353426232206
+07dd0319fda02c582cfa0124fed4feef5ec3685ac06badcacaad51a15405d5aafe920f0ffeee
+eaf1fef52020cb3130b69c9cb6242600000000020071ffe30475047b000b0017004a401306b9
+1200b90cb8128c1809120f51031215451810fcecf4ec310010e4f4ec10ee3040233f197b007b
+067f077f087f097f0a7f0b7b0c7f0d7f0e7f0f7f107f117b12a019f01911015d012206151416
+333236353426273200111000232200111000027394acab9593acac93f00112feeef0f1feef01
+1103dfe7c9c9e7e8c8c7e99cfec8feecfeedfec701390113011401380000000100aeffe30458
+0460001300364019030900030e0106870e118c0a01bc0c0d09080b4e020800461410fcecf4ec
+3231002fe432f4c4ec1112173930b46015cf1502015d1311331114163332363511331123350e
+01232226aeb87c7c95adb8b843b175c1c801ba02a6fd619f9fbea4027bfba0ac6663f0000001
+0037000002f2059e0013003840190e05080f03a9001101bc08870a0b08090204000810120e46
+1410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d0111211521111416
+3b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a9fd2
+02608f013e00000000010056000006350460000c0201404905550605090a0904550a0903550a
+0b0a025501020b0b0a061107080705110405080807021103020c000c011100000c420a050203
+060300bf0b080c0b0a09080605040302010b07000d10d4cc173931002f3cec32321739304b53
+58071005ed071008ed071008ed071005ed071008ed071005ed0705ed071008ed5922014bb00a
+544bb011545b4bb012545b4bb013545b4bb00b545b58bd000dffc00001000d000d0040381137
+3859014bb00c544bb00d545b4bb010545b58bd000d00400001000d000dffc0381137385940ff
+050216021605220a350a49024905460a400a5b025b05550a500a6e026e05660a79027f027905
+7f05870299029805940abc02bc05ce02c703cf051d0502090306040b050a080b09040b050c15
+02190316041a051b081b09140b150c2500250123022703210425052206220725082709240a21
+0b230c390336043608390c300e460248034604400442054006400740084409440a440b400e40
+0e560056015602500451055206520750085309540a550b6300640165026a0365046a056a066a
+076e09610b670c6f0e7500750179027d0378047d057a067f067a077f07780879097f097b0a76
+0b7d0c870288058f0e97009701940293039c049b05980698079908402f960c9f0ea600a601a4
+02a403ab04ab05a906a907ab08a40caf0eb502b103bd04bb05b809bf0ec402c303cc04ca0579
+5d005d13331b01331b013301230b012356b8e6e5d9e6e5b8fedbd9f1f2d90460fc96036afc96
+036afba00396fc6a000000020071ffe3045a06140010001c003840191ab9000e14b905088c0e
+b801970317040008024711120b451d10fcecf4ec323231002fece4f4c4ec10c4ee30b6601e80
+1ea01e03015d0111331123350e0123220211101233321601141633323635342623220603a2b8
+b83ab17ccbffffcb7cb1fdc7a79292a8a89292a703b6025ef9eca86461014401080108014461
+fe15cbe7e7cbcbe7e700000100ba000004640614001300344019030900030e0106870e11b80c
+970a010208004e0d09080b461410fcec32f4ec31002f3cecf4c4ec1112173930b2601501015d
+0111231134262322061511231133113e013332160464b87c7c95acb9b942b375c1c602a4fd5c
+029e9f9ebea4fd870614fd9e6564ef00000100960000044a05f0001c00a54027191a1b03181c
+11050400110505044210a111940da014910400a00200100a02010a1c171003061d10fcc4d4ec
+c0c011123931002fec32f4ecf4ec304b5358071005ed0705ed1117395922014bb015544bb016
+545b4bb014545b58bd001d00400001001d001dffc0381137385940325504560556077a047a05
+761b87190704000419041a041b051c74007606751a731b741c82008619821a821b821ca800a8
+1b115d005d25211521353600373e0135342623220607353e01333204151406070600018902c1
+fc4c73018d33614da7865fd3787ad458e80114455b19fef4aaaaaa7701913a6d974977964243
+cc3132e8c25ca5701dfeeb00000000020071fe56045a047b000b0028004a4023190c1d091286
+1316b90f03b92623b827bc09b90fbd1a1d261900080c4706121220452910fcc4ecf4ec323231
+002fc4e4ece4f4c4ec10fed5ee1112393930b6602a802aa02a03015d01342623220615141633
+323617100221222627351e013332363d010e0123220211101233321617353303a2a59594a5a5
+9495a5b8fefefa61ac51519e52b5b439b27ccefcfcce7cb239b8023dc8dcdcc8c7dcdcebfee2
+fee91d1eb32c2abdbf5b6362013a01030104013a6263aa000000000200030000000000140001
+0000000000340004002000000004000400010000f012ffff0000f000ffff1000000100000000
+000600300000000000130000000100020003000400050006000700080009000a000b000c000d
+000e000f001000110012013500b800cb00cb00c100aa009c01a600b800660000007100cb00a0
+02b20085007500b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a0033
+00cb000000d9050200f4015400b4009c01390114013907060400044e04b4045204b804e704cd
+0037047304cd04600473013303a2055605a60556053903c5021200c9001f00b801df007300ba
+03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f
+007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d500980304
+0248009e01d500c100cb00f600830354027f00000333026600d300c700a400cd008f009a0073
+040005d5010a00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0007f
+007b005400a406b80614072301d300b800cb00a601c301ec069300a000d3035c037103db0185
+042304a80448008f0139011401390360008f05d5019a0614072306660179046004600460047b
+009c00000277046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc0066
+0077061000cd013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f0000
+006f0335006a006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c04e1
+0266008f018d02f600cd03440029006604ee007300001400b6060504030201002c2010b00225
+4964b040515820c859212d2cb002254964b040515820c859212d2c20100720b00050b00d7920
+b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff5058041b0559
+b0051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b00225b002
+2545445921212d2c45442d0000010000000200005106a9dc5f0f3cf5001f080000000000bab9
+f0b800000000bac26791fe89fe1d0a4c076d00000008000100000000000000010000076dfe1d
+00000abcfe89fe890a4c00010000000000000000000000000000001304cd0066034a00ba0400
+ffec023900c1051200ba04ec007106b400d90517009c028b00db051700e10517009e04e50071
+051200ae03230037068b005605140071051200ba051700960514007100000022005a00700098
+00d4013e016001da01ee022c029802ea03260364048204ce050a058e05f2000100000013004d
+000700420004000200100040000700000415056800030001b8028040fffbfe03fa1403f92503
+f83203f79603f60e03f5fe03f4fe03f32503f20e03f19603f02503ef8a4105effe03ee9603ed
+9603ecfa03ebfa03eafe03e93a03e84203e7fe03e63203e5e45305e59603e48a4105e45303e3
+e22f05e3fa03e22f03e1fe03e0fe03df3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe
+03d68a4105d67d03d5d44705d57d03d44703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03ce
+fe03cd9603cccb1e05ccfe03cb1e03ca3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2
+fe03c1fe03c0fe03bffe03befe03bdfe03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8
+fe03b7b65d05b7bb03b78004b6b52505b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe
+03b0fe03affe03ae6403ad0e03acab2505ac6403abaa1205ab2503aa1203a98a4105a9fa03a8
+fe03a7fe03a6fe03a51203a4fe03a3a20e05a33203a20e03a16403a08a4105a096039ffe039e
+9d0c059efe039d0c039c9b19059c64039b9a10059b19039a1003990a0398fe0397960d0597fe
+03960d03958a410595960394930e05942803930e0392fa039190bb0591fe03908f5d0590bb03
+9080048f8e25058f5d038f40048e25038dfe038c8b2e058cfe038b2e038a8625058a41038988
+0b05891403880b03878625058764038685110586250385110384fe038382110583fe03821103
+81fe0380fe037ffe0340ff7e7d7d057efe037d7d037c64037b5415057b25037afe0379fe0378
+0e03770c03760a0375fe0374fa0373fa0372fa0371fa0370fe036ffe036efe036c21036bfe03
+6a1142056a530369fe03687d036711420566fe0365fe0364fe0363fe0362fe03613a0360fa03
+5e0c035dfe035bfe035afe0359580a0559fa03580a035716190557320356fe03555415055542
+0354150353011005531803521403514a130551fe03500b034ffe034e4d10054efe034d10034c
+fe034b4a13054bfe034a4910054a1303491d0d05491003480d0347fe0346960345960344fe03
+43022d0543fa0342bb03414b0340fe033ffe033e3d12053e14033d3c0f053d12033c3b0d053c
+40ff0f033b0d033afe0339fe033837140538fa033736100537140336350b05361003350b0334
+1e03330d0332310b0532fe03310b03302f0b05300d032f0b032e2d09052e10032d09032c3203
+2b2a25052b64032a2912052a25032912032827250528410327250326250b05260f03250b0324
+fe0323fe03220f03210110052112032064031ffa031e1d0d051e64031d0d031c1142051cfe03
+1bfa031a42031911420519fe031864031716190517fe031601100516190315fe0314fe0313fe
+031211420512fe0311022d05114203107d030f64030efe030d0c16050dfe030c0110050c1603
+0bfe030a100309fe0308022d0508fe030714030664030401100504fe03401503022d0503fe03
+02011005022d0301100300fe0301b80164858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
+2b1d00>
+] def
+FontName currentdict end definefont pop
+%%Page: 1 1
+%%BeginPageSetup
+%%PageBoundingBox: 0 0 216 287
+%%EndPageSetup
+q
+1 g
+4.23 268.4 m 45.707 268.385 86.613 258.74 123.73 240.229 c 4.121 0.4 l 
+h
+4.23 268.4 m f
+0 g
+0.8 w
+0 J
+0 j
+[] 0.0 d
+4 M q 1 0 0 -1 0 286.896484 cm
+4.23 18.496 m 45.707 18.512 86.613 28.156 123.73 46.668 c 4.121 286.496 
+l h
+4.23 18.496 m S Q
+q 1 0 0 -1 0 286.896484 cm
+4.121 18.496 m 164.121 18.496 l 164.121 46.496 l 4.121 46.496 l 4.121 
+18.496 l h
+4.121 18.496 m S Q
+1 g
+4.391 252.4 m 30.961 252.373 57.359 248.143 82.609 239.865 c 4.121 0.4 
+l h
+4.391 252.4 m f
+0 g
+q 1 0 0 -1 0 286.896484 cm
+4.391 34.496 m 30.961 34.523 57.359 38.754 82.609 47.031 c 4.121 
+286.496 l h
+4.391 34.496 m S Q
+BT
+8 0 0 8 16.12 204.4 Tm
+/f-0-0 1 Tf
+[<01>-1<0203>1<04>-1<04>-1<0501>-1<0607>-1<0809>-1<0a>]TJ
+10.5 -3 Td
+[<01>-1<020b>1<0c>-1<0d>-1<0501>-1<060708>-1<070a>]TJ
+-5.939085 12.552295 Td
+[<0e030f0d10>-1<0611>]TJ
+14.939085 -3.552295 Td
+[<10>-1<0503>1<1210>-1<0d>-1<060807>-1<0a>]TJ
+ET
+0 1 0 rg
+0.24 w
+q 1 0 0 -1 0 286.896484 cm
+0.121 22.496 m 12.121 22.496 l S Q
+0 g
+9.555 265.467 m 12.438 264.404 l 9.555 263.342 l 10.016 263.971 10.012 
+264.826 9.555 265.467 c h
+9.555 265.467 m f*
+0 1 0 rg
+q 1 0 0 -1 0 286.896484 cm
+0.121 30.496 m 12.121 30.496 l S Q
+0 g
+9.555 257.467 m 12.438 256.404 l 9.555 255.342 l 10.016 255.971 10.012 
+256.826 9.555 257.467 c h
+9.555 257.467 m f*
+0 1 0 rg
+q 1 0 0 -1 0 286.896484 cm
+84.121 42.496 m 96.121 50.496 l S Q
+0 g
+94.574 238.709 m 96.387 236.229 l 93.398 236.943 l 94.129 237.209 
+94.602 237.924 94.574 238.709 c h
+94.574 238.709 m f*
+0 1 0 rg
+q 1 0 0 -1 0 286.896484 cm
+104.121 42.496 m 115.547 50.066 l S Q
+0 g
+113.996 239.135 m 115.816 236.654 l 112.828 237.365 l 113.555 237.631 
+114.027 238.35 113.996 239.135 c h
+113.996 239.135 m f*
+0 1 0 rg
+q 1 0 0 -1 0 286.896484 cm
+16.121 34.496 m 28.121 34.496 l S Q
+0 g
+25.555 253.467 m 28.438 252.404 l 25.555 251.342 l 26.016 251.971 
+26.012 252.826 25.555 253.467 c h
+25.555 253.467 m f*
+0 1 0 rg
+q 1 0 0 -1 0 286.896484 cm
+52.121 38.496 m 63.836 41.496 l S Q
+0 g
+61.613 247.068 m 64.145 245.326 l 61.086 245.014 l 61.688 245.506 
+61.898 246.338 61.613 247.068 c h
+61.613 247.068 m f*
+Q
+showpage
+%%Trailer
+count op_count sub {pop} repeat
+countdictstack dict_count sub {end} repeat
+cairo_eps_state restore
+%%EOF
diff -r c86df357143d -r 1cd8c6798765 doc/images/deformed_bottom.svg
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/images/deformed_bottom.svg	Tue Jul 13 23:38:09 2010 -0700
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="270.46249"
+   height="358.62061"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="New document 1">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path5402"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+    <inkscape:perspective
+       id="perspective4492"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective4514"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5320"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective5342"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective6020"
+       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+       inkscape:vp_z="1 : 0.5 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 0.5 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend-2"
+       style="overflow:visible">
+      <path
+         id="path5402-7"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.979899"
+     inkscape:cx="78.980202"
+     inkscape:cy="183.5651"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     objecttolerance="20"
+     inkscape:showpageshadow="false"
+     showborder="false"
+     inkscape:window-width="1853"
+     inkscape:window-height="1168"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2816"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="5px"
+       spacingy="5px" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(5.15,-694.24158)">
+    <path
+       d="M 0.13591607,717.36221 C 51.98327,717.38325 103.11813,729.43835 149.51511,752.57854 L 0,1052.3622 z"
+       sodipodi:ry="335"
+       sodipodi:rx="335"
+       sodipodi:cy="1052.3622"
+       sodipodi:cx="0"
+       id="path5302-4"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       sodipodi:type="arc"
+       sodipodi:start="4.7127947"
+       sodipodi:end="5.1750308" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect5304-5"
+       width="200"
+       height="35"
+       x="0"
+       y="717.36218" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+       id="path4482"
+       sodipodi:cx="0"
+       sodipodi:cy="1052.3622"
+       sodipodi:rx="315"
+       sodipodi:ry="315"
+       d="M 0.33677261,737.36236 C 33.550705,737.39787 66.550033,742.68613 98.111831,753.03115 L 0,1052.3622 z"
+       sodipodi:start="4.7134581"
+       sodipodi:end="5.0291245" />
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="34.345188"
+       y="769.0144"
+       id="text5356"><tspan
+         sodipodi:role="line"
+         id="tspan5358"
+         x="34.345188"
+         y="769.0144" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="15"
+       y="797.36218"
+       id="text5360"><tspan
+         sodipodi:role="line"
+         id="tspan5362"
+         x="15"
+         y="797.36218">r_inner=3.15</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="120"
+       y="827.36218"
+       id="text5364"><tspan
+         sodipodi:role="line"
+         id="tspan5366"
+         x="120"
+         y="827.36218">r_outer=3.35</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="60.609154"
+       y="701.83923"
+       id="text5368"><tspan
+         sodipodi:role="line"
+         id="tspan5370"
+         x="60.609154"
+         y="701.83923">width=2</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+       x="210"
+       y="737.36218"
+       id="text5372"><tspan
+         sodipodi:role="line"
+         id="tspan5374"
+         x="210"
+         y="737.36218">height=.35</tspan></text>
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="m -5,722.36218 15,0"
+       id="path5376" />
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend)"
+       d="m -5,732.36218 15,0"
+       id="path5376-6" />
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend-2)"
+       d="m 100,747.36218 15,10"
+       id="path6040" />
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend-2)"
+       d="m 125,747.36218 14.28571,9.46429"
+       id="path6228" />
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend-2)"
+       d="m 15,737.36218 15,0"
+       id="path6418" />
+    <path
+       style="fill:none;stroke:#00ff00;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Lend-2)"
+       d="m 60,742.36218 14.642857,3.75"
+       id="path6610" />
+  </g>
+</svg>
diff -r c86df357143d -r 1cd8c6798765 input/cookbook/viscous_deformed_bottom.xml
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/input/cookbook/viscous_deformed_bottom.xml	Tue Jul 13 23:38:09 2010 -0700
@@ -0,0 +1,544 @@
+<?xml version="1.0"?>
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+  <import>
+    <toolbox>Underworld</toolbox>
+  </import>
+  <plugins>
+    <struct>
+      <param name="Type">Underworld_EulerDeform</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct>
+      <param name="Type">Underworld_VTKOutput</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct>
+      <param name="Type">StgFEM_StandardConditionFunctions</param>
+      <param name="Context">context</param>
+    </struct>
+  </plugins>
+  <struct name="components">
+    <struct name="context">
+      <param name="Type">UnderworldContext</param>
+    </struct>
+    <struct name="mesh-linear">
+      <param name="Type">FeMesh</param>
+      <param name="elementType">linear</param>
+    </struct>
+    <struct name="linearMesh-generator">
+      <param name="Type">CartesianGenerator</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="dim">dim</param>
+      <param name="shadowDepth">shadowDepth</param>
+      <param name="regular">False</param>
+      <list name="size">
+        <param>elementResI</param>
+        <param>elementResJ</param>
+        <param>elementResK</param>
+      </list>
+      <list name="minCoord">
+        <param>minX</param>
+        <param>minY</param>
+        <param>minZ</param>
+      </list>
+      <list name="maxCoord">
+        <param>maxX</param>
+        <param>maxY</param>
+        <param>maxZ</param>
+      </list>
+    </struct>
+    <struct name="velocity">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Vector</param>
+      <param name="DataType">Double</param>
+      <param name="VectorComponentCount">dim</param>
+      <list name="names">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="velocityBCs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityICs">
+      <param name="Type">CompositeVC</param>
+      <param name="Data">mesh-linear</param>
+    </struct>
+    <struct name="velocityDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="BaseVariableCount">dim</param>
+      <list name="BaseVariables">
+        <param>vx</param>
+        <param>vy</param>
+        <param>vz</param>
+      </list>
+    </struct>
+    <struct name="VelocityField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">velocityDofLayout</param>
+      <param name="BC">velocityBCs</param>
+      <param name="IC">velocityICs</param>
+      <param name="LinkedDofInfo">velocityLinkedDofs</param>
+    </struct>
+    <struct name="VelocityMagnitudeField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Magnitude</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">Gradient</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="VelocityGradientsInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorInvariant</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorSymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="VorticityField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">TensorAntisymmetricPart</param>
+      <param name="FeVariable">VelocityGradientsField</param>
+    </struct>
+    <struct name="StrainRateInvariantField">
+      <param name="Type">OperatorFeVariable</param>
+      <param name="Operator">SymmetricTensor_Invariant</param>
+      <param name="FeVariable">StrainRateField</param>
+    </struct>
+    <struct name="pressure">
+      <param name="Type">MeshVariable</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="Rank">Scalar</param>
+      <param name="DataType">Double</param>
+    </struct>
+    <struct name="pressureDofLayout">
+      <param name="Type">DofLayout</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="BaseVariables">
+        <param>pressure</param>
+      </list>
+    </struct>
+    <struct name="PressureField">
+      <param name="Type">FeVariable</param>
+      <param name="FEMesh">mesh-linear</param>
+      <param name="DofLayout">pressureDofLayout</param>
+      <param name="LinkedDofInfo">pressureLinkedDofs</param>
+    </struct>
+    <struct name="StressField">
+      <param name="Type">StressField</param>
+      <param name="StrainRateField">StrainRateField</param>
+      <param name="Context">context</param>
+      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="Mesh">mesh-linear</param>
+      <param name="IC">stressICs</param>
+    </struct> 
+    <struct name="ViscosityField">
+      <param name="Type">ViscosityField</param>
+      <param name="Context">context</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="Mesh">mesh-linear</param>
+      <param name="ConstitutiveMatrix">constitutiveMatrix</param>
+    </struct>
+    <struct name="cellLayout">
+      <param name="Type">SingleCellLayout</param>
+    </struct>
+    <struct name="particleLayout">
+      <param name="Type">GaussParticleLayout</param>
+    </struct>
+    <struct name="gaussSwarm">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">particleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">gaussMapper</param>
+    </struct>
+    <struct name="gaussMapper">
+      <param name="Type">GaussMapper</param>
+      <param name="IntegrationPointsSwarm">gaussSwarm</param>
+      <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+    </struct>
+    <struct name="backgroundLayout">
+      <param name="Type">BackgroundParticleLayout</param>
+    </struct>
+    <struct name="gaussMSwarmMovementHandler">
+      <param name="Type">ParticleMovementHandler</param>
+    </struct>
+    <struct name="gaussMaterialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">cellLayout</param>
+      <param name="ParticleLayout">backgroundLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <list name="ParticleCommHandlers">
+        <param>gaussMSwarmMovementHandler</param>
+      </list>
+    </struct>
+    <struct name="timeIntegrator">
+      <param name="Type">TimeIntegrator</param>
+      <param name="order">timeIntegratorOrder</param>
+      <param name="simultaneous">f</param>
+      <param name="Context">context</param>
+    </struct>
+    <struct name="elementCellLayout">
+      <param name="Type">ElementCellLayout</param>
+      <param name="Mesh">mesh-linear</param>
+    </struct>
+    <struct name="weights">
+      <param name="Type">PCDVC</param>
+      <param name="resolutionX">10</param>
+      <param name="resolutionY">10</param>
+      <param name="resolutionZ">10</param>
+      <param name="lowerT">0.6</param>
+      <param name="upperT">25</param>
+      <param name="maxDeletions">3</param>
+      <param name="maxSplits">3</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+      <param name="Inflow">True</param>
+      <param name="Threshold">0.8</param>
+      <param name="CentPosRatio">0.01</param>
+    </struct>
+    <struct name="localLayout">
+      <param name="Type">MappedParticleLayout</param>
+    </struct>
+    <struct name="picIntegrationPoints">
+      <param name="Type">IntegrationPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">localLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <param name="WeightsCalculator">weights</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="IntegrationPointMapper">mapper</param>
+    </struct>
+    <struct name="mapper">
+      <param name="Type">CoincidentMapper</param>
+      <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="materialSwarmParticleLayout">
+      <param name="Type">MeshParticleLayout</param>
+      <param name="cellParticleCount">particlesPerCell</param>
+      <param name="mesh">mesh-linear</param>
+    </struct>
+    <struct name="pMovementHandler">
+      <param name="Type">ParticleMovementHandler</param>
+    </struct>
+    <struct name="pShadowSync">
+      <param name="Type">ParticleShadowSync</param>
+    </struct>
+    <struct name="materialSwarm">
+      <param name="Type">MaterialPointsSwarm</param>
+      <param name="CellLayout">elementCellLayout</param>
+      <param name="ParticleLayout">materialSwarmParticleLayout</param>
+      <param name="FeMesh">mesh-linear</param>
+      <list name="ParticleCommHandlers">
+        <param>pMovementHandler</param>
+        <param>pShadowSync</param>
+      </list>
+      <param name="SplittingRoutine">splittingRoutine</param>
+      <param name="RemovalRoutine">removalRoutine</param>
+      <param name="EscapedRoutine">escapedRoutine</param>
+    </struct>
+    <struct name="materialSwarmAdvector">
+      <param name="Type">SwarmAdvector</param>
+      <param name="Swarm">materialSwarm</param>
+      <param name="TimeIntegrator">timeIntegrator</param>
+      <param name="VelocityField">VelocityField</param>
+      <param name="PeriodicBCsManager">periodicBCsManager</param>
+      <param name="allowFallbackToFirstOrder">True</param>
+    </struct>
+    <struct name="solutionVelocity">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">VelocityField</param>
+    </struct>
+    <struct name="solutionPressure">
+      <param name="Type">SolutionVector</param>
+      <param name="FeVariable">PressureField</param>
+    </struct>
+    <struct name="mom_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">VelocityField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="cont_force">
+      <param name="Type">ForceVector</param>
+      <param name="FeVariable">PressureField</param>
+      <param name="ExtraInfo">context</param>
+    </struct>
+    <struct name="k_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">VelocityField</param>
+      <param name="RHS">mom_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="constitutiveMatrix">
+      <param name="Type">ConstitutiveMatrixCartesian</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">k_matrix</param>
+    </struct>
+    <struct name="g_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">VelocityField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">mom_force</param>
+      <param name="transposeRHS">cont_force</param>
+      <param name="allowZeroElementContributions">False</param>
+    </struct>
+    <struct name="gradientStiffnessMatrixTerm">
+      <param name="Type">GradientStiffnessMatrixTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="StiffnessMatrix">g_matrix</param>
+    </struct>
+    <struct name="preconditioner">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="preconditionerTerm">
+      <param name="Type">UzawaPreconditionerTerm</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="StiffnessMatrix">preconditioner</param>
+    </struct>
+    <struct name="uzawa">
+      <param name="Type">Stokes_SLE_UzawaSolver</param>
+      <param name="velocitySolver">matrixSolver</param>
+      <param name="Preconditioner">preconditioner</param>
+      <param name="tolerance">linearTolerance</param>
+      <param name="monitor">false</param>
+      <param name="maxIterations">5000</param>
+      <param name="minIterations">1</param>
+    </struct>
+    <struct name="stokesEqn">
+      <param name="Type">Stokes_SLE</param>
+      <param name="SLE_Solver">uzawa</param>
+      <param name="Context">context</param>
+      <param name="StressTensorMatrix">k_matrix</param>
+      <param name="GradientMatrix">g_matrix</param>
+      <param name="DivergenceMatrix"></param>
+      <param name="CompressibilityMatrix">c_matrix</param>
+      <param name="VelocityVector">solutionVelocity</param>
+      <param name="PressureVector">solutionPressure</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="ContinuityForceVector">cont_force</param>
+      <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+      <param name="nonLinearTolerance">nonLinearTolerance</param>
+      <param name="makeConvergenceFile">false</param>
+    </struct>
+    <struct name="c_matrix">
+      <param name="Type">StiffnessMatrix</param>
+      <param name="RowVariable">PressureField</param>
+      <param name="ColumnVariable">PressureField</param>
+      <param name="RHS">cont_force</param>
+      <param name="allowZeroElementContributions">True</param>
+    </struct>
+    <struct name="mixedStabiliser">
+      <param name="Type">MixedStabiliserTerm</param>
+      <param name="Swarm">gaussSwarm</param>
+      <param name="picSwarm">picIntegrationPoints</param>
+      <param name="storeVisc">storeViscosity</param>
+      <param name="StiffnessMatrix">c_matrix</param>
+    </struct>
+    <struct name="buoyancyForceTerm">
+      <param name="Type">BuoyancyForceTerm</param>
+      <param name="ForceVector">mom_force</param>
+      <param name="Swarm">picIntegrationPoints</param>
+      <param name="gravity">gravity</param>
+    </struct>
+    <struct name="background">
+      <param name="Type">Everywhere</param>
+    </struct>
+    <struct name="escapedRoutine">
+      <param name="Type">EscapedRoutine</param>
+      <param name="idealParticleCount">0</param>
+    </struct>
+    <struct name="velocityRemesher">
+      <param name="Type">RegularRemesherCmpt</param>
+      <param name="mesh">mesh-linear</param>
+      <list name="remeshDims">
+        <param>0</param>
+        <param>1</param>
+        <param>2</param>
+      </list>
+    </struct>
+
+    <struct name="boxShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">maxX</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+    <struct name="leftBoundaryShape">
+      <param name="Type">Box</param>
+      <param name="startX">minX</param>
+      <param name="endX">0.1</param>
+      <param name="startY">minY</param>
+      <param name="endY">maxY</param>
+      <param name="startZ">minZ</param>
+      <param name="endZ">maxZ</param>
+    </struct>
+
+    <struct name="backgroundViscosity">
+      <param name="Type">MaterialViscosity</param>
+      <param name="eta0">1.0</param>
+    </struct>
+    <struct name="storeViscosity">
+      <param name="Type">StoreVisc</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="storeStress">
+      <param name="Type">StoreStress</param>
+      <param name="MaterialPointsSwarm">materialSwarm</param>
+    </struct>
+    <struct name="viscous">
+      <param name="Type">RheologyMaterial</param>
+      <param name="Shape">boxShape</param>
+      <param name="density">1.0</param>
+      <list name="Rheology">
+        <param>backgroundViscosity</param>
+        <param>storeViscosity</param>
+        <param>storeStress</param>
+      </list>
+    </struct>
+
+    <struct name="surfaceAdaptor">
+      <param name="Type">SurfaceAdaptor</param>
+      <param name="mesh">mesh-linear</param>
+      <param name="sourceGenerator">linearMesh-generator</param>
+      <param name="bottomSurfaceType">cylinder</param>
+      <param name="bottomX0">SolidBodyRotationCentreX</param>
+      <param name="bottomY0">SolidBodyRotationCentreY</param>
+      <param name="bottomRadius">InnerRadiusCylinder</param>
+      <param name="bottomMinX">CylinderMinX</param>
+      <param name="bottomMaxX">CylinderMaxX</param>
+    </struct>
+
+  </struct>
+
+  <list name="FieldVariablesToCheckpoint">
+    <param>VelocityField</param>
+    <param>PressureField</param>
+  </list>
+  <param name="timeIntegratorOrder">1</param>
+  <param name="maxTimeSteps">10</param>
+  <param name="outputEvery">1</param>
+  <param name="dumpEvery">1</param>
+  <param name="outputPath">./output</param>
+  <param name="dim">2</param>
+  <param name="shadowDepth">1</param>
+  <param name="minX">0.0f</param>
+  <param name="minY">0.0f</param>
+  <param name="minZ">0.0f</param>
+  <param name="maxX">2.0f</param>
+  <param name="maxY">0.35f</param>
+  <param name="maxZ">0.3f</param>
+  <param name="elementResI">32</param>
+  <param name="elementResJ">16</param>
+  <param name="elementResK">4</param>
+  <param name="allowUnbalancing">True</param>
+  <param name="buildNodeNeighbourTbl">True</param>
+  <param name="buildElementNeighbourTbl">True</param>
+  <param name="particlesPerCell">30</param>
+  <param name="seed">13</param>
+  <param name="gaussParticlesX">2</param>
+  <param name="gaussParticlesY">2</param>
+  <param name="gaussParticlesZ">2</param>
+  <param name="particlesPerCell">30</param>
+  <struct name="EulerDeform">
+    <list name="systems">
+      <struct>
+        <param name="mesh">mesh-linear</param>
+        <param name="remesher">velocityRemesher</param>
+        <param name="velocityField">VelocityField</param>
+        <param name="wrapTop">True</param>
+        <param name="staticLeft">True</param>
+        <param name="staticLeftTop">True</param>
+        <param name="staticBottom">True</param>
+        <list name="fields">
+          <struct>
+            <param name="field">VelocityField</param>
+            <param name="variable">velocity</param>
+          </struct>
+          <struct>
+            <param name="field">PressureField</param>
+            <param name="variable">pressure</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <struct name="velocityBCs">
+    <param name="type">CompositeVC</param>
+    <list name="vcList">
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">left</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">Velocity_PartialRotationX</param>
+          </struct>
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">func</param>
+            <param name="value">Velocity_PartialRotationY</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">right</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">double</param>
+            <param name="value">0.0</param>
+          </struct>
+        </list>
+      </struct>
+      <struct>
+        <param name="type">WallVC</param>
+        <param name="wall">bottom</param>
+        <list name="variables">
+          <struct>
+            <param name="name">vx</param>
+            <param name="type">func</param>
+            <param name="value">Velocity_PartialRotationX</param>
+          </struct>
+          <struct>
+            <param name="name">vy</param>
+            <param name="type">func</param>
+            <param name="value">Velocity_PartialRotationY</param>
+          </struct>
+        </list>
+      </struct>
+    </list>
+  </struct>
+  <param name="checkpointEvery">1</param>
+  <param name="gravity">1.0</param>
+
+  <param name="SolidBodyRotationOmega">-1</param>
+  <param name="SolidBodyRotationCentreX">0</param>
+  <param name="SolidBodyRotationCentreY">-3</param>
+  <param name="InnerRadiusCylinder">3.15</param>
+  <param name="CylinderMinX">0</param>
+  <param name="CylinderMaxX">0.960468635615</param>
+  <param name="RadiusCylinder">3.35</param>
+
+</StGermainData>



More information about the CIG-COMMITS mailing list