[cig-commits] r6949 - geodyn/3D/MoSST/trunk/doc

sue at geodynamics.org sue at geodynamics.org
Wed May 23 15:48:43 PDT 2007


Author: sue
Date: 2007-05-23 15:48:38 -0700 (Wed, 23 May 2007)
New Revision: 6949

Modified:
   geodyn/3D/MoSST/trunk/doc/mosst.lyx
Log:
added more christensen's non-dimensionalization equations up to Other Physical Quantities; stopped pending further decisions on code

Modified: geodyn/3D/MoSST/trunk/doc/mosst.lyx
===================================================================
--- geodyn/3D/MoSST/trunk/doc/mosst.lyx	2007-05-23 22:36:14 UTC (rev 6948)
+++ geodyn/3D/MoSST/trunk/doc/mosst.lyx	2007-05-23 22:48:38 UTC (rev 6949)
@@ -1,12161 +1,12365 @@
-#LyX 1.4.3-4 created this file. For more info see http://www.lyx.org/
-\lyxformat 245
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\usepackage{hyperref}
-
-\let\myUrl\url
-\renewcommand{\url}[1]{(\myUrl{#1})}
-\end_preamble
-\language english
-\inputencoding auto
-\fontscheme default
-\graphics default
-\paperfontsize default
-\spacing single
-\papersize default
-\use_geometry true
-\use_amsmath 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\leftmargin 1in
-\topmargin 1in
-\rightmargin 1in
-\bottommargin 1in
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language swedish
-\papercolumns 1
-\papersides 2
-\paperpagestyle headings
-\tracking_changes false
-\output_changes true
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\noindent
-\align center
-
-\color none
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-thispagestyle{empty}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Title
-MoSST
-\end_layout
-
-\begin_layout Author
-© California Institute of Technology
-\newline
-Peter Olson, Wei Mi
-\newline
-Version 1.0
-\end_layout
-
-\begin_layout Date
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-today
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset LatexCommand \tableofcontents{}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset FloatList figure
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-raggedbottom
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\newpage
-
-\end_layout
-
-\begin_layout Chapter
-Preface
-\end_layout
-
-\begin_layout Section
-Who Will Use MoSST?
-\end_layout
-
-\begin_layout Standard
-The main audience for CIGMA is research scientists interested in ???????.
- Examples of problems that can be solved are the development of tectonic
- structure associated with extension and compression, especially where localizat
-ion is important.
- You do not have to be an expert in finite element analysis or scientific
- computing to use this software.
-\end_layout
-
-\begin_layout Section
-Citation
-\end_layout
-
-\begin_layout Standard
-Computational Infrastructure for Geodynamics (CIG) is making this source
- code available to you in the hope that the software will enhance your research
- in geophysics.
- The underlying C code for the finite element package was donated to CIG
- in July of 2005.
- A number of individuals have contributed a significant portion of their
- careers toward the development of Gale.
- It is essential that you recognize these individuals in the normal scientific
- practice by making appropriate acknowledgements.
- 
-\end_layout
-
-\begin_layout Standard
-The code is based on the method described in 
-\end_layout
-
-\begin_layout Itemize
-Moresi, L.N., F.
- Dufour, and H.-B.
- Mühlhaus (2003), A Lagrangian integration point finite element method for
- large deformation modeling of viscoelastic geomaterials, 
-\emph on
-J.
- Comp.
- Phys., 184
-\series bold
-,
-\series default
-\emph default
- 476-497.
- 
-\end_layout
-
-\begin_layout Standard
-The code was originally developed by the Victorian Partnership for Advanced
- Computing (VPAC) and Louis Moresi's group at Monash University.
- Walter Landry of CIG and Luke Hodkinson of VPAC have enhanced the code
- to satisfy the requirements of the long-term tectonics community.
- Roger Buck, Gus Correa, and Robert Bialas from the Lamont-Doherty Earth
- Observatory, Columbia University, provided valuable user testing.
- The Gale team requests that in your oral presentations and in your papers
- that you indicate your use of this code and acknowledge the authors of
- the code, 
-\begin_inset LatexCommand \htmlurl[CIG]{www.geodynamics.org}
-
-\end_inset
-
-, 
-\begin_inset LatexCommand \htmlurl[Victoria Partnership for Advanced Computing]{www.vpac.org}
-
-\end_inset
-
-, and 
-\begin_inset LatexCommand \htmlurl[Monash University]{www.monash.edu}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Support
-\end_layout
-
-\begin_layout Standard
-Gale development is supported by a grant from the National Science Foundation
- to CIG, managed by the California Institute of Technology.
- However, most of the software components below Gale have been developed
- by the Victoria Partnership for Advanced Computing (VPAC) and Monash University.
-\end_layout
-
-\begin_layout Chapter
-Introduction
-\end_layout
-
-\begin_layout Section
-About MoSST
-\end_layout
-
-\begin_layout Standard
-Gale is a parallel, two- or three-dimensional, implicit finite element code
- that solves problems related to orogenesis, rifting, and subduction with
- coupling to surface erosion models.
- Gale uses a hybrid particle-in-cell scheme which combines a deformable
- mesh of computational points and a dense arrangement of mobile material
- points.
- The boundaries of the deformable mesh conform to the boundaries of the
- material as the simulation progresses, but the interior is constrained
- to remain as regular as possible.
- The particles track history-dependent properties such as strain for strain-soft
-ening materials.
- This allows Gale to simulate  problems with large deformations and irregular
- boundaries.
-\end_layout
-
-\begin_layout Standard
-CIG has developed Gale in response to community demand by building on existing
- work by VPAC and Louis Moresi's group at Monash University.
- The code is being released under the GNU General Public License.
-\end_layout
-
-\begin_layout Section
-MoSST Computational Approach and Governing Equations
-\end_layout
-
-\begin_layout Subsection
-Infrastructure
-\end_layout
-
-\begin_layout Standard
-Gale uses both a regular grid and particles.
- The regular grid is used to solve differential equations, and particles
- are used to track material properties (e.g., strain history).
- Note that the regular grid can become distorted, since it may conform to
- an uneven upper surface.
-\end_layout
-
-\begin_layout Subsection
-Units
-\end_layout
-
-\begin_layout Standard
-Gale has no internal knowledge of units.
- So if you tell Gale that a box is 10 units across, it does not know or
- care whether it is 10 cm or 10 km.
- You only have to make sure that you are consistent.
- For example, if you give velocities in cm/year, make sure that your viscosities
- and lengths also use cm and years.
- 
-\end_layout
-
-\begin_layout Subsection
-Basic Equations
-\end_layout
-
-\begin_layout Standard
-Christensen's non-dimensionalization
-\end_layout
-
-\begin_layout Paragraph*
-Symbols
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-D=r_{o}-r_{i}=1,\,\frac{r_{i}}{r_{o}}=0.35,\, r_{i}=\frac{7}{13},\, r_{o}=\frac{20}{13}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\nu:$
-\end_inset
-
- kinematic viscosity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\eta:$
-\end_inset
-
- magnetic diffusivity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\kappa:$
-\end_inset
-
- thermal diffusivity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\mu:$
-\end_inset
-
- magnetic permeability
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\Omega:$
-\end_inset
-
- basic rotating rate
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\rho:$
-\end_inset
-
- density
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\alpha:$
-\end_inset
-
- thermal expansion coefficient
-\end_layout
-
-\begin_layout Paragraph*
-Scales
-\end_layout
-
-\begin_layout Standard
-length: 
-\begin_inset Formula $D$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-time: 
-\begin_inset Formula $\frac{D^{2}}{v}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-velocity: 
-\begin_inset Formula $\frac{v}{D}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-temperature: 
-\begin_inset Formula $\Delta T$
-\end_inset
-
- 
-\end_layout
-
-\begin_layout Standard
-magnetic field: 
-\begin_inset Formula $(\rho\mu\eta\Omega)^{\frac{1}{2}}$
-\end_inset
-
- 
-\end_layout
-
-\begin_layout Standard
-pressure: 
-\begin_inset Formula $\rho\nu\Omega$
-\end_inset
-
- 
-\end_layout
-
-\begin_layout Paragraph*
-Parameters
-\end_layout
-
-\begin_layout Standard
-Modified Rayleigh number: 
-\begin_inset Formula $R_{a}=\frac{\alpha g_{o}\Delta TD}{\nu\Omega}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Ekman number: 
-\begin_inset Formula $E_{c}=\frac{\nu}{\Omega D^{2}}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Prandtl number: 
-\begin_inset Formula $P_{r}=\frac{\nu}{\kappa}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Magnetic Prandtl number: 
-\begin_inset Formula $P_{m}=\frac{\nu}{\eta}$
-\end_inset
-
- 
-\end_layout
-
-\begin_layout Subsubsection*
-Dimensionless equations
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-E_{c}\left(\frac{\partial\mathrm{\mathbf{u}}}{\partial t}+\mathrm{\mathbf{u}}\cdot\nabla\mathrm{\mathbf{u}}-\nabla^{2}\mathrm{\mathbf{u}}\right)+2\hat{\mathrm{\mathbf{z}\times\mathbf{u}=-\nabla\mathit{P+R_{a}\frac{\mathrm{\mathbf{r}}}{r_{o}}\mathit{\Upsilon+\frac{1}{P_{m}}\left(\nabla\times\mathrm{\mathbf{B}}\right)\times\mathrm{\mathbf{B}}}}}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial\mathrm{\mathbf{B}}}{\partial t}=\nabla\times\left(\mathbf{u}\times\mathbf{B}\right)+\frac{1}{P_{m}}\nabla^{2}\mathbf{B}\]
-
-\end_inset
-
-
-\begin_inset Formula \[
-\frac{\partial\mathrm{\mathbf{\mathit{T}}}}{\partial t}+\mathbf{u}\cdot\nabla T=\frac{1}{P_{r}}\nabla^{2}T\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\nabla\cdot\mathbf{u}=0,\,\,\nabla\cdot\mathrm{\mathbf{B}}=0.\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The head bar denotes the unit vector.
-\end_layout
-
-\begin_layout Paragraph*
-Kuang's non-dimensionalization
-\end_layout
-
-\begin_layout Standard
-Symbols:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $r_{o}:$
-\end_inset
-
- radial of the outer core
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $v$
-\end_inset
-
-: kinematic viscosity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\eta:$
-\end_inset
-
- magnetic diffusivity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\kappa:$
-\end_inset
-
- thermal diffusivity
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\mu:$
-\end_inset
-
- magnetic permeability
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\Omega:$
-\end_inset
-
- basic rotating rate
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\rho:$
-\end_inset
-
- density
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula $\alpha:$
-\end_inset
-
- thermal expansion coefficient
-\end_layout
-
-\begin_layout Paragraph*
-Scales
-\end_layout
-
-\begin_layout Standard
-length: 
-\begin_inset Formula $r_{o}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-time: 
-\begin_inset Formula $r_{o}^{2}/\eta$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-velocity: 
-\begin_inset Formula $\eta/r_{o}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-temperature: 
-\begin_inset Formula $h_{T}r_{o}=r_{o}\frac{-\partial T}{\partial r}\mid_{r=r_{i}}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-magnetic field: 
-\end_layout
-
-\begin_layout Standard
-pressure: 
-\end_layout
-
-\begin_layout Standard
-Parameters
-\end_layout
-
-\begin_layout Standard
-Rossby number: 
-\end_layout
-
-\begin_layout Standard
-Prandtl number: 
-\end_layout
-
-\begin_layout Standard
-Rayleigh number: 
-\end_layout
-
-\begin_layout Standard
-Ekman number: 
-\end_layout
-
-\begin_layout Standard
-Dimensionless equations:
-\end_layout
-
-\begin_layout Standard
-Note that r in the buoyant force has been normalized with ro, while it is
- normalized with D in Christensen?s equation.
-\end_layout
-
-\begin_layout Standard
-Parameter conversion:
-\end_layout
-
-\begin_layout Standard
-1.
- Conducting state
-\end_layout
-
-\begin_layout Standard
-In Christensen, 
-\end_layout
-
-\begin_layout Standard
-, (2.1)
-\end_layout
-
-\begin_layout Standard
-In Kuang,
-\end_layout
-
-\begin_layout Standard
-.
- (2.2)
-\end_layout
-
-\begin_layout Standard
-For benchmarking, (2.1) and (2.2) must be identical.
- Therefore
-\end_layout
-
-\begin_layout Standard
-(2.3)
-\end_layout
-
-\begin_layout Standard
-where .
-\end_layout
-
-\begin_layout Standard
-2.
- Non-dimensional parameters
-\end_layout
-
-\begin_layout Standard
-(2.4)
-\end_layout
-
-\begin_layout Standard
-(2.5)
-\end_layout
-
-\begin_layout Standard
-(2.6)
-\end_layout
-
-\begin_layout Standard
-(2.7)
-\end_layout
-
-\begin_layout Standard
-3.
- Non-dimensional physical fields
-\end_layout
-
-\begin_layout Standard
-(2.8)
-\end_layout
-
-\begin_layout Standard
-(2.9)
-\end_layout
-
-\begin_layout Standard
-4.
- Other physical quantities
-\end_layout
-
-\begin_layout Standard
-(2.10)
-\end_layout
-
-\begin_layout Standard
-(2.11)
-\end_layout
-
-\begin_layout Standard
-Initial conditions
-\end_layout
-
-\begin_layout Standard
-The initial conditions on radial magnetic field in Christensen can be written
- as,
-\end_layout
-
-\begin_layout Standard
-Thus, in Kuang?s model, the coefficient should be,
-\end_layout
-
-\begin_layout Standard
-The initial conditions on azimuzal magnetic field is,
-\end_layout
-
-\begin_layout Standard
-In kuang?s model, the initial conditions can be rescaled as,
-\end_layout
-
-\begin_layout Standard
-The initial perturbation of the temperature is
-\end_layout
-
-\begin_layout Standard
-where , x being 2r-ro-ri
-\end_layout
-
-\begin_layout Standard
-In Kuang?s model, 
-\end_layout
-
-\begin_layout Standard
-where , x being 
-\end_layout
-
-\begin_layout Standard
-Benchmark cases
-\end_layout
-
-\begin_layout Standard
-Case 2 : Conducting and freely rotating inner core
-\end_layout
-
-\begin_layout Standard
-Christensen?s parameters:
-\end_layout
-
-\begin_layout Standard
-, 
-\end_layout
-
-\begin_layout Standard
-,
-\end_layout
-
-\begin_layout Standard
-Kuang?s parameters:
-\end_layout
-
-\begin_layout Standard
-MoSST set up
-\end_layout
-
-\begin_layout Standard
-KICBV = 1 (no slip at ICB)
-\end_layout
-
-\begin_layout Standard
-KICMV = 1 (no slip at CMB)
-\end_layout
-
-\begin_layout Standard
-KICBT = 1 (fixed heat flux at ICB)
-\end_layout
-
-\begin_layout Standard
-KCMBT = 1 (fixed heat flux at CMB)
-\end_layout
-
-\begin_layout Standard
-k_icrot = 1 (only axial differential rotation )
-\end_layout
-
-\begin_layout Standard
-navfb = 70 ( truncation level for artificial diffision of B)
-\end_layout
-
-\begin_layout Standard
-navft = 70 ( truncation level for artificial diffision of T)
-\end_layout
-
-\begin_layout Standard
-navfv1 = 70 ( truncation level for artificial diffision of v1) (miner =
- 16) 
-\end_layout
-
-\begin_layout Standard
-navfv1 = 70 ( truncation level for artificial diffision of v2)
-\end_layout
-
-\begin_layout Standard
-Estimation
-\end_layout
-
-\begin_layout Standard
-Time scale
-\end_layout
-
-\begin_layout Standard
-=0.0845tc
-\end_layout
-
-\begin_layout Standard
-tc~15, tk~1
-\end_layout
-
-\begin_layout Standard
-temperature scale
-\end_layout
-
-\begin_layout Standard
-magnetic field
-\end_layout
-
-\begin_layout Standard
---? E_b ~ 1.45 
-\end_layout
-
-\begin_layout Standard
-? E_v ~ 50.03
-\end_layout
-
-\begin_layout Subsection
-Gravity
-\end_layout
-
-\begin_layout Section
-MoSST History
-\end_layout
-
-\begin_layout Standard
-Gale arose from discussions at an NSF-sponsored workshop on Tectonic Modeling
- held in Breckenridge, Colorado, in June 2005; see 
-\begin_inset LatexCommand \htmlurl[Geodynamic Modeling of Tectonics Processes 2005 workshop report]{www.geodynamics.org/cig/workinggroups/long/workshops/2005/issues}
-
-\end_inset
-
-.
- At that workshop, members of the tectonics community advocated that CIG
- develop a new open-source software package based on the Arbitrary Lagrangian
- Eulerian (ALE) method for solving tectonic problems.
- The ALE method, as it is implemented in the tectonics community, was developed
- primarily at Dalhousie University in Canada.
- It solves a Stokes flow problem on an Eulerian grid and uses a Lagrangian
- grid to track material properties and to integrate strain.
- This method has seen a great deal of use in crustal and lithospheric deformatio
-n problems such as orogenesis, rifting, and subduction, as well as in coupling
- to surface erosion models, and has been employed for deeper mantle dynamics
- problems.
- Gale is an open-source code that we hope will be at least as useful as
- SOPALE and MicroFEM 
-\begin_inset LatexCommand \cite{Fullsack}
-
-\end_inset
-
- for addressing these research areas
-\color none
-, with the addition of 3D capability.
- In the future, Gale will run benchmarks such as extension and shortening,
- as well as the traditional subduction model as shown in Fig.
- 
-\begin_inset LatexCommand \ref{fig:General-subduction-model}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-The development of Gale was jump-started by building on top of Underworld
- 
-\begin_inset LatexCommand \cite{Underworld}
-
-\end_inset
-
-, a mantle convection code developed by Louis Moresi's group at Monash and
- the Victorian Partnership for Advanced Computing (VPAC).
- Underworld was created as a parallel version of Ellipsis3D 
-\begin_inset LatexCommand \cite{Ellipsis}
-
-\end_inset
-
-, a mantle convection code which grew out of CitCom 
-\begin_inset LatexCommand \cite{Citcom}
-
-\end_inset
-
-.
- Walter Landry of CIG and Luke Hodkinson of VPAC are the primary developers
- of the Gale-specific components.
- Roger Buck, Robert Bialis, and Gus Correa of Lamont-Doherty Earth Observatory,
- Columbia University, provided valuable user testing.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:General-subduction-model}
-
-\end_inset
-
-General subduction model from 
-\begin_inset LatexCommand \cite{Fullsack}
-
-\end_inset
-
-.
- The basic subduction model can be modified by introducing isostasy and/or
- boundary mass fluxes.
- (a) Flexural or local isostasy.
- Every Eulerian column is displaced by the corresponding local or flexural
- deflection 
-\emph on
-w
-\emph default
- of the base.
- (b) Mass fluxes crossing the boundaries may be: (1) the tectonic flux 
-\emph on
-t
-\emph default
-
-\begin_inset Formula $^{\text{+}}$
-\end_inset
-
- into the domain, due to tectonic convergence; (2) the deposition flux 
-\begin_inset Formula $\text{e}^{+}$
-\end_inset
-
- onto the domain, due to surface processes; (3) the deposition flux 
-\begin_inset Formula $\text{e}^{-}$
-\end_inset
-
- from the domain, due to surface processes; (4) the crustal subduction flux
- 
-\begin_inset Formula $\text{cs}^{-}$
-\end_inset
-
- from the domain, due to the entrainment of crustal material from the subducting
- plate.
- 
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/GALE_image1.eps
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
- 
-\end_layout
-
-\begin_layout Chapter
-Installation and Getting Help
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-Installation of Gale on a desktop or laptop machine is, in most cases, very
- easy.
- Binary packages have been created for the most common platforms, i.e., Linux,
- Mac OS X, and Windows.
- Installation on other architectures or on parallel machines requires building
- the software from the source code, which can be difficult for inexperienced
- users.
- 
-\end_layout
-
-\begin_layout Section
-Binaries
-\end_layout
-
-\begin_layout Standard
-If you do not need to run on parallel machines, the easiest way to install
- Gale is to download binaries for your platform from the 
-\begin_inset LatexCommand \htmlurl[Gale website]{geodynamics.org/cig/software/packages/long/gale/}
-
-\end_inset
-
-.
- Then you can run Gale from the command line or DOS prompt.
- CIG provides binaries for Linux, Mac OS X (10.4 or greater), and Windows
- (2000 and XP).
-\end_layout
-
-\begin_layout Section
-Building from Source
-\end_layout
-
-\begin_layout Standard
-Read this only if the binaries are not sufficient for you.
- 
-\end_layout
-
-\begin_layout Subsection
-System Requirements
-\end_layout
-
-\begin_layout Standard
-Gale works on a variety of computational platforms and has been tested on
- workstations running 
-\end_layout
-
-\begin_layout Itemize
-Mac OS X 10.4.6 (G4 and G5)
-\end_layout
-
-\begin_layout Itemize
-Windows 2000 and XP SP2
-\end_layout
-
-\begin_layout Itemize
-RedHat Fedora Core 5 (x86)
-\end_layout
-
-\begin_layout Itemize
-OpenSuse 10.0 (x86)
-\end_layout
-
-\begin_layout Itemize
-Gentoo (x86)
-\end_layout
-
-\begin_layout Itemize
-Debian stable (x86 and AMD64), testing (x86), and unstable (x86)
-\end_layout
-
-\begin_layout Standard
-Gale has also been tested on clusters running Redhat 7.2 (x86) and RedHat
- Enterprise Linux 3 (EM64T).
-\end_layout
-
-\begin_layout Subsection
-Dependencies
-\end_layout
-
-\begin_layout Standard
-In order to build Gale, you must have the headers and development libraries
- for
-\end_layout
-
-\begin_layout Itemize
-MPI
-\end_layout
-
-\begin_layout Itemize
-PETSc 2.3.2
-\end_layout
-
-\begin_layout Itemize
-libxml2
-\end_layout
-
-\begin_layout Standard
-You must also have python 2.2.1 or greater installed.
- If you do not already have MPI, then in many cases PETSc can install a
- version for you.
- Installing PETSc also requires a Blas/Lapack implementation.
-\end_layout
-
-\begin_layout Subsection
-\begin_inset LatexCommand \label{sec:Downloading-the-Code}
-
-\end_inset
-
-Downloading the Code
-\end_layout
-
-\begin_layout Standard
-You can get the source for the latest release from the 
-\begin_inset LatexCommand \htmlurl[Gale website]{geodynamics.org/cig/software/packages/long/gale/}
-
-\end_inset
-
-.
- In that tarball is the file INSTALL.
- For some platforms, there are platform-specific instructions.
- Generally, the hardest part is not installing Gale itself, but PETSc.
-\end_layout
-
-\begin_layout Subsubsection
-Source Code Repository (Experts Only)
-\end_layout
-
-\begin_layout Standard
-Advanced users and software developers may be interested in downloading
- the latest Gale source code directly from the CIG source code repository,
- instead of using the prepared source package.
- To check whether you have a subversion client installed on your machine,
- type:
-\end_layout
-
-\begin_layout LyX-Code
-svn
-\end_layout
-
-\begin_layout Standard
-You should get a response that looks something like this:
-\end_layout
-
-\begin_layout LyX-Code
-Type `svn help' for usage.
-\end_layout
-
-\begin_layout Standard
-Otherwise, you will need to download and install a Subversion client, available
- at the 
-\begin_inset LatexCommand \htmlurl[Subversion Website]{subversion.tigris.org/project_packages.html}
-
-\end_inset
-
-.
- Then the code can be checked out with the following command: 
-\end_layout
-
-\begin_layout LyX-Code
-svn checkout http://geodynamics.org/svn/cig/long/3D/Gale/trunk Gale
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Section
-Support
-\end_layout
-
-\begin_layout Standard
-The primary point of support for Gale is the 
-\begin_inset LatexCommand \url[CIG Long-Term Crustal Dynamics Mailing List]{cig-long at geodynamics.org}
-
-\end_inset
-
-.
- Feel free to send questions, comments, feature requests, and bugs to the
- list.
- The mailing list is archived at
-\end_layout
-
-\begin_layout LyX-Code
-\begin_inset LatexCommand \htmlurl[cig-long Archives]{geodynamics.org/pipermail/cig-long/}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-You may also use the bug tracker
-\end_layout
-
-\begin_layout LyX-Code
-\begin_inset LatexCommand \htmlurl[Roundup]{geodynamics.org/roundup}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-to submit bugs and requests for new features.
-\end_layout
-
-\begin_layout Chapter
-Running Gale
-\end_layout
-
-\begin_layout Section
-Gale Usage
-\end_layout
-
-\begin_layout Standard
-If you downloaded binaries for your platform, you can run the Gale executable
- directly.
- For example,
-\end_layout
-
-\begin_layout LyX-Code
-./Gale-1_2_0  input/extension.xml
-\end_layout
-
-\begin_layout Standard
-will output 
-\end_layout
-
-\begin_layout LyX-Code
-TimeStep = 1, Start time = 0 + 0 prev timeStep dt
-\end_layout
-
-\begin_layout LyX-Code
-TimeStep = 2, Start time = 0 + 0.0291667 prev timeStep dt
-\end_layout
-
-\begin_layout LyX-Code
-TimeStep = 3, Start time = 0.0291667 + 0.0283326 prev timeStep dt
-\end_layout
-
-\begin_layout LyX-Code
-TimeStep = 4, Start time = 0.0574992 + 0.0274655 prev timeStep dt
-\end_layout
-
-\begin_layout LyX-Code
-TimeStep = 5, Start time = 0.0849647 + 0.0265162 prev timeStep dt
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-If you do not specify an input file, you will get an error like
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-Error in _AbstractContext_New: The dictionary is empty, meaning no input
- parameters have been feed
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-into your program.
- Perhaps you've forgot to pass any input files ( or command-line arguments
- ) in.
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-Gale: build/StGermain/Base/IO/src/Journal.c:603: Journal_Firewall: Assertion
- `expression' failed.
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-p0_27845:  p4_error: interrupt SIGx: 6 
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Standard
-If Gale cannot find the file, you will get a different error:
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-Error: File input/extension.xml doesn't exist, not readable, or not valid.
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-Gale: build/StGermain/Base/IO/src/Journal.c:603: Journal_Firewall: Assertion
- `expression' failed.
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-p0_16810:  p4_error: interrupt SIGx: 6
-\end_layout
-
-\begin_layout Standard
-Due to quirks in some implementations of MPI, you may have to specify the
- complete path to the input file (e.g., 
-\family typewriter
-./Gale-1_2_0 /home/juser/gale/input/extension.xml
-\family default
-).
-\end_layout
-
-\begin_layout Standard
-In general, Gale does not have many defaults, so almost everything must
- be specified in the input file.
- For examples of how to create your own input files, see Chapter 
-\begin_inset LatexCommand \ref{cha:Cookbooks}
-
-\end_inset
-
-.
- For a complete description of the input file format, see Appendix 
-\begin_inset LatexCommand \ref{cha:Input-File-Format}
-
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Standard
-If you compile Gale yourself, you can run it from where you installed it.
- If running in parallel on your own machine, prepend 
-\family typewriter
-mpirun
-\family default
- or 
-\family typewriter
-mpiexec
-\family default
- (depending on your local implementation of MPI).
- For example, if your computer has two processors, then
-\end_layout
-
-\begin_layout LyX-Code
-mpirun -np 2 bin/Gale /home/juser/gale/input/extension.xml
-\end_layout
-
-\begin_layout Standard
-will use both processors.
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-extension.xml
-\family default
- example should run for 100 time steps and generate a great deal of output
- in the 
-\family typewriter
-output.extension
-\family default
- directory.
- There are also examples of shortening, subduction, and relaxation of topography.
-\end_layout
-
-\begin_layout Standard
-Gale uses PETSc's GMRES linear solver by default.
- However, PETSc has a facility where you can use command line arguments
- to change the solver.
- For example, on serial machines with small problems, a direct solve can
- be much faster than GMRES.
- To use a direct LU solve, you only need to append arguments to the command
- line
-\end_layout
-
-\begin_layout LyX-Code
-./Gale-1_2_0  input/extension.xml -pc_type lu -ksp_type preonly
-\end_layout
-
-\begin_layout Standard
-You can also change the default values of 
-\family typewriter
-extension.xml
-\family default
- without modifying that file by appending arguments.
- For example, to just change the number of time steps from the default value
- 100 to 10, use the following command
-\end_layout
-
-\begin_layout LyX-Code
-./Gale-1_2_0  input/extension.xml --maxTimeSteps=10
-\end_layout
-
-\begin_layout Standard
-You can append any number of modified parameters in one unbroken line
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
-./Gale-1_2_0  input/extension.xml --maxTimeSteps=10 --dim=3 --elementResI=64
- 
-\end_layout
-
-\begin_layout LyX-Code
-
-\size small
---elementResJ=64 --elementResK=64 --particlesPerCell=60 --dumpEvery=10
-\end_layout
-
-\begin_layout Section
-Output and Visualization
-\end_layout
-
-\begin_layout Standard
-The sample input files will produce a directory in which you will find a
- number of 
-\family typewriter
-.dat
-\family default
-, 
-\family typewriter
-.txt
-\family default
-, and 
-\family typewriter
-\color none
-.vtk
-\family default
- files.
- The formats of the 
-\family typewriter
-.dat
-\family default
- and 
-\family typewriter
-.txt
-\family default
- files are described fully in Appendix 
-\begin_inset LatexCommand \ref{cha:Output-File-Format}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-The default setting is to create files for every time step.
- To change the frequency of creating the 
-\family typewriter
-.dat
-\family default
- files, you need to change the parameter 
-\family typewriter
-checkpointEvery
-\family default
-.
- For example, if you modify the line with 
-\family typewriter
-checkpointEvery
-\family default
- to 
-\end_layout
-
-\begin_layout LyX-Code
-<param name="checkpointEvery">25</param>
-\end_layout
-
-\begin_layout Standard
-then the 
-\family typewriter
-.dat
-\family default
- files will only be created every 25 time steps.
- You can change the value to any number you want.
- On the other hand, to change the frequency for creating 
-\family typewriter
-.txt
-\family default
- and 
-\family typewriter
-.vtk
-\family default
- files, you need to change the parameter 
-\family typewriter
-dumpEvery
-\family default
-.
-\end_layout
-
-\begin_layout LyX-Code
-<param name="dumpEvery">25</param>
-\end_layout
-
-\begin_layout Quote
-
-\color red
-Note:
-\color none
- In order to get viscosity information out, you must add a 
-\family typewriter
-StoreViscosity
-\family default
- struct to your rheology as in Section 
-\begin_inset LatexCommand \ref{sec:Viscous-Material}
-
-\end_inset
-
- (see also Section 
-\begin_inset LatexCommand \ref{sub:StoreViscosity}
-
-\end_inset
-
-).
- This is already done in all of the example input files.
-\end_layout
-
-\begin_layout Standard
-
-\color none
-There are a number of different options for visualizing the data.
- The easiest way is to use the 
-\family typewriter
-.vtk
-\family default
- files.
- These files are in a standard, self-describing file format that can be
- easily visualized with several different visualization programs, e.g., 
-\begin_inset LatexCommand \htmlurl[ParaView]{paraview.org}
-
-\end_inset
-
-, 
-\begin_inset LatexCommand \htmlurl[MayaVI]{mayavi.sf.net}
-
-\end_inset
-
-, and 
-\begin_inset LatexCommand \htmlurl[Visit]{www.llnl.gov/visit}
-
-\end_inset
-
-.
- ParaView is recommended as it is easy to get working, easy to use, and
- scales to large data sets.
-\end_layout
-
-\begin_layout Standard
-Another option is to use the Matlab scripts in the 
-\family typewriter
-tools/
-\family default
- directory.
- These scripts only work in 2D and only when running simulations with yielding
- material.
-\end_layout
-
-\begin_layout Standard
-The last option is to use a spreadsheet program such as Excel.
- This is very limited, as you only see the location of the particles.
- You cannot visualize the viscosity or degree of yielding of the particles,
- nor can you visualize the fields (e.g.
- strain rate, pressure, etc.).
-\end_layout
-
-\begin_layout Subsection
-Visualization with ParaView
-\begin_inset LatexCommand \label{sub:Visualization-with-ParaView}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\color none
-To visualize step #10 of 
-\family typewriter
-input/extension.xml
-\family default
-, 
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Start Paraview and open new data: 
-\family sans
-File
-\family default
- 
-\begin_inset Formula $\triangleright$
-\end_inset
-
- 
-\family sans
-Open Data
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_open_data.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-A file dialog screen will appear.
- Navigate to the output directory and select 
-\family typewriter
-\color none
-pressure.0.00010.vtk
-\family default
-.
- Paraview will display a pseudocolor plot of the pressure.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_pressure.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You can also look at the velocities and strains by opening 
-\family typewriter
-\color none
-fields.0.00010.vtk
-\family default
- (with 
-\family sans
-File
-\family default
- 
-\begin_inset Formula $\triangleright$
-\end_inset
-
- 
-\family sans
-Open Data
-\family default
-).
- By default, Paraview will obscure the pressure with the velocity magnitude.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-
-\color none
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_vmag.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You can remove the velocity magnitude by clicking on the ``eye'' symbol
- next to 
-\family typewriter
-\color none
-fields.0.00010.vtk
-\family default
-, graying it out.
-\newline
-
-\newline
-
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_grey_eye.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-Now you can plot the velocity as arrows on top of the pressure: Click on
- the ``Glyph'' symbol
-\newline
-
-\newline
-
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_glyph.png
-
-\end_inset
-
-
-\newline
-
-\newline
-and then press the green ``Accept'' button.
- The result will look like this:
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_pressure_velocity.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You can also visualize the Strain Rate Invariant: Click on the grayed-out
- eye next to 
-\family typewriter
-\color none
-fields.0.00010.vtk
-\family default
-, and then click on the ``Display'' tab.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_v_vector.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Finish by clicking on the drop down list to the right of ``Color by'' and
- selecting ``Point StrainRateInvariantField.''
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_strainrate.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Now look at the particles.
- Starting over, open 
-\family typewriter
-\color none
-particles.0.00010.vtk
-\family default
- and click on the ``Glyph'' button.
- Change Glyph to Sphere0, Scale Mode to ``Data Scaling Off,'' the Scale
- Factor to 0.01, and press the Accept button.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-
-\color none
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_particles_viscosity.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\color none
-This displays the viscosity of the particles.
- The blue points represent low viscosity material, either the material at
- the bottom that was originally low viscosity, or the material that has
- yielded.
- 
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-To see explicitly which material has yielded, click on the ``Display'' tab
- and change the ``Color by'' box to ``Point Yielding_fraction.''
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_particles_yielding.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Subsection
-Visualization with Matlab or Octave
-\end_layout
-
-\begin_layout Standard
-
-\color none
-Gale includes a number of Matlab visualization scripts in the 
-\family typewriter
-tools/
-\family default
- directory.
- The scripts also work with Octave, a free Matlab clone.
- However, they only work for 2D runs with yielding rheologies.
- To use these scripts, 
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Navigate into the 
-\family typewriter
-tools/
-\family default
- directory 
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Modify 
-\family typewriter
-fname
-\family default
- in 
-\family typewriter
-PlotGaleOutput.m
-\family default
- to point to the output directory
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Change 
-\family typewriter
-step
-\family default
- to the time step
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Start Matlab or Octave and type
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-PlotGaleOutput
-\end_layout
-
-\begin_layout Enumerate
-Using Octave to visualize the 10th step of 
-\family typewriter
-input/extension.xml
-\family default
- results in
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Octave_fig1.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Octave_fig2.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Octave_fig3.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Using Matlab results in
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Matlab_fig111.png
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Matlab_fig112.png
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\end_deeper
-\begin_layout Subsection
-Visualization with Excel
-\end_layout
-
-\begin_layout Standard
-
-\color none
-You can set the DumpSwarm plugin (see Section 
-\begin_inset LatexCommand \ref{sec:.txt-Files-(Particle}
-
-\end_inset
-
-) to directly output 
-\family typewriter
-.csv
-\family default
- files, which you can use for limited visualization with a spreadsheet program
- such as Excel.
- For example, for the 
-\family typewriter
-input/extension.xml
-\family default
- input file, 
-\end_layout
-
-\begin_layout Enumerate
-
-\color none
-Open the file 
-\family typewriter
-output.extension/particles.00010.csv
-\family default
- with your spreadsheet program.
- Select the second two columns
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-
-\color none
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Gnumeric_two_columns.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Create a chart
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-
-\color none
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Gnumeric_new_chart.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Select an XY plot and press Insert
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Gnumeric_xy_plot.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newpage
-
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Then press anywhere on the spreadsheet, and you will have a plot of the
- particles.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Gnumeric_final.png
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Section
-Gauging Accuracy
-\end_layout
-
-\begin_layout Standard
-Gale makes a number of approximations.
- Before trusting any results you get from Gale, you must vary a number of
- parameters to insure that the results are not an artifact of Gale's approximati
-ons.
- Specifically, for every simulation, vary the resolution (
-\family typewriter
-elementResI
-\family default
-, 
-\family typewriter
-elementResJ
-\family default
-, 
-\family typewriter
-elementResK
-\family default
-) and the number of particles in each element (
-\family typewriter
-particlesPerCell
-\family default
-).
- For problems with inflow boundaries (see Sections 
-\begin_inset LatexCommand \ref{sec:Viscous-In-Outflow}
-
-\end_inset
-
- and 
-\begin_inset LatexCommand \ref{sub:Flux-Boundary-Conditions}
-
-\end_inset
-
-), you must vary the size of the boundary box.
- In addition, depending on the boundary conditions, you may need to vary
- the size of the box (
-\family typewriter
-minX
-\family default
-, 
-\family typewriter
-minY
-\family default
-, 
-\family typewriter
-minZ
-\family default
-, 
-\family typewriter
-maxX
-\family default
-, 
-\family typewriter
-maxY
-\family default
-, 
-\family typewriter
-maxZ
-\family default
-).
- Finally, vary the tolerance for each nonlinear iteration (
-\family typewriter
-tolerance
-\family default
- in the 
-\family typewriter
-uzawa
-\family default
- component).
-\end_layout
-
-\begin_layout Chapter
-Cookbooks
-\begin_inset LatexCommand \label{cha:Cookbooks}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-In this chapter, you will edit a template file (
-\family typewriter
-input/cookbook/template.xml
-\family default
-) to create customized input files.
- You should be able to use the template file as a basis for most of your
- own input files.
- 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.
- Beyond that, you only need to add where different materials are placed
- initially.
-\end_layout
-
-\begin_layout Subsection
-Adding Lines to the Template File
-\end_layout
-
-\begin_layout Standard
-Unless otherwise specified, when you are instructed to add sections to the
- input file
-\begin_inset Foot
-status collapsed
-
-\begin_layout Standard
-To copy and paste from this PDF with Adobe Acrobat, right click to get the
- context menu and select ``Allow Hand Tool to Select Text.''
-\end_layout
-
-\end_inset
-
-, that text should be added after the line
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="components">
-\end_layout
-
-\begin_layout Standard
-at the beginning of the file, and before the lines
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<list name="plugins">
-\end_layout
-
-\begin_layout Standard
-The template file is already indented to prevent you from adding a component
- in the middle of another component, although indentation is not critical.
-\end_layout
-
-\begin_layout Subsection
-Adding Variables to the Template File
-\end_layout
-
-\begin_layout Standard
-When you are instructed to add a variable, you must add it at the end of
- the file before the closing line
-\end_layout
-
-\begin_layout LyX-Code
-</StGermainData>
-\end_layout
-
-\begin_layout Standard
-Finished versions of all of these examples are found in 
-\family typewriter
-input/cookbook
-\family default
-.
- 
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand \label{sec:Viscous-Material}
-
-\end_inset
-
-Viscous Material
-\end_layout
-
-\begin_layout Standard
-This example simply fills up the computational domain with a single viscous
- material.
- It is a valid input file, but will not run as nothing is moving.
- This file mainly serves as the basis for subsequent examples.
-\end_layout
-
-\begin_layout Enumerate
-First, copy 
-\family typewriter
-template.xml
-\family default
- to 
-\family typewriter
-myviscous.xml
-\family default
- to edit as follows.
- 
-\end_layout
-
-\begin_layout Enumerate
-Add in a material.
- The simplest variety is a purely viscous material, so add a box covering
- the whole domain:
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="boxShape">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Box</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startX">minX</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endX">maxX</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startY">minY</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endY">maxY</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startZ">minZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endZ">maxZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-Note: Default parameters for the box (e.g., 
-\family typewriter
-minX
-\family default
-, 
-\family typewriter
-maxX
-\family default
-, 
-\family typewriter
-minY
-\family default
-, etc.) are already defined in 
-\family typewriter
-template.xml
-\family default
-.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Then set the material's viscosity
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="backgroundViscosity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MaterialViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="eta0">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-Remember that Gale has no internal knowledge of units, so if you think of
- everything in cgs, then this implies a viscosity of 
-\begin_inset Formula $1\frac{g}{cm^{2}\, s}$
-\end_inset
-
-.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-In order for Gale to include the viscosity in the output, we have to store
- the viscosity in a separate field (see Section 
-\begin_inset LatexCommand \ref{sub:StoreViscosity}
-
-\end_inset
-
-).
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="storeViscosity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StoreVisc</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-Here, 
-\family typewriter
-materialswarm
-\family default
- is a collection of particles.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Finally, you create the material, using the components just created.
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="viscous">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">boxShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="density">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>backgroundViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>storeViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Save this file, as it will be the basis for other examples that follow.
- 
-\end_layout
-
-\begin_layout Standard
-You can compare your result with the worked example in the file 
-\family typewriter
-input/cookbook/viscous.xml
-\family default
-.
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand \label{sec:Viscous-Material-in}
-
-\end_inset
-
-Viscous Material in Simple Extension
-\end_layout
-
-\begin_layout Standard
-The input file you created in Section 
-\begin_inset LatexCommand \ref{sec:Viscous-Material}
-
-\end_inset
-
- is valid, but nothing moves, so Gale will output errors if you try to run
- it.
- In this next example, you will make the material extend by having the right
- boundary move.
-\end_layout
-
-\begin_layout Enumerate
-Copy 
-\family typewriter
-myviscous.xml
-\family default
- to 
-\family typewriter
-myviscous_extension.xml
-\family default
-.
-\end_layout
-
-\begin_layout Enumerate
-Make the right boundary move by changing the line after this section
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="type">WallVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="wall">right</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">double</param>
-\end_layout
-
-\begin_layout Standard
-from
-\end_layout
-
-\begin_layout LyX-Code
-<param name="value">0.0</param>
-\end_layout
-
-\begin_layout Standard
-to
-\end_layout
-
-\begin_layout LyX-Code
-<param name="value">1.0</param>
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-\color red
-Warning:
-\series default
-\color none
- There are several 
-\family typewriter
-WallVC
-\family default
- structs: 
-\family typewriter
-front
-\family default
-, 
-\family typewriter
-back
-\family default
-, 
-\family typewriter
-left
-\family default
-, 
-\family typewriter
-right
-\family default
-, 
-\family typewriter
-top
-\family default
- and 
-\family typewriter
-bottom
-\family default
-.
- Here we have only modified the 
-\family typewriter
-right
-\family default
- side.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You can now run this example, and the output will go into the directory
- 
-\family typewriter
-output.template
-\family default
-.
- If you want to run in 3D, you only need to change the line after
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="outputPath">./output.template</param> 
-\end_layout
-
-\begin_layout Standard
-from
-\end_layout
-
-\begin_layout LyX-Code
-<param name="dim">2</param>
-\end_layout
-
-\begin_layout Standard
-to
-\end_layout
-
-\begin_layout LyX-Code
-<param name="dim">3</param>
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is at 
-\family typewriter
-input/cookbook/viscous_extension.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Strain-viscous-extension}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_viscous_extension.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-viscous-extension}
-
-\end_inset
-
-Strain rate invariant and velocities of viscous material in extension
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The banding is a numerical artifact that arises from having a finite number
- of particles per cell.
- This example generates no topography, since the material is stretched uniformly.
-\end_layout
-
-\begin_layout Section
-Viscous Material with Complex Boundaries
-\end_layout
-
-\begin_layout Standard
-Another exercise is to make the bottom boundary move differently, and not
- just have the material slide along.
- In particular, this example will simulate a box like in Figure 
-\begin_inset LatexCommand \ref{fig:Split-Boundary}
-
-\end_inset
-
-, where the bottom right side of the box moves, but the viscous material
- sticks to the bottom left.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement h
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/splitwall.eps
-	width 80col%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Split-Boundary}
-
-\end_inset
-
-Split Boundary
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-First, copy 
-\family typewriter
-myviscous_extension.xml
-\family default
- to 
-\family typewriter
-myviscous_split.xml
-\end_layout
-
-\begin_layout Enumerate
-Modify the bottom boundary condition of WallVC to
-\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">double</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="value">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-    </struct>
-\end_layout
-
-\begin_layout LyX-Code
-    <struct>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="name">vx</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="type">func</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="value">StepFunction</param>
-\end_layout
-
-\begin_layout LyX-Code
-    </struct>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-This makes the velocity of the bottom boundary a step function.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You must also specify the parameters of the step function by adding the
- variables
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="StepFunctionLowerOffset">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionUpperOffset">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionValue">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionDim">0</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionLessThan">False</param>
-\end_layout
-
-\begin_layout Standard
-to the end of the file (just before 
-\family typewriter
-</StGermain
-\family default
-Data
-\family typewriter
->
-\family default
-).
- 
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-\color red
-Warning: 
-\series default
-\color none
-Do not add them in the list named 
-\family typewriter
-``variables
-\family default
-.'' 
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is in the file 
-\family typewriter
-input/cookbook/viscous_split.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) shown in Figure 
-\begin_inset LatexCommand \ref{fig:Strain-complex}
-
-\end_inset
-
- shows that strain rate is concentrated around the step function in the
- bottom velocity boundary.
- Notice the development of a basin above the discontinuity.
- The ability to track the development of topography on the free surfaces
- is one of the strengths of Gale.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_viscous_split.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-complex}
-
-\end_inset
-
-Strain rate invariant and velocities with complex boundaries
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand \label{sec:Viscous-In-Outflow}
-
-\end_inset
-
-Viscous Material with Inflow/Outflow Boundaries
-\end_layout
-
-\begin_layout Standard
-This example implements a different kind of boundary condition, where material
- flows in one side and out another as in Figure 
-\begin_inset LatexCommand \ref{fig:Inflow/Outflow-Boundary}
-
-\end_inset
-
-.
- 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.
- A more realistic model of subduction is included in the sample input file
- 
-\family typewriter
-input/subduction.xml
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement h
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/inflow.eps
-	width 80col%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Inflow/Outflow-Boundary}
-
-\end_inset
-
-Inflow/Outflow Boundary
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-Copy the file 
-\family typewriter
-myviscous.xml
-\family default
- that you created in Section 
-\begin_inset LatexCommand \ref{sec:Viscous-Material}
-
-\end_inset
-
- to 
-\family typewriter
-myviscous_inflow.xml
-\family default
-.
- 
-\end_layout
-
-\begin_layout Enumerate
-Then, add the following lines after the 
-\family typewriter
-wrapTop
-\family default
- line so that Gale keeps the left and bottom sides fixed:
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="staticLeft">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="staticBottom">True</param>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Now specify the velocities on the boundaries using the 
-\family typewriter
-StepFunctionProduct
-\family default
- functions.
- For the left boundary, modify the left 
-\family typewriter
-WallVC
-\family default
- to
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="type">WallVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="wall">left</param>
-\end_layout
-
-\begin_layout LyX-Code
-<list name="variables">
-\end_layout
-
-\begin_layout LyX-Code
-  <struct>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="name">vx</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="type">func</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="value">StepFunctionProduct3</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </struct>
-\end_layout
-
-\begin_layout LyX-Code
-</list>
-\end_layout
-
-\begin_layout Standard
-and add the variables at the end of the file (just before 
-\family typewriter
-</StGermainData>
-\family default
-)
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionProduct3Start">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionProduct3End">0.2</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="StepFunctionProduct3Value">1</param>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-For the bottom boundary, modify the bottom 
-\family typewriter
-WallVC
-\family default
- to
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<param name="type">WallVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="wall">bottom</param>
-\end_layout
-
-\begin_layout LyX-Code
-<list name="variables">
-\end_layout
-
-\begin_layout LyX-Code
-  <struct>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="name">vy</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="type">func</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="value">StepFunctionProduct2</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </struct>
-\end_layout
-
-\begin_layout LyX-Code
-  <struct>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="name">vx</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="type">func</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param name="value">StepFunctionProduct1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </struct>
-\end_layout
-
-\begin_layout LyX-Code
-</list>
-\end_layout
-
-\begin_layout Standard
-and add the variables to the end of the file (just before 
-\family typewriter
-</StGermainData>
-\family default
-)
-\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
-
-\end_deeper
-\begin_layout Enumerate
-Finally, you must alter the way that Gale creates particles.
- The inflow boundary condition will naturally create a space devoid of particles.
- Gale then creates new particles to fill that void.
- Normally, Gale looks at nearby particles and replicates them.
- However, nearby material has already changed a little from the boundary,
- so replicating them will not give the new particles the correct properties.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-To fix that, create a thin layer next to the boundary where material is
- created anew.
- To do that, first create this shape
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="leftBoundaryShape">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Box</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startX">minX</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endX">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startY">minY</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endY">maxY</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="startZ">minZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="endZ">maxZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and then instruct the particle splitting routine to use this shape by adding
- 
-\end_layout
-
-\begin_layout LyX-Code
-<param name="originalParticleShape">leftBoundaryShape</param>
-\end_layout
-
-\begin_layout Standard
-after
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="splittingRoutine">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ReseedSplitting</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="idealParticleCount">particlesPerCell</param>
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is in the file 
-\family typewriter
-input/cookbook/viscous_inflow.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Strain-inflow}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_viscous_inflow.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-inflow}
-
-\end_inset
-
-Strain rate invariant and velocities with inflow/outflow boundaries
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Viscous Material with Stress Boundaries
-\end_layout
-
-\begin_layout Standard
-This example demonstrates yet another boundary condition, where only the
- stress is specified at the boundary.
- In particular, this example describes a box like Figure 
-\begin_inset LatexCommand \ref{fig:Stress-Boundaries}
-
-\end_inset
-
-.
- There is a tangential stress at the bottom causing a circulation, but otherwise
- the bottom is stress-free.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/stressbc.eps
-	width 80col%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Stress-Boundaries}
-
-\end_inset
-
-Stress Boundaries
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-Copy the file 
-\family typewriter
-myviscous.xml
-\family default
- that you created in Section 
-\begin_inset LatexCommand \ref{sec:Viscous-Material}
-
-\end_inset
-
- to 
-\family typewriter
-myviscous_stressbc.xml
-\family default
-.
- 
-\end_layout
-
-\begin_layout Enumerate
-Add a 
-\family typewriter
-StressBC
-\family default
- component
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="stressBC">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StressBC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ForceVector">mom_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Swarm">picIntegrationPoints</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="wall">bottom</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="x_type">func</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="x_value">StepFunctionProduct1</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and corresponding variables to the end of the file (just before 
-\family typewriter
-</StGermainData>
-\family default
-)
-\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
-
-\end_deeper
-\begin_layout Standard
-A worked example is in the file 
-\family typewriter
-input/cookbook/viscous_stressbc.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Strain-stress}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_viscous_stressbc.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-stress}
-
-\end_inset
-
-Strain rate invariant and velocities with stress boundaries
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand \label{sec:Viscous-Material-with}
-
-\end_inset
-
-Viscous Material with Initially Deformed Upper Boundary
-\end_layout
-
-\begin_layout Standard
-All of the previous examples are set up as a regular rectangular box.
- However, Gale can also start with the top initially deformed, such as if
- we had a mountain range with substantial topography.
- This example will make it sinusoidal as in Figure 
-\begin_inset LatexCommand \ref{fig:Sinusoidal-Top}
-
-\end_inset
-
-.
- This example has no moving boundaries, so the material will simply relax.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement h
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/sinusoid.eps
-	width 80col%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Sinusoidal-Top}
-
-\end_inset
-
-Sinusoidal Top
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-Copy 
-\family typewriter
-myviscous.xml
-\family default
- to 
-\family typewriter
-myviscous_sinusoid.xml
-\family default
-.
- 
-\end_layout
-
-\begin_layout Enumerate
-Add a 
-\family typewriter
-SurfaceAdaptor
-\family default
- component:
-\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="surfaceType">sine</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="origin">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="amplitude">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="frequency">6.28318530718</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is in 
-\family typewriter
-input/cookbook/viscous_sinusoid.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in 
-\begin_inset LatexCommand \ref{fig:Strain-initial-deformed}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_viscous_sinusoid.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-initial-deformed}
-
-\end_inset
-
-Strain rate invariant and velocities with initially deformed upper boundary
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Multiple Viscous Materials
-\end_layout
-
-\begin_layout Standard
-All of the previous examples have only one type of viscous material.
- This example will create a simulation where there are multiple viscous
- materials such as in Figure 
-\begin_inset LatexCommand \ref{fig:Multiple-Viscous-Materials}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement h
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/multi-material.eps
-	width 80col%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Multiple-Viscous-Materials}
-
-\end_inset
-
-Multiple Viscous Materials
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-Copy 
-\family typewriter
-myviscous_extension.xml
-\family default
- (see Section 
-\begin_inset LatexCommand \ref{sec:Viscous-Material-in}
-
-\end_inset
-
-) to 
-\family typewriter
-mymulti_material.xml
-\family default
-.
- 
-\end_layout
-
-\begin_layout Enumerate
-Add the sphere.
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="sphereShape">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Sphere</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CentreX">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CentreY">0.15</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="radius">0.10</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-Note: If run in 3D, this is a sphere.
- The example shown here is run in 2D, so the result is a circle.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Then add the new material.
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="sphereViscosity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MaterialViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="eta0">10.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="sphereViscous">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">sphereShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="density">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>sphereViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>storeViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Change the shape of the original material so it is not inside the sphere.
- To do this, create a new shape which is the old shape minus the sphere:
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="nonSphereShape">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Intersection</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="shapes">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>boxShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>!sphereShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Finally, modify the original viscous material to use this new 
-\family typewriter
-nonSphereShape
-\family default
- by changing the line after 
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="viscous">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout Standard
-from 
-\end_layout
-
-\begin_layout LyX-Code
-<param name="Shape">boxShape</param>
-\end_layout
-
-\begin_layout Standard
-to
-\end_layout
-
-\begin_layout LyX-Code
-<param name="Shape">nonSphereShape</param>
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is in 
-\family typewriter
-input/cookbook/multi_material.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Strain-multiple}
-
-\end_inset
-
-,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_multi_material.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Strain-multiple}
-
-\end_inset
-
-Strain rate invariant and velocities with multiple viscous materials
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-and the viscosity of the particles is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Viscosities-with-multiple}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_multi_viscosity.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Viscosities-with-multiple}
-
-\end_inset
-
-Viscosities with multiple viscous materials
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Yielding Material in Simple Extension
-\end_layout
-
-\begin_layout Standard
-This example replaces the background viscous material with a yielding material.
- This will produce localizations as some material fails.
-\end_layout
-
-\begin_layout Enumerate
-Copy 
-\family typewriter
-mymulti_material.xml
-\family default
- to 
-\family typewriter
-myyielding.xml
-\end_layout
-
-\begin_layout Enumerate
-Add a 
-\family typewriter
-StrainWeakening
-\family default
- component and a 
-\family typewriter
-MohrCoulomb
-\family default
- component
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="strainWeakening">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StrainWeakening</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="softeningStrain">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageFraction">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageWavenumber">0.5</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageFactor">0.5</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="healingRate">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="yielding">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MohrCoulomb</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="PressureField">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="VelocityGradientsField">VelocityGradientsField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Context">context</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="StrainWeakening">strainWeakening</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cohesion">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cohesionAfterSoftening">0.0001</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="frictionCoefficient">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="frictionCoefficientAfterSoftening">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="minimumYieldStress">0.00001</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-Finally, remove the existing viscous 
-\family typewriter
-RheologyMaterial
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-<struct name="viscous">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">nonSphereShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="density">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>backgroundViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>storeViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and replace it with a yielding 
-\family typewriter
-RheologyMaterial
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="crust">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">nonSphereShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>backgroundViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>yielding</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>storeViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\end_deeper
-\begin_layout Standard
-A worked example is in 
-\family typewriter
-input/cookbook/yielding.xml
-\family default
-.
- A visualization of the strain rate invariant and velocity (see Section
- 
-\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
-
-\end_inset
-
-) is shown in Figure 
-\begin_inset LatexCommand \ref{fig:strain-yield}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_yielding.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:strain-yield}
-
-\end_inset
-
-Strain rate invariant and velocities of yielding material in extension
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-A visualization of the viscosity of the particles is shown in Figure 
-\begin_inset LatexCommand \ref{fig:Viscosity-of-yielding}
-
-\end_inset
-
-,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_yielding_viscosity.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Viscosity-of-yielding}
-
-\end_inset
-
-Viscosity of yielding material in extension
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-and a visualization of the yielding of the particles is shown in Figure
- 
-\begin_inset LatexCommand \ref{fig:Degree-of-yielding}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/Paraview_yielding_yielding.png
-	lyxscale 75
-	scale 75
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Degree-of-yielding}
-
-\end_inset
-
-Degree of yielding of yielding material in extension
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Modifying Gale
-\begin_inset LatexCommand \label{cha:Modifying-Gale}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-If you wish to change material properties, here is a brief overview of how
- to modify the code.
- The following is currently lacking in many areas, but will be expanded
- and refined in future releases.
- 
-\end_layout
-
-\begin_layout Section
-Software Components of Gale
-\end_layout
-
-\begin_layout Standard
-Gale makes use of several physics libraries, including StGermain, StgFEM,
- PiCellerator, and UnderWorld.
- These are proven, capable, open-source finite element method libraries
- written by the Victorian Partnership for Advanced Computing (VPAC) and
- Louis Moresi's group at Monash University (see Fig 
-\begin_inset LatexCommand \ref{fig:Mapping-between-MicroFEM}
-
-\end_inset
-
-).
- Gale also makes use of PETSc, a suite of data structures and routines for
- the parallel solution of scientific applications modeled by partial differentia
-l equations.
- 
-\end_layout
-
-\begin_layout Subsection
-StGermain 
-\end_layout
-
-\begin_layout Standard
-StGermain provides an infrastructure that can be used to create reusable,
- collaborative computational development environments.
- It aims to provide the efficiency and style of coding near that of traditional
- HPC as well as new techniques and methods in scientific computing.
- Effectively, it is the application of contemporary software engineering
- on multi-disciplinary computational research.
- In particular, StGermain can be used in the development of computational
- finite element codes.
- It permits the interchanging of numerical schemes without having to change
- the problem description or the constitutive rules utilized.
- It also allows numerical schemes and constitutive rules to be reused for
- different problems in different disciplines.
- Scientists can then switch to new computational technologies as they become
- available.
- StGermain also capitalizes on the resources invested in software development
- on a research project, rendering that software effectively reusable for
- subsequent projects.
- In turn, intellectual property, skills and adaptability of the recipients
- develop over time.
- 
-\begin_inset LatexCommand \htmlurl[StGermain Web Site]{csd.vpac.org/twiki/bin/view/Stgermain/WebHome}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-PETSc
-\end_layout
-
-\begin_layout Standard
-PETSc, the Portable, Extensible Toolkit for Scientific Computation, is a
- suite of data structures and routines for the uni- and parallel-processor
- solution of large-scale scientific application problems modeled by partial
- differential equations.
- It employs the MPI standard for all message-passing communication.
- 
-\begin_inset LatexCommand \htmlurl[PETSc Web Site]{www-unix.mcs.anl.gov/petsc/petsc-as/}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Caption
-\begin_inset LatexCommand \label{fig:Mapping-between-MicroFEM}
-
-\end_inset
-
-Mapping between MicroFEM and Gale
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename ../../Gale/documentation/images/GALE_imag.eps
-	lyxscale 80
-	scale 80
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-StgFEM 
-\end_layout
-
-\begin_layout Standard
-StgFEM uses the StGermain philosophy of reusability and collaborative developmen
-t to create a finite element problem composer in terms of both the linear
- system to be solved and the finite element discretization of the problem
- domain.
- The composition can be described in XML and could be represented in a network
- diagram with an appropriate tool.
- StgFEM describes finite element systems for various formulations in a manner
- that can allow the underlying numerics to be interchanged.
- 
-\begin_inset LatexCommand \htmlurl[StgFEM Web Site]{csd.vpac.org/twiki/bin/view/Stgfem/WebHome}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-PiCellerator 
-\end_layout
-
-\begin_layout Standard
-PICellerator (Particle In Cellerator), a Lagrangian Integration Point Finite
- Element framework, is implemented as an integration scheme substitute for
- the default Gaussian scheme implemented in StgFEM.
- The PICellerator concept has since grown to become a general Lagrangian
- integration scheme framework and a Lagrangian constitutive rule framework.
- The PIC scheme is provided and other Arbitrary Lagrangian Eulerian schemes
- are in development.
- Constitutive rules are reusable across these schemes.
- 
-\begin_inset LatexCommand \htmlurl[PICellerator Web Site]{csd.vpac.org/twiki/bin/view/PICellerator/WebHome}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-UnderWorld 
-\end_layout
-
-\begin_layout Standard
-UnderWorld is a StGermain parallel modeling framework Geoscience research
- code which utilizes a Lagrangian particle-in-cell finite element scheme
- (the prototype of which is the Ellipsis code), visualised using gLucifer.
- UnderWorld (Monash University), StGermain (Victorian Partnership for Advanced
- Computing or VPAC) and gLucifer (Monash University) are under development
- as part of the Australian Computational Earth Systems Simulator (ACcESS),
- an Australian Government National Research Facility, a node of which is
- located at the Australian Crustal Research Centre (ACRC) at Monash University
- (Clayton Campus).
- 
-\begin_inset LatexCommand \htmlurl[UnderWorld Web Site]{wasabi.maths.monash.edu.au/twiki/view/Software/Underworld}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-System Description
-\end_layout
-
-\begin_layout Standard
-Gale uses StgFEM to formulate implicit finite element systems, with the
- bulk of the information placed in a stiffness matrix and a force vector.
- Depending on the type of solver used, there may be several matrices and
- vectors.
- The stiffness matrix class has a member whose purpose is to assemble the
- entire matrix.
- It does this through the use of 
-\begin_inset Quotes eld
-\end_inset
-
-stiffness matrix terms.
-\begin_inset Quotes erd
-\end_inset
-
- The 
-\family typewriter
-StiffnessMatrixTerm
-\family default
- class provides an interface through which the elemental contributions to
- the matrix may be influenced.
- In typical fluid flow systems, the majority of the physics is applied to
- the model through constitutive laws which modify the stiffness matrix to
- reflect certain physical situations.
- The 
-\family typewriter
-ConstitutiveMatrix
-\family default
- class inherits from 
-\family typewriter
-StiffnessMatrixTerm
-\family default
-, providing an interface tailored to implementing material-based continuum
- physics.
- 
-\end_layout
-
-\begin_layout Standard
-So, where does the actual physics take place? The answer is in the Rheology
- class, but first look at the PIC (particle in cell) scheme.
- There are a number of benefits to using a PIC scheme, but the main use
- is to store material properties on each particle.
- These properties can then be used to drive our constitutive laws, in turn
- modifying the produced stiffness matrices.
- For each defined material in the domain, there may be a number of associated
- rheological laws.
- Whenever an element in the system is assembled, each stiffness matrix term
- is evaluated, implying that the constitutive matrix will be evaluated for
- each element.
- For each particle internal to an element, the 
-\family typewriter
-ConstitutiveMatrix
-\family default
- class will evaluate all associated rheologies, each rheology modifying
- the constitutive matrix.
- 
-\end_layout
-
-\begin_layout Standard
-Modifying the constitutive matrix takes place in the form of viscosity values.
- In this, probably the simplest of rheological laws, the 
-\family typewriter
-ModifyConstitutiveMatrix
-\family default
- method simply sets a specific viscosity value for the current element/material
- point tuple.
- 
-\end_layout
-
-\begin_layout Section
-Sample Rheologies 
-\end_layout
-
-\begin_layout Subsection
-Simple Viscous 
-\end_layout
-
-\begin_layout Standard
-This excerpt is taken from the file 
-\family typewriter
-src/Underworld/Rheology/src/MaterialViscosity.c
-\family default
-.
- It has been inherited from the Rheology class and thus possesses a virtual
- method named 
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-MaterialViscosity_ModifyConstitutiveMatrix
-\family default
- 
-\end_layout
-
-\begin_layout Standard
-which has been overridden to set the viscosity in the constitutive matrix,
- as follows: 
-\end_layout
-
-\begin_layout LyX-Code
-void _MaterialViscosity_ModifyConstitutiveMatrix( 
-\end_layout
-
-\begin_layout LyX-Code
-   void*                rheology, 
-\end_layout
-
-\begin_layout LyX-Code
-   ConstitutiveMatrix*  constitutiveMatrix, 
-\end_layout
-
-\begin_layout LyX-Code
-   MaterialPointsSwarm* swarm,
-\end_layout
-
-\begin_layout LyX-Code
-   Element_LocalIndex   lElement_I,
-\end_layout
-
-\begin_layout LyX-Code
-   MaterialPoint*       materialPoint,
-\end_layout
-
-\begin_layout LyX-Code
-   Coord                xi )
-\end_layout
-
-\begin_layout LyX-Code
-{
-\end_layout
-
-\begin_layout LyX-Code
-   MaterialViscosity* self = (MaterialViscosity*)rheology;
-\end_layout
-
-\begin_layout LyX-Code
-   ConstitutiveMatrix_SetIsotropicViscosity( constitutiveMatrix,
-\end_layout
-
-\begin_layout LyX-Code
-                                             self->eta0 );
-\end_layout
-
-\begin_layout LyX-Code
-}
-\end_layout
-
-\begin_layout Standard
-The parameters passed to this method provide access to the rheology class's
- members/methods, the constitutive matrix, the swarm (material points),
- the index of the element currently being assembled, the material point
- currently being evaluated, and the material point's elemental coordinates.
-\end_layout
-
-\begin_layout Chapter
-\start_of_appendix
-Input File Format
-\begin_inset LatexCommand \label{cha:Input-File-Format}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Structure
-\end_layout
-
-\begin_layout Standard
-The input files are XML files.
- This leverages a well known format to specify concepts like hierarchies,
- lists, parameters, and arbitrary structures.
- The entire document is placed withing a 
-\family typewriter
-StGermainData
-\family default
- structure.
-\end_layout
-
-\begin_layout LyX-Code
-<?xml version="1.0"?>
-\end_layout
-
-\begin_layout LyX-Code
-<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout LyX-Code
-</StGermainData>
-\end_layout
-
-\begin_layout Standard
-Within that structure, there are five main parts of every Gale input file:
- the components, the plugins, EulerDeform, Velocity Conditions, and the
- variables.
-\end_layout
-
-\begin_layout Subsection
-Components
-\begin_inset LatexCommand \label{sub:Components}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The components section is separated off from the rest of the file with an
- enclosing 
-\family typewriter
-components
-\family default
- structure.
- This 
-\family typewriter
-components
-\family default
- structure is where the bulk of the file will be.
- It specifies things like what the mesh will be like, which material goes
- where, what the material properties are, what kind of solver to use, etc.
- Most of the ideas you need to specify your problem will go into the components.
- When adding a new component, it is important to remember to put the new
- component inside the components structure.
- Otherwise Gale will (silently) not use that component.
- For example, an input file such as
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="components">
-\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>
-\end_layout
-
-\begin_layout Standard
-will correctly initialize 
-\family typewriter
-StgFEM_StandardConditionFunctions
-\family default
-, but the input file
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="components">
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\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 Standard
-will not.
-\end_layout
-
-\begin_layout Subsection
-Plugins
-\begin_inset LatexCommand \label{sub:Plugins}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Gale also has the ability to load modules during runtime.
- To use these plugins, simply list them in a section outside of the 
-\family typewriter
-components
-\family default
- structure.
- For example, the following lines will enable the 
-\family typewriter
-DumpSwarm
-\family default
-, 
-\family typewriter
-EulerDeform
-\family default
-,and 
-\family typewriter
-VTKOutput
-\family default
- plugins
-\end_layout
-
-\begin_layout LyX-Code
-<list name="plugins">
-\end_layout
-
-\begin_layout LyX-Code
-  <param>Underworld_EulerDeform</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param>Underworld_DumpSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param>Underworld_VTKOutput</param>
-\end_layout
-
-\begin_layout LyX-Code
-</list> 
-\end_layout
-
-\begin_layout Standard
-Dynamically loading modules is, in general, difficult to get working on
- multiple platforms.
- To make things easier, Gale is bundled with a number of plugins compiled
- into the code and ready to use:
-\end_layout
-
-\begin_layout LyX-Code
-StgFEM_FrequentOutput
-\end_layout
-
-\begin_layout LyX-Code
-StgFEM_CPUTime
-\end_layout
-
-\begin_layout LyX-Code
-Underworld_MovingMesh
-\end_layout
-
-\begin_layout LyX-Code
-Underworld_Vrms
-\end_layout
-
-\begin_layout LyX-Code
-Underworld_EulerDeform
-\end_layout
-
-\begin_layout LyX-Code
-StgFEM_PrintFeVariableDiscreteValues
-\end_layout
-
-\begin_layout LyX-Code
-Underworld_DumpSwarm
-\end_layout
-
-\begin_layout LyX-Code
-Underworld_VTKOutput
-\end_layout
-
-\begin_layout Standard
-Note that you must still include those plugins in the list of plugins in
- order to use them.
- You can add additional plugins by modifying the list of static plugins
- in 
-\family typewriter
-src/Gale/src/main.c
-\family default
- and making sure that the plugin is compiled into the Gale executable.
-\end_layout
-
-\begin_layout Standard
-If you want to use dynamically loaded plugins, make sure that you compiled
- with shared libraries (use the 
-\family typewriter
---with-shared
-\family default
- option when compiling) and set your 
-\family typewriter
-LD_LIBRARY_PATH 
-\family default
-environment variable appropriately.
-\end_layout
-
-\begin_layout Subsection
-EulerDeform
-\begin_inset LatexCommand \label{sub:EulerDeform}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-Underworld_EulerDeform
-\family default
- component allows the upper surface to move freely or stay rigidly in place.
- An example 
-\family typewriter
-EulerDeform
-\family default
- struct is
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="EulerDeform">
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="systems">
-\end_layout
-
-\begin_layout LyX-Code
-    <struct>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="mesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="remesher">pressureRemesher</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="velocityField">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <list name="fields">
-\end_layout
-
-\begin_layout LyX-Code
-        <struct> 
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="field">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="variable">pressure</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 LyX-Code
-    <struct>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="remesher">velocityRemesher</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="velocityField">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="wrapTop">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <list name="fields">
-\end_layout
-
-\begin_layout LyX-Code
-        <struct>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="field">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="variable">velocity</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 LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-This tells Gale to remesh both the pressure and velocity field.
- The components 
-\family typewriter
-\size small
-pressureRemesher
-\family default
-, 
-\family typewriter
-velocityRemesher
-\family default
-, 
-\family typewriter
-pressureField
-\family default
-, 
-\family typewriter
-velocityField
-\family default
-, 
-\family typewriter
-pressure
-\family default
-\size default
-, and
-\size small
- 
-\family typewriter
-velocity
-\family default
-\size default
- all must be defined earlier (see Section 
-\begin_inset LatexCommand \ref{sub:Components}
-
-\end_inset
-
-).
- 
-\end_layout
-
-\begin_layout Standard
-Note the critical line
-\end_layout
-
-\begin_layout LyX-Code
-<param name="wrapTop">True</param>
-\end_layout
-
-\begin_layout Standard
-that tells Gale to make 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
-Additionally, Gale can 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.
- 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
- boundary would quickly become distorted and ruin the simulation.
- To fix the right boundary, set the variable 
-\family typewriter
-staticRight
-\family default
- to 
-\family typewriter
-True
-\end_layout
-
-\begin_layout LyX-Code
-<param name="staticRight">True</param>
-\end_layout
-
-\begin_layout Standard
-Similarly, you can independently set the left, top, bottom, front, and back
- boundaries.
-\end_layout
-
-\begin_layout Standard
-Note that you must include 
-\family typewriter
-Underworld_EulerDeform
-\family default
- in the list of plugins (see Section 
-\begin_inset LatexCommand \ref{sub:Plugins}
-
-\end_inset
-
-) in order for this section to have any effect.
-\end_layout
-
-\begin_layout Subsection
-Velocity Boundary Conditions
-\end_layout
-
-\begin_layout Standard
-This section specifies what the boundary conditions on the velocity will
- be.
- See Section 
-\begin_inset LatexCommand \ref{sub:Velocity-Boundary-Conditions}
-
-\end_inset
-
- for more details.
-\end_layout
-
-\begin_layout Subsection
-Variables
-\begin_inset LatexCommand \label{sub:Variables}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The last section is where most of our numeric constants are placed.
- For example, how many time steps, how often to print output, etc.
- You may also declare variables for convenience (e.g., the number of grid
- points) and use it elsewhere, such as in the components.
- If you are using the basic set of components, then the more important parameter
-s are:
-\end_layout
-
-\begin_layout Description
-maxTimeSteps The number of time steps to take in the simulation.
- Each time step can cover a different amount of time.
- Gale determines how big of a step to take by dividing the grid size by
- the largest velocity during that time step.
- Unfortunately, there is no way to stop at a maximum time.
-\end_layout
-
-\begin_layout Description
-dumpEvery How often DumpSwarm dumps information to files.
-\end_layout
-
-\begin_layout Description
-checkPointEvery How often to dump every variable to files.
-\end_layout
-
-\begin_layout Description
-outputPath The directory to put output files in.
-\end_layout
-
-\begin_layout Description
-dim The number of dimensions of the problem (2 or 3).
-\end_layout
-
-\begin_layout Description
-minX,minY,minZ,maxX,maxY,maxZ The physical size of the box you are simulating.
- Note that this may be modified by 
-\family typewriter
-SurfaceAdaptor
-\family default
- (Section 
-\begin_inset LatexCommand \ref{sec:Deformed-Upper-Boundary}
-
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-elementResI,elementResJ,elementResK The number of elements in each direction.
- Note that the number of grid points is one larger (e.g., 64 elements -> 65
- grid points).
-\end_layout
-
-\begin_layout Description
-shadowDepth When running in parallel, every parameter only computes quantities
- over a portion of the grid.
- To do this, each processor must keep copies of points that belong to other
- processors.
- This parameter specifies how wide the region of copied points is.
- You should never need to change this from 1.
-\end_layout
-
-\begin_layout Description
-gaussParticlesX,gaussParticlesY,gaussParticlesZ The number of particles
- in each direction when putting down particles using a Gaussian distribution.
- You should never need to change this number.
-\end_layout
-
-\begin_layout Description
-particlesPerCell The ideal number of particles in each element.
- Gale will attempt to keep the number of particles in each element close
- to this number.
- You need to vary this number to gauge how sensitive the results of our
- simulation are to this number.
-\end_layout
-
-\begin_layout Section
-Basic Components
-\begin_inset LatexCommand \label{sec:Basic-Components}
-
-\end_inset
-
-
-\end_layout
-
-\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
- 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 you have to include a number of components in every input file.
- These components are
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="mesh-constant">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">FeMesh</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="elementType">constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="constantMesh-generator">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">C0Generator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="elementMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="mesh-linear">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">FeMesh</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="elementType">linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="linearMesh-generator">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">CartesianGenerator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="dim">dim</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="shadowDepth">shadowDepth</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="size">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>elementResI</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>elementResJ</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>elementResK</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="minCoord">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>minX</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>minY</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>minZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="maxCoord">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>maxX</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>maxY</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>maxZ</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MeshVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Rank">Vector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="DataType">Double</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="VectorComponentCount">dim</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="names">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vx</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vy</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vz</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityBCs">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">CompositeVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Data">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityICs">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">CompositeVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Data">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityDofLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">DofLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="BaseVariableCount">dim</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="BaseVariables">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vx</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vy</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>vz</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">FeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FEMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="DofLayout">velocityDofLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="BC">velocityBCs</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="IC">velocityICs</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="LinkedDofInfo">velocityLinkedDofs</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityMagnitudeField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">Magnitude</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityGradientsField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">Gradient</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityGradientsInvariantField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TensorInvariant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityGradientsField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityXXField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TakeFirstComponent</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VelocityYYField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TakeSecondComponent</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="StrainRateField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TensorSymmetricPart</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityGradientsField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="VorticityField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TensorAntisymmetricPart</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityGradientsField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="StrainRateInvariantField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">SymmetricTensor_Invariant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">StrainRateField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="StrainRateXXField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TakeFirstComponent</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">StrainRateField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="StrainRateYYField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">OperatorFeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Operator">TakeSecondComponent</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">StrainRateField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="pressure">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MeshVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Rank">Scalar</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="DataType">Double</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="pressureDofLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">DofLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="BaseVariables">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>pressure</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="PressureField">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">FeVariable</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FEMesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="DofLayout">pressureDofLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="LinkedDofInfo">pressureLinkedDofs</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="cellLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">SingleCellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="particleLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">GaussParticleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="gaussSwarm">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">IntegrationPointsSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CellLayout">cellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ParticleLayout">particleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="IntegrationPointMapper">gaussMapper</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="gaussMapper">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">GaussMapper</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="IntegrationPointsSwarm">gaussSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="backgroundLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">BackgroundParticleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="gaussMaterialSwarm">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MaterialPointsSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CellLayout">cellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ParticleLayout">backgroundLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="timeIntegrator">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">TimeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="order">1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="simultaneous">t</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Context">context</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="elementCellLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ElementCellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="weights">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">PCDVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="resolutionX">10</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="resolutionY">10</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="resolutionZ">10</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="lowerT">0.6</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="upperT">25</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="maxDeletions">3</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="maxSplits">3</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="localLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MappedParticleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="picIntegrationPoints">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">IntegrationPointsSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CellLayout">elementCellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ParticleLayout">localLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="WeightsCalculator">weights</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="IntegrationPointMapper">mapper</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="mapper">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">CoincidentMapper</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="materialSwarmParticleLayout">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MeshParticleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cellParticleCount">particlesPerCell</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="materialSwarm">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MaterialPointsSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CellLayout">elementCellLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ParticleLayout">materialSwarmParticleLayout</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="SplittingRoutine">splittingRoutine</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RemovalRoutine">removalRoutine</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="EscapedRoutine">escapedRoutine</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="materialSwarmAdvector">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">SwarmAdvector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Swarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="VelocityField">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="PeriodicBCsManager">periodicBCsManager</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="allowFallbackToFirstOrder">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="splittingRoutine">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ReseedSplitting</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="idealParticleCount">particlesPerCell</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="solutionVelocity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">SolutionVector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="solutionPressure">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">SolutionVector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="mom_force">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ForceVector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ExtraInfo">context</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="cont_force">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ForceVector</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="FeVariable">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ExtraInfo">context</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="k_matrix">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StiffnessMatrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RowVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ColumnVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RHS">mom_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="allowZeroElementContributions">False</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="constitutiveMatrix">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">ConstitutiveMatrixCartesian</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Swarm">picIntegrationPoints</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="StiffnessMatrix">k_matrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="g_matrix">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StiffnessMatrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RowVariable">VelocityField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ColumnVariable">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RHS">cont_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="allowZeroElementContributions">False</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="gradientStiffnessMatrixTerm">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">GradientStiffnessMatrixTerm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Swarm">gaussSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="StiffnessMatrix">g_matrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="preconditioner">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StiffnessMatrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RowVariable">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ColumnVariable">PressureField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="RHS">cont_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="allowZeroElementContributions">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="preconditionerTerm">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">UzawaPreconditionerTerm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Swarm">picIntegrationPoints</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="StiffnessMatrix">preconditioner</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="uzawa">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Stokes_SLE_UzawaSolver</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Preconditioner">preconditioner</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="tolerance">1.0e-5</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="maxIterations">5000</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="stokesEqn">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Stokes_SLE</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="SLE_Solver">uzawa</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Context">context</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="StressTensorMatrix">k_matrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="GradientMatrix">g_matrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="DivergenceMatrix"></param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="CompressibilityMatrix">c_matrix</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="VelocityVector">solutionVelocity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="PressureVector">solutionPressure</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ForceVector">mom_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="ContinuityForceVector">cont_force</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="killNonConvergent">false</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="nonLinearTolerance">nonLinearTolerance</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="makeConvergenceFile">false</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="background">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Everywhere</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="escapedRoutine">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">EscapedRoutine</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="idealParticleCount">0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityRemesher">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StripRemesher</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="meshType">regular</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="dim">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>true</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>true</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>true</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="pressureRemesher">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">CellRemesher</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="mesh">mesh-constant</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="meshType">regular</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="dim">3</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cellMesh">mesh-linear</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Standard
-For almost all simulations, you will not need to change these components.
-\end_layout
-
-\begin_layout Section
-Shapes
-\begin_inset LatexCommand \label{sec:Shapes}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-When setting up a simulation, Gale reads in shapes to determine what to
- put where.
- For example, you can create a simulation with different materials by creating
- different shapes and putting different materials in them.
- As a simple example, you can create a 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
-You can perform operations on shapes to create new shapes.
- For example, if you 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 you 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 ``!'' in front of 
-\family typewriter
-simpleSphere
-\family default
- means ``not.'' So 
-\family typewriter
-Intersection
-\family default
- creates a shape that is the intersection of the box and everywhere outside
- of the sphere.
- You can list an arbitrary number of shapes in 
-\family typewriter
-Intersection
-\family default
-.
- Also, you 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 you 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 Subsection
-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
-
-
-\newline
-
-\newline
-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.
-\newline
-
-\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 Subsection
-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, you 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.
- 
-\newline
-
-\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 Subsection
-ConvexHull
-\end_layout
-
-\begin_layout Standard
-This shape is a convenience function for creating intersections of 
-\family typewriter
-BelowPlane
-\family default
-.
- 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, you 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 Subsection
-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 Subsection
-Everywhere
-\end_layout
-
-\begin_layout Standard
-This is a convenience shape simply meaning everywhere.
-\end_layout
-
-\begin_layout Subsection
-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 you specify vertices.
- 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
-You can extrude this shape into three dimensions by specifying startZ and
- endZ.
-\newline
-
-\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 Subsection
-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 Subsection
-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
-
-
-\newline
-
-\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
-\begin_inset LatexCommand \label{sec:Materials}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Gale supports two kinds of rheologies: viscous and yielding.
- You can combine these two rheologies to create a more realistic composite
- rheology.
- You then pair this composite rheology with a shape to actually lay down
- material on the grid.
- As a simple example, you can create a viscous rheology
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="viscousRheology">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">MaterialViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="eta0">10.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and a Von Mises yielding rheology
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="strainWeakening">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StrainWeakening</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="softeningStrain">0.1</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageFraction">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageWavenumber">0.5</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDamageFactor">0.5</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="healingRate">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\newline
-
-\newline
-<struct name="yieldingRheology">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">VonMises</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cohesion">10.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="cohesionAfterSoftening">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and combine them together with 
-\family typewriter
-materialShape
-\family default
- (see Section 
-\begin_inset LatexCommand \ref{sec:Shapes}
-
-\end_inset
-
- on how to create shapes)
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="yieldingMaterial">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">yieldingShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>viscousRheology</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>yieldingRheology</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-To output the effective isotropic viscosity, you have to add a 
-\family typewriter
-StoreVisc
-\family default
- component
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="storeViscosity">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">StoreVisc</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-and then add that to the material
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="yieldingMaterial">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">RheologyMaterial</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Shape">yieldingShape</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="Rheology">
-\end_layout
-
-\begin_layout LyX-Code
-    <param>storeViscosity</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>viscousRheology</param>
-\end_layout
-
-\begin_layout LyX-Code
-    <param>yieldingRheology</param>
-\end_layout
-
-\begin_layout LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Subsection
-StoreVisc
-\begin_inset LatexCommand \label{sub:StoreViscosity}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This is not a rheology per se, but rather it is an extra field where Gale
- saves the effective isotropic viscosity.
- For pure viscous materials, this will be the same as the viscosity you
- supply.
- For yielding rheologies, the effective viscosity will change as the particle
- yields.
- This component needs a 
-\family typewriter
-MaterialPointsSwarm
-\family default
-, which in all of the sample input files is called 
-\family typewriter
-materialSwarm
-\family default
-.
-\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
-MaterialPointsSwarm
-\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 Subsection
-Viscous
-\end_layout
-
-\begin_layout Subsubsection
-MaterialViscosity
-\end_layout
-
-\begin_layout Standard
-This is the simplest rheology.
- There is only one variable, the viscosity 
-\family typewriter
-eta0
-\family default
-.
-\newline
-
-\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
-eta0
-\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 Subsubsection
-Frank-Kamenetskii
-\end_layout
-
-\begin_layout Standard
-This is a temperature-dependent viscosity
-\begin_inset Formula \[
-eta=eta0*\exp\left(-theta*T\right).\]
-
-\end_inset
-
-
-\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
-eta0
-\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
-theta
-\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 Subsection
-Yielding
-\end_layout
-
-\begin_layout Standard
-Yielding rheologies are a bit more complicated.
- 
-\end_layout
-
-\begin_layout Subsubsection
-StrainWeakening
-\end_layout
-
-\begin_layout Standard
-First you need to create a 
-\family typewriter
-StrainWeakening
-\family default
- component.
- 
-\family typewriter
-StrainWeakening
-\family default
- is mainly used to define an initial distribution of strain in a material
- and to calculate the accumulated strain on each particle.
- To that end, it requires a number of parameters.
-\end_layout
-
-\begin_layout Description
-TimeIntegrator This is the component used for time integration to accumulate
- strain.
- Given the standard components in Section 
-\begin_inset LatexCommand \ref{sec:Basic-Components}
-
-\end_inset
-
-, this will be 
-\family typewriter
-timeIntegrator
-\family default
-.
-\end_layout
-
-\begin_layout Description
-MaterialPointsSwarm This is the swarm of particles that this rheology will
- tie itself to.
- Given the standard components in Section 
-\begin_inset LatexCommand \ref{sec:Basic-Components}
-
-\end_inset
-
-, this will be 
-\family typewriter
-materialSwarm
-\family default
-.
-\end_layout
-
-\begin_layout Description
-healingRate With this parameter, accumulated strain can decrease.
- Specifically, the time derivative of accumulated strain becomes
-\begin_inset Formula \[
-\frac{\sigma_{yield}}{\eta}\left(\frac{\beta}{1-\beta}-healingRate\right),\]
-
-\end_inset
-
- where 
-\begin_inset Formula $\beta\equiv\sigma_{yield}/\sigma$
-\end_inset
-
-, 
-\begin_inset Formula $\sigma_{yield}$
-\end_inset
-
- is the yield stress, 
-\begin_inset Formula $\sigma$
-\end_inset
-
- is some measure of the current stress (e.g., the second invariant of the
- stress tensor), and 
-\begin_inset Formula $\eta$
-\end_inset
-
- is the isotropic viscosity.
- Note that the healing rate should be between 0 and 1.
-\end_layout
-
-\begin_layout Description
-softeningStrain The strain at which the material has fully yielded.
-\end_layout
-
-\begin_layout Description
-initialDamageFraction The chance that an individual material particle will
- have a non-zero initial strain.
-\end_layout
-
-\begin_layout Description
-initialDamageWaveNumber The wavenumber for the initial random strain.
- To avoid having initial strain on the edges of the box, this should be
- set to the inverse of the horizontal length of the box.
-\end_layout
-
-\begin_layout Description
-initialDamageFactor The maximum initial random strain for a particle is
-\newline
-
-\family typewriter
-initialDamageFactor
-\family default
-*
-\family typewriter
-softeningStrain
-\family default
-.
- 
-\end_layout
-
-\begin_layout Description
-randomSeed A random number seed used when computing which particles are
- initially strained.
-\end_layout
-
-\begin_layout Description
-initialStrainShape If defined, the initial random strain will only occur
- within this shape (outside the shape the initial random strain will be
- zero).
-\end_layout
-
-\begin_layout Standard
-You can also define a strain weakening ratio 
-\begin_inset Formula $\alpha\equiv\min\left(1,\gamma/\gamma_{softening}\right)$
-\end_inset
-
-, where 
-\begin_inset Formula $\gamma$
-\end_inset
-
- is the accumulated strain, and 
-\begin_inset Formula $\gamma_{softening}$
-\end_inset
-
- is the softening strain.
- This allows us to define quantities like the effective cohesion 
-\begin_inset Formula $C_{effective}\equiv C_{pristine}\left(1-\alpha\right)+C_{yielded}\alpha$
-\end_inset
-
- and effective friction coefficient 
-\begin_inset Formula $\phi_{effective}=\phi_{pristine}\left(1-\alpha\right)+\phi_{yielded}\alpha$
-\end_inset
-
-.
-\newline
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="10" 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
-TimeIntegrator
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-none
-\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
-MaterialPointsSwarm
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-none
-\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
-healingRate
-\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
-softeningStrain
-\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
-initialDamageFraction
-\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
-initialDamageWaveNumber
-\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.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
-initialDamageFactor
-\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.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
-randomSeed
-\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 topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-initialStrainShape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-none
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-\begin_inset LatexCommand \label{sub:VonMises}
-
-\end_inset
-
-VonMises
-\end_layout
-
-\begin_layout Standard
-This is the simplest yielding rheology in Gale.
- The yielding stress is simply the effective cohesion, so this rheology
- only has a few input parameters:
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-cohesion
-\family default
- and 
-\family typewriter
-cohesionAfterSoftening
-\family default
- have the obvious meanings.
- 
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-minimumYieldStress
-\family default
- sets an absolute minimum to the stress required to make the material yield.
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-StrainRateSoftening
-\family default
- is a Boolean variable that changes how the constitutive matrix is modified
- when the material has yielded.
- If 
-\family typewriter
-StrainRateSoftening
-\family default
- is 
-\family typewriter
-True
-\family default
-, then the viscosity is set to 
-\begin_inset Formula \[
-\eta_{effective}=2\sigma_{yield}^{2}\eta/\left(\sigma_{yield}^{2}+I_{2}^{2}\right),\]
-
-\end_inset
-
- where 
-\begin_inset Formula $I_{2}$
-\end_inset
-
- is the second invariant of the stress tensor.
- Otherwise the viscosity is set to
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-\begin_inset Formula \[
-\eta_{effective}=\eta\sigma_{yield}/I_{2},\]
-
-\end_inset
-
- which essentially sets the stress of the particle to the yield stress.
-\newline
-
-\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
-cohesion
-\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
-cohesionAfterSoftening
-\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
-minimumYieldStress
-\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
-StrainRateSoftening
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-False
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_deeper
-\begin_layout Subsubsection
-DruckerPrager
-\end_layout
-
-\begin_layout Standard
-This rheology uses the same parameters as Von Mises, but also adds a friction
- coefficient that can soften.
- Specifically, the yield stress becomes
-\begin_inset Formula \[
-\sigma_{yield}=\alpha p+C_{p},\]
-
-\end_inset
-
-where 
-\begin_inset Formula \[
-\begin{array}{ccc}
-C_{p} & = & \frac{6C_{effective}\cos\phi_{effective}}{\sqrt{3}\left(3-\sin\phi_{effective}\right)}\\
-\alpha & = & \frac{6\sin\phi_{effective}}{\sqrt{3}\left(3-\sin\phi_{effective}\right)}\end{array},\]
-
-\end_inset
-
-and 
-\begin_inset Formula $p$
-\end_inset
-
- is the pressure.
- 
-\newline
-
-\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
-frictionCoefficient
-\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
-frictionCoefficientAfterSoftening
-\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
-
-
-\newline
-
-\end_layout
-
-\begin_layout Standard
-(See also 
-\begin_inset LatexCommand \ref{sub:VonMises}
-
-\end_inset
-
-.)
-\end_layout
-
-\begin_layout Subsubsection
-MohrCoulomb
-\end_layout
-
-\begin_layout Standard
-This rheology is like Drucker-Prager, but it uses the actual normal stress
- instead of inferring a normal stress from the pressure.
- More explicitly, the yield shear stress is 
-\begin_inset Formula \[
-\sigma_{yield}=\sigma_{n}\tan\phi_{effective}+C_{effective}.\]
-
-\end_inset
-
- When the material is yielding, the viscosity is modified so that the stress
- on the particle is the yield stress.
-\newline
-
-\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
-cohesion
-\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
-cohesionAfterSoftening
-\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
-frictionCoefficient
-\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
-frictionCoefficientAfterSoftening
-\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
-minimumYieldStress
-\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
-FaultingMoresiMulhaus2006
-\end_layout
-
-\begin_layout Standard
-This is a fairly complicated non-isotropic rheology.
- The full details can be found in Moresi and Mülhaus (2006) 
-\begin_inset LatexCommand \cite{Moresi faulting}
-
-\end_inset
-
-, but essentially it keeps track of which direction a material is strained.
- To do so, it uses a component called 
-\family typewriter
-Director
-\family default
-.
- For the standard components given in Section 
-\begin_inset LatexCommand \ref{sec:Basic-Components}
-
-\end_inset
-
-, this would be
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="director">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="Type">Director</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="TimeIntegrator">timeIntegrator</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="VelocityGradientsField">VelocityGradientsField</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="MaterialPointsSwarm">materialSwarm</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDirectionX">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDirectionY">1.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="initialDirectionZ">0.0</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="dontUpdate">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-Otherwise, it adds one variable not present in 
-\family typewriter
-MohrCoulomb
-\family default
-: 
-\family typewriter
-ignoreOldOrientation
-\family default
-.
- This tells Gale whether it should check to see whether material will weaken
- further in the current direction, or if it should try every direction equally
- each time step.
-\newline
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="7" 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
-cohesion
-\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
-cohesionAfterSoftening
-\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
-frictionCoefficient
-\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
-frictionCoefficientAfterSoftening
-\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
-minimumYieldStress
-\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
-ignoreOldOrientation
-\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 Section
-Boundary Conditions
-\end_layout
-
-\begin_layout Standard
-Gale's computational domain is logically Eulerian.
- So in 2D, there are four boundaries: 
-\family typewriter
-right
-\family default
-, 
-\family typewriter
-left
-\family default
-, 
-\family typewriter
-top
-\family default
-, and 
-\family typewriter
-bottom
-\family default
-.
- 3D adds 
-\family typewriter
-front
-\family default
- and 
-\family typewriter
-back
-\family default
-.
- Note that the boundaries in the 
-\begin_inset Formula $z$
-\end_inset
-
- axis are 
-\family typewriter
-front
-\family default
- and 
-\family typewriter
-back
-\family default
-, not 
-\family typewriter
-top
-\family default
- and 
-\family typewriter
-bottom
-\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 
-\begin_inset Formula $z$
-\end_inset
-
- boundaries are empty in 2D.
-\end_layout
-
-\begin_layout Subsection
-Velocity Boundary Conditions
-\begin_inset LatexCommand \label{sub:Velocity-Boundary-Conditions}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-To impose boundary conditions on the velocity, add a composite variable
- condition (CompositeVC) to the input file.
- Within that CompositeVC, add a list of conditions.
- Within each condition, specify which boundary and what the velocity's value
- is.
- For example, to set the 
-\begin_inset Formula $y$
-\end_inset
-
- velocity on the bottom to zero, add
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityBCs">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="type">CompositeVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="vcList">
-\end_layout
-
-\begin_layout LyX-Code
-    <struct>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="type">WallVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="wall">bottom</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <list name="variables">
-\end_layout
-
-\begin_layout LyX-Code
-        <struct>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="name">vy</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="type">double</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="value">0</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 LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\end_layout
-
-\begin_layout Standard
-If, instead, you set 
-\family typewriter
-vy
-\family default
- to a non-zero value, then the boundary will move as the simulation proceeds.
- If you want the sides to remain fixed, then you probably want flux boundaries,
- in which case you 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
-You can also set the velocity to a function.
- For example, to also set the 
-\begin_inset Formula $x$
-\end_inset
-
- velocity to have a Gaussian distribution 
-\begin_inset Formula $\exp\left(-\left(\frac{x-0.5}{0.1}\right)^{2}\right)$
-\end_inset
-
-
-\end_layout
-
-\begin_layout LyX-Code
-<struct name="velocityBCs">
-\end_layout
-
-\begin_layout LyX-Code
-  <param name="type">CompositeVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-  <list name="vcList">
-\end_layout
-
-\begin_layout LyX-Code
-    <struct>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="type">WallVC</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <param name="wall">bottom</param>
-\end_layout
-
-\begin_layout LyX-Code
-      <list name="variables">
-\end_layout
-
-\begin_layout LyX-Code
-        <struct>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="name">vy</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="type">double</param>
-\end_layout
-
-\begin_layout LyX-Code
-          <param name="value">0</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">Gaussian</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 LyX-Code
-  </list>
-\end_layout
-
-\begin_layout LyX-Code
-</struct>
-\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 Standard
-Note that the parameters are separated out into the variables section (see
- Section 
-\begin_inset LatexCommand \ref{sub:Variables}
-
-\end_inset
-
-).
- In general, you can use any of the Standard Condition Functions (see Section
- 
-\begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
-
-\end_inset
-
-) to specify the velocities.
-\end_layout
-
-\begin_layout Subsection
-Flux Boundary Conditions
-\begin_inset LatexCommand \label{sub:Flux-Boundary-Conditions}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Sometimes, you 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 you must specify for this to work.
-\end_layout
-
-\begin_layout Enumerate
-
-\series bold
-The boundaries do not move.
- 
-\series default
-For the slab subduction model, you need to ensure that neither the bottom
- nor left boundaries move.
- Do this by specifying
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-
-\family typewriter
-<param name="staticBottom">True</param>
-\newline
-<param name="staticLeft">True</param>
-\end_layout
-
-\begin_layout Standard
-in EulerDeform (see Section 
-\begin_inset LatexCommand \ref{sub:EulerDeform}
-
-\end_inset
-
-).
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-
-\series bold
-Velocity conditions on the boundaries.
-
-\series default
- 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
-
-\series bold
-A region where new particles are created, not split from existing particles.
-
-\series default
- 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, you can specify regions where particles should be created
- anew by adding something like
-\end_layout
-
-\begin_deeper
-\begin_layout LyX-Code
-
-\family typewriter
-<param name="originalParticleShape">leftBoundaryShape</param>
-\end_layout
-
-\begin_layout Standard
-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
-
-\end_deeper
-\begin_layout Subsection
-Stress Boundary Conditions
-\end_layout
-
-\begin_layout Standard
-If the nature of our problem is that stresses are specified on the boundary
- rather than velocities, you can specify those conditions using the 
-\family typewriter
-StressBC
-\family default
- component.
- For example, if you want to simulate an extension model that allows material
- to well up in the middle, then you 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
-You can also use the Standard Condition Functions (see Section 
-\begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
-
-\end_inset
-
-), but due to technical issues, you 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
-
-), add the parameters for the 
-\family typewriter
-Gaussian
-\family default
-:
-\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
-\begin_inset LatexCommand \label{sec:Deformed-Upper-Boundary}
-
-\end_inset
-
-
-\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, you can also tell Gale to start with an 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
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
-\end_layout
-
-\begin_layout Section
-Standard Condition Functions
-\begin_inset LatexCommand \label{sec:Standard-Condition-Functions}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Standard Condition Functions are functions that you can use to specify initial
- conditions and boundary conditions.
- 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/
-\family default
-.
- For the following descriptions, the sides of the box are at 
-\begin_inset Formula $x_{min}$
-\end_inset
-
- and 
-\begin_inset Formula $x_{max}$
-\end_inset
-
-, and 
-\begin_inset Formula $L\equiv x_{max}-x_{min}$
-\end_inset
-
-, and all names with CamelCase capitalization are variables from the input
- file.
-\end_layout
-
-\begin_layout Description
-Velocity_SolidBodyRotation Returns the coordinates rotated by 
-\family typewriter
-SolidBodyRotationOmega
-\family default
- around the z axis, centered at the coordinate (
-\family typewriter
-SolidBodyRotationCentreX
-\family default
-, 
-\family typewriter
-SolidBodyRotationY
-\family default
-, ), out to a radius 
-\family typewriter
-RadiusCylinder
-\family default
-.
- Specifically, if 
-\begin_inset Formula $r<RadiusCylinder$
-\end_inset
-
-
-\begin_inset Formula \[
-\begin{array}{ccc}
-f(x,y,z)_{x} & = & -SolidBodyRotationOmega(y-SolidBodyRotationCentreY)\\
-f(x,y,z)_{y} & = & SolidBodyRotationOmega(x-SolidBodyRotationCentreX)\end{array},\]
-
-\end_inset
-
- otherwise return 0.
-\end_layout
-
-\begin_layout Description
-Velocity_PartialRotationX Returns the x component of Velocity_SolidBodyRotation.
-\end_layout
-
-\begin_layout Description
-Velocity_PartialRotationY Returns the y component of Velocity_SolidBodyRotation.
-\end_layout
-
-\begin_layout Description
-TaperedRotationX if 
-\begin_inset Formula $r<RadiusCylinder$
-\end_inset
-
-, return Velocity_PartialRotationX.
- If 
-\begin_inset Formula $RadiusCylinder<r<TaperedRadius$
-\end_inset
-
-, return
-\begin_inset Formula \[
-VelocityPartialRotationX\left(\frac{TaperedRadius-r}{TaperedRadius-RadiusCylinder}\right).\]
-
-\end_inset
-
- If 
-\begin_inset Formula $r>TaperedRadius$
-\end_inset
-
-, return 0.
-\end_layout
-
-\begin_layout Description
-TaperedRotationY Similar to TaperedRotationX, but returns Velocity_PartialRotati
-onY.
-\end_layout
-
-\begin_layout Description
-Velocity_SimpleShear 
-\begin_inset Formula $f(x,y,z)=SimpleShearFactor\left(y-SimpleShearCentreY\right)$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Velocity_Extension 
-\begin_inset Formula $f(x,y,z)=ExtensionFactor\left(x-ExtensionCentreX\right)$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Velocity_PartialLid_TopLayer Returns 0 if the x coordinate is within one
- grid point of the boundary; 1 otherwise.
-\end_layout
-
-\begin_layout Description
-Velocity_LinearInterpolationLid 
-\begin_inset Formula \[
-f(x,y,z)=bcLeftHandSideValue+\left(\frac{bcRightHandSideValue-bcLeftHandSideValue}{L}\right)x\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Velocity_Lid_RampWithCentralMax 
-\begin_inset Formula $f(x,y,z)=\left\{ \begin{array}{cc}
-2\left(x-x_{min}\right)/L & x<L/2+x_{min}\\
-1-2(x-x_{min}-L/2) & x>L/2+x_{min}\end{array}\right.$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Velocity_SinusoidalLid 
-\begin_inset Formula \[
-f(x,y,z)=\sin\left(\frac{\pi\left(x-x_{min}\right)}{L}sinusoidalLidWavenumber\right)\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Velocity_Lid_CornerOnly Return 1 if the coordinate is on the right boundary.
-\end_layout
-
-\begin_layout Description
-Temperature_CosineHill Returns a hill defined by a cosine.
- Specifically, if we define pre-rotated coordinates
-\begin_inset Formula \[
-\begin{array}{ccc}
-x_{pre-rotate} & = & CosineHillCentreX-SolidBodyRotationCentreX\\
-y_{pre-rotate} & = & CosineHillCentreY-SolidBodyRotationCentreY\\
-z_{pre-rotate} & = & CosineHillCentreZ-SolidBodyRotationCentreZ\end{array},\]
-
-\end_inset
-
- and then rotate them around the z axis by the angle 
-\begin_inset Formula $\theta=SolidBodyRotationOmega*t$
-\end_inset
-
-
-\begin_inset Formula \[
-\begin{array}{ccc}
-x_{hill} & = & x_{pre-rotate}\cos\theta-y_{pre-rotate}\sin\theta\\
-y_{hill} & = & x_{pre-rotate}\sin\theta+y_{pre-rotate}\cos\theta\\
-z_{hill} & = & z_{pre-rotate}\end{array},\]
-
-\end_inset
-
- then
-\begin_inset Formula \[
-f(x,y,z)=\left\{ \begin{array}{cc}
-\frac{CosineHillHeight}{4}\cos\left(\frac{2\pi r}{CosineHillDiameter}\right) & r<CosineHillDiameter\\
-0 & r>CosineHillDiameter\end{array}\right.,\]
-
-\end_inset
-
- where 
-\begin_inset Formula $r$
-\end_inset
-
- is the distance from the center of the hill
-\begin_inset Formula \[
-r\equiv\sqrt{\left(x-x_{hill}\right)^{2}+\left(y-y_{hill}\right)^{2}+\left(z-z_{hill}\right)^{2}}.\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-LinearWithSinusoidalPerturbation If you scale the 
-\begin_inset Formula $y$
-\end_inset
-
- coordinate
-\begin_inset Formula \[
-y_{scaled}=\left(y-y_{min}\right)/\left(y_{max}-y_{min}\right),\]
-
-\end_inset
-
- then this returns 
-\begin_inset Formula \[
-\begin{array}{ccc}
-f(x,y,z) & = & SinusoidalTempIC\_TopLayerBC\\
- &  & +\left(SinusoidalTempIC\_TopLayerBC-SinusoidalTempIC\_TopLayerBC\right)\left(1-y_{scaled}\right)\\
- &  & +SinusoidalTempIC\_PerturbationAmplitude\\
- &  & *\left(\cos\left(\pi x*SinusoidalTempIC\_HorizontalWaveNumber\right)\right.\\
- &  & +\left.sin\left(\pi ySinusoidalTempIC\_VerticalWaveNumber\right)\right)\end{array}.\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-Temperature_Trigonometry 
-\begin_inset Formula \[
-f(x,y,z)=1-\frac{\pi y}{2}\sin\left(\frac{\pi x}{x_{max}-x_{min}}\right).\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-VelicTemperatureIC 
-\begin_inset Formula \[
-f(x,y,z)=sigma*\cos\left(\pi wavenumberX\left(\frac{x-x_{min}}{x_{max}-x_{min}}\right)\right)\sin\left(\pi\left(y-y_{min}\right)wavenumberY\right),\]
-
-\end_inset
-
-where the height of the box is constrained to 
-\begin_inset Formula $y_{max}-y_{min}=1$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Description
-VelicTemperatureIC_SolB 
-\begin_inset Formula \[
-f(x,y,z)=sigma*\cos\left(\pi wavenumberX\left(\frac{x-x_{min}}{x_{max}-x_{min}}\right)\right)\sinh\left(\pi wavenumberY\left(\frac{y-y_{min}}{x-x_{min}}\right)\right),\]
-
-\end_inset
-
-where the height of the box is constrained to 
-\begin_inset Formula $y_{max}-y_{min}=1$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Description
-AnalyticalTemperatureIC First, define 
-\begin_inset Formula \[
-\begin{array}{ccc}
-x_{0} & \equiv & x-x_{min}\\
-y_{0} & \equiv & y-y_{min}\\
-L & \equiv & x_{max}-x_{min}\\
-H & \equiv & y_{max}-y_{min}\\
-\lambda & \equiv & L/H\end{array},\]
-
-\end_inset
-
-and then compute some intermediate quantities
-\begin_inset Formula \[
-\begin{array}{ccc}
-u_{0} & = & \frac{\lambda^{7/3}}{\left(1+\lambda^{4}\right)^{2/3}}\left(\frac{Ra}{2\sqrt{pi}}\right)^{2/3}\\
-v_{0} & = & u_{0}/\lambda\\
-Q & = & 2\sqrt{\lambda/\left(\pi u_{0}\right)}\\
-T_{u} & = & \frac{1}{2}erf(\left(\frac{1}{2}\left(1-y_{0}\right)\sqrt{u_{0}/x_{0}}\right)\\
-T_{l} & = & 1-\frac{1}{2}erf\left(\frac{1}{2}y_{0}\sqrt{u_{0}/\left(\lambda-x_{0}\right)}\right)\\
-T_{r} & = & \frac{1}{2}+\frac{1}{2}\left(Q/\sqrt{\pi}\right)\sqrt{v_{0}/\left(y_{0}+1\right)}\exp\left(-x_{0}^{2}v_{0}/\left(4y_{0}+4\right)\right)\\
-T_{s} & = & \frac{1}{2}-\frac{1}{2}\left(Q/\sqrt{\pi}\right)\sqrt{v_{0}/\left(2-y_{0}\right)}\exp\left(-\left(\lambda-x_{0}\right)^{2}v_{0}/\left(8-4y_{0}\right)\right)\\
-g & = & T_{u}+T_{l}+T_{r}+T_{s}-1.5\end{array}.\]
-
-\end_inset
-
- The result then is 
-\begin_inset Formula \[
-f(x,y,z)=\left\{ \begin{array}{cc}
-0 & g<0\\
-g & 0<g<1\\
-1 & g>1\end{array}\right..\]
-
-\end_inset
-
-Note that this requires the error function 
-\begin_inset Formula $erf$
-\end_inset
-
- which is not available on all platforms.
- 
-\end_layout
-
-\begin_layout Description
-SinusoidalExtension 
-\begin_inset Formula \[
-\begin{array}{ccc}
-f(x,y,z) & = & SinusoidalExtensionVelocity+SinusoidalExtensionAmplitude\\
- &  & *\cos\left(2\pi SinusoidalExtensionFrequency\left(t+dt-SinusoidalExtensionPhaseShift\right)\right)\end{array}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-StepFunction This function returns a ramp function in the axis prescribed
- by the integer 
-\begin_inset Formula $StepFunctionDim$
-\end_inset
-
-, where 
-\begin_inset Formula $0\Rightarrow x$
-\end_inset
-
-, 
-\begin_inset Formula $1\Rightarrow y$
-\end_inset
-
-, 
-\begin_inset Formula $2\Rightarrow z$
-\end_inset
-
-.
- Defining some convenient constants 
-\begin_inset Formula \[
-\begin{array}{ccc}
-w & = & coord[dim]\\
-w_{-} & = & StepFunctionLowerOffset\\
-w_{+} & = & StepFunctionUpperOffset\\
-V & = & StepFunctionValue\end{array},\]
-
-\end_inset
-
-then if 
-\begin_inset Formula $StepFunctionLessThan$
-\end_inset
-
- is 
-\family typewriter
-True
-\family default
-, then 
-\begin_inset Formula \[
-f(x,y,z)=\left\{ \begin{array}{cc}
-0 & w<w_{-}\\
-V\left(\frac{w-w_{-}}{w_{+}-w_{-}}\right) & w_{-}<w<w_{+}\\
-V & w_{+}<w\end{array}\right.,\]
-
-\end_inset
-
- otherwise it is reversed
-\begin_inset Formula \[
-f(x,y,z)=\left\{ \begin{array}{cc}
-V & w<w_{-}\\
-V\left(\frac{w_{+}-w}{w_{+}-w_{-}}\right) & w_{-}<w<w_{+}\\
-0 & w_{+}<w\end{array}\right.,\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-StepFunctionProduct1 Using a similar scheme as StepFunction to specify the
- dimension with 
-\newline
-
-\begin_inset Formula $StepFunctionProduct1Dim$
-\end_inset
-
-, 
-\begin_inset Formula \[
-f(x,y,z)=\left\{ \begin{array}{cc}
-0 & w<StepFunctionProduct1Start\\
-StepFunctionProduct1Value & StepFunctionProduct1Start<w<StepFunctionProduct1End\\
-0 & w>StepFunctionProduct1End\end{array}\right.\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Description
-StepFunctionProduct2 
-\end_layout
-
-\begin_layout Description
-StepFunctionProduct3
-\end_layout
-
-\begin_layout Description
-StepFunctionProduct4 These are the same as StepFunctionProduct1 except that
- they use different variables (e.g., 
-\begin_inset Formula $StepFunctionProduct2Dim$
-\end_inset
-
- instead of 
-\begin_inset Formula $StepFunctionProduct1Dim$
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-Gaussian 
-\begin_inset Formula \[
-f(x,y,z)=\left(GaussianHeight\right)\exp\left[-\left(\frac{GaussianCenter-coord[dim]}{GaussianWidth}\right)^{2}\right]\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Verbosity Options
-\end_layout
-
-\begin_layout Standard
-By default, Gale prints out very little when running.
- To get more information, insert
-\end_layout
-
-\begin_layout LyX-Code
-<param name="journal.info">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="journal.debug">True</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="journal-level.info">2</param>
-\end_layout
-
-\begin_layout LyX-Code
-<param name="journal-level.debug">2</param>
-\end_layout
-
-\begin_layout Standard
-into the variables section (see Section 
-\begin_inset LatexCommand \ref{sub:Variables}
-
-\end_inset
-
-).
- This will print out more information than you need about the components,
- the solvers, and the number of iterations.
- In addition, you can get even more information about the solvers from PETSc
- by appending the 
-\begin_inset Quotes sld
-\end_inset
-
-
-\family typewriter
--ksp_monitor
-\family default
-
-\begin_inset Quotes srd
-\end_inset
-
- to the command line.
-\end_layout
-
-\begin_layout Chapter
-Output File Format
-\begin_inset LatexCommand \label{cha:Output-File-Format}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Gale outputs four types of files.
- 
-\end_layout
-
-\begin_layout Section
-
-\family typewriter
-.dat
-\family default
- ASCII Files
-\end_layout
-
-\begin_layout Standard
-The first type are ASCII files with 
-\family typewriter
-.dat
-\family default
- extensions.
- Inside each 
-\family typewriter
-.dat
-\family default
- file are several columns of data.
- For example, 
-\family typewriter
-PressureField.00001.dat
-\family default
- might have
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-0 0.0312539624080715 0.0109361134145122 0 -9.81467103200287
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-1 0.0937630718938361 0.0109356986189374 0 17.7373201951569
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-2 0.156270066350344 0.0109368543031399 0 -37.0281780188199
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-3 0.218780947570009 0.0109343376815161 0 45.6263762140766
-\end_layout
-
-\begin_layout LyX-Code
-
-\family typewriter
-4 0.28128858838265 0.010937987088561 0 -65.2132484518426 
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-The first column (0,1,2,3, ...) is the node number, and the second, third,
- and fourth columns are the x, y, and z coordinates (2D runs still have
- z data that can be ignored).
- The last column(s) show the value.
- The five different types of variables and the order of components is
-\end_layout
-
-\begin_layout Description
-Scalar Value
-\end_layout
-
-\begin_layout Description
-Vector 2D: x y
-\newline
-3D: x, y, z
-\end_layout
-
-\begin_layout Description
-Tensor 2D: xx, xy, yx, yy
-\newline
-3D: xx, xy, xz, yx, yy, yz, zx, zy, zz
-\end_layout
-
-\begin_layout Description
-Symmetric\InsetSpace ~
-Tensor 2D: xx, yy, xy
-\newline
-3D: xx, yy, zz, xy, xz, yz
-\end_layout
-
-\begin_layout Description
-AntiSymmetric\InsetSpace ~
-Tensor 2D: xx, xy, yx, yy
-\newline
-3D: xx, xy, xz, yx, yy, yz, zx, zy,
- zz (note that xx, yy, and zz are identical to zero)
-\end_layout
-
-\begin_layout Standard
-The complete list of output files per time step with the default components
- (see Section 
-\begin_inset LatexCommand \ref{sec:Basic-Components}
-
-\end_inset
-
-) is
-\end_layout
-
-\begin_layout Description
-Scalar Pressure, StrainRateInvariant, VelocityMagnitude, VelocityGradientsInvari
-ant
-\end_layout
-
-\begin_layout Description
-Vector Velocity
-\end_layout
-
-\begin_layout Description
-Tensor VelocityGradients
-\end_layout
-
-\begin_layout Description
-Symmetric\InsetSpace ~
-Tensor StrainRate
-\end_layout
-
-\begin_layout Description
-Antisymmetric\InsetSpace ~
-Tensor Vorticity
-\end_layout
-
-\begin_layout Standard
-There will also be a timeInfo file, which records the start time and dt
- for that time step, and materialSwarm which is described in Section 
-\begin_inset LatexCommand \ref{sec:.dat-Binary-Files}
-
-\end_inset
-
-.
- Finally, there will be 
-\family typewriter
-.txt
-\family default
- files from 
-\family typewriter
-DumpSwarm
-\family default
-, explained below in Section 
-\begin_inset LatexCommand \ref{sec:.txt-Files-(Particle}
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-
-\family typewriter
-.dat 
-\family default
-Binary Files (Particle Information) 
-\begin_inset LatexCommand \label{sec:.dat-Binary-Files}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-These are the 
-\family typewriter
-materialSwarm.*.dat
-\family default
- files.
- They are only useful for checkpointing and have a machine dependent format.
-\end_layout
-
-\begin_layout Section
-
-\family typewriter
-.txt
-\family default
- Files (Particle Information)
-\begin_inset LatexCommand \label{sec:.txt-Files-(Particle}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-These files are output by the 
-\family typewriter
-Underworld_DumpSwarm
-\family default
- plugin.
- They provide particle information in a more friendly format.
- The 
-\family typewriter
-Underworld_DumpSwarm
-\family default
- plugin is activated by adding the line
-\end_layout
-
-\begin_layout LyX-Code
-    <param>Underworld_DumpSwarm</param> 
-\end_layout
-
-\begin_layout Standard
-to the list of plugins.
- This line is already in the example input files.
- The default is to output the ASCII files 
-\family typewriter
-yielding.*.txt
-\family default
-.
- The format of the file is
-\end_layout
-
-\begin_layout LyX-Code
-m x y z
-\family typewriter
- yielded viscosity
-\end_layout
-
-\begin_layout Standard
-where 
-\family typewriter
-m
-\family default
- is a unique number for the material, 
-\family typewriter
-yielded
-\family default
- is a number between 
-\family typewriter
-0
-\family default
- and 
-\family typewriter
-1
-\family default
- indicating how much a material point has failed, and 
-\family typewriter
-viscosity
-\family default
- is material's isotropic viscosity.
- If the material does not yield (e.g.
- is purely viscous), then yielded is always zero.
- 
-\end_layout
-
-\begin_layout Standard
-You can also output in csv format for easily reading the data into a spreadsheet
- like Excel.
- To do this, just set the variable 
-\family typewriter
-outputFormat
-\family default
- in the global list of variables
-\end_layout
-
-\begin_layout LyX-Code
-<param name="outputFormat">csv</param>
-\end_layout
-
-\begin_layout Standard
-If you want to print out some other property of the material, e.g., non-isotropic
- viscosity, modify 
-\family typewriter
-DumpSwarm
-\family default
- to provide that information.
- The source for the plugin is found in the directory
-\end_layout
-
-\begin_layout LyX-Code
-src/Underworld/plugins/Output/DumpSwarm/
-\end_layout
-
-\begin_layout Section
-
-\family typewriter
-.vtk
-\family default
- Files (Visualization)
-\begin_inset LatexCommand \label{sec:.vtk-Files-(Visualization)}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-These files are output by the 
-\family typewriter
-Underworld_VTKOutput
-\family default
- plugin.
- These files are in a format understood by a wide variety of visualization
- programs, sich as 
-\begin_inset LatexCommand \htmlurl[ParaView]{paraview.org}
-
-\end_inset
-
- (recommended), 
-\begin_inset LatexCommand \htmlurl[MayaVi]{mayavi.sf.net}
-
-\end_inset
-
-, or 
-\begin_inset LatexCommand \htmlurl[Visit]{www.llnl.gov/visit}
-
-\end_inset
-
-.
- The 
-\family typewriter
-Underworld_VTKOutput
-\family default
- plugin is activated by adding the line
-\end_layout
-
-\begin_layout LyX-Code
-    <param>Underworld_VTKOutput</param> 
-\end_layout
-
-\begin_layout Standard
-to the list of plugins.
- This line is already in the example input files.
-\end_layout
-
-\begin_layout Chapter
-Benchmarks
-\end_layout
-
-\begin_layout Standard
-CIG has worked with Susanne Buiter at NGU to improve the benchmak specifications.
- Gale has been tested with relaxation of topography, extension, shortening,
- and subduction models.
-\end_layout
-
-\begin_layout Chapter
-License 
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-\series default
- 
-\newline
-
-\series medium
-Everyone is permitted to copy and distribute verbatim copies of this license
- document, but changing it is not allowed.
-\end_layout
-
-\begin_layout Section*
-Preamble
-\end_layout
-
-\begin_layout Standard
-The licenses for most software are designed to take away your freedom to
- share and change it.
- By contrast, the GNU General Public License is intended to guarantee your
- freedom to share and change free software -- to make sure the software
- is free for all its users.
- This General Public License applies to most of the Free Software Foundation's
- software and to any other program whose authors commit to using it.
- (Some other Free Software Foundation software is covered by the GNU Library
- General Public License instead.) You can apply it to your programs, too.
-\end_layout
-
-\begin_layout Standard
-When we speak of free software, we are referring to freedom, not price.
- Our General Public Licenses are designed to make sure that you have the
- freedom to distribute copies of free software (and charge for this service
- if you wish), that you receive source code or can get it if you want it,
- that you can change the software or use pieces of it in new free programs;
- and that you know you can do these things.
-\end_layout
-
-\begin_layout Standard
-To protect your rights, we need to make restrictions that forbid anyone
- to deny you these rights or to ask you to surrender the rights.
- These restrictions translate to certain responsibilities for you if you
- distribute copies of the software, or if you modify it.
-\end_layout
-
-\begin_layout Standard
-For example, if you distribute copies of such a program, whether gratis
- or for a fee, you must give the recipients all the rights that you have.
- You must make sure that they, too, receive or can get the source code.
- And you must show them these terms so they know their rights.
-\end_layout
-
-\begin_layout Standard
-We protect your rights with two steps:
-\end_layout
-
-\begin_layout Enumerate
-Copyright the software, and 
-\end_layout
-
-\begin_layout Enumerate
-Offer you this license which gives you legal permission to copy, distribute
- and/or modify the software.
-\end_layout
-
-\begin_layout Standard
-Also, for each author's protection and ours, we want to make certain that
- everyone understands that there is no warranty for this free software.
- If the software is modified by someone else and passed on, we want its
- recipients to know that what they have is not the original, so that any
- problems introduced by others will not reflect on the original authors'
- reputations.
-\end_layout
-
-\begin_layout Standard
-Finally, any free program is threatened constantly by software patents.
- We wish to avoid the danger that redistributors of a free program will
- individually obtain patent licenses, in effect making the program proprietary.
- To prevent this, we have made it clear that any patent must be licensed
- for everyone's free use or not licensed at all.
- 
-\end_layout
-
-\begin_layout Standard
-The precise terms and conditions for copying, distribution and modification
- follow.
-\end_layout
-
-\begin_layout Section*
-GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
- AND MODIFICATION 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-begin{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[0.]
-\end_layout
-
-\end_inset
-
-This License applies to any program or other work which contains a notice
- placed by the copyright holder saying it may be distributed under the terms
- of this General Public License.
- The "Program" below refers to any such program or work, and a "work based
- on the Program" means either the Program or any derivative work under copyright
- law: that is to say, a work containing the Program or a portion of it,
- either verbatim or with modifications and/or translated into another language.
- (Hereinafter, translation is included without limitation in the term "modificat
-ion.") Each licensee is addressed as "you."
-\newline
-
-\newline
-Activities other than copying,
- distribution and modification are not covered by this License; they are
- outside its scope.
- The act of running the Program is not restricted, and the output from the
- Program is covered only if its contents constitute a work based on the
- Program (independent of having been made by running the Program).
- Whether that is true depends on what the Program does.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-end{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-You may copy and distribute verbatim copies of the Program's source code
- as you receive it, in any medium, provided that you conspicuously and appropria
-tely publish on each copy an appropriate copyright notice and disclaimer
- of warranty; keep intact all the notices that refer to this License and
- to the absence of any warranty; and give any other recipients of the Program
- a copy of this License along with the Program.
- 
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-You may charge a fee for the physical act of transferring a copy, and you
- may at your option offer warranty protection in exchange for a fee.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may modify your copy or copies of the Program or any portion of it,
- thus forming a work based on the Program, and copy and distribute such
- modifications or work under the terms of Section 1 above, provided that
- you also meet all of these conditions: 
-\end_layout
-
-\begin_deeper
-\begin_layout Enumerate
-You must cause the modified files to carry prominent notices stating that
- you changed the files and the date of any change.
- 
-\end_layout
-
-\begin_layout Enumerate
-You must cause any work that you distribute or publish, that in whole or
- in part contains or is derived from the Program or any part thereof, to
- be licensed as a whole at no charge to all third parties under the terms
- of this License.
- 
-\end_layout
-
-\begin_layout Enumerate
-If the modified program normally reads commands interactively when run,
- you must cause it, when started running for such interactive use in the
- most ordinary way, to print or display an announcement including an appropriate
- copyright notice and a notice that there is no warranty (or else, saying
- that you provide a warranty) and that users may redistribute the program
- under these conditions, and telling the user how to view a copy of this
- License.
- (Exception: if the Program itself is interactive but does not normally
- print such an announcement, your work based on the Program is not required
- to print an announcement.) 
-\end_layout
-
-\begin_layout Standard
-These requirements apply to the modified work as a whole.
- If identifiable sections of that work are not derived from the Program,
- and can be reasonably considered independent and separate works in themselves,
- then this License, and its terms, do not apply to those sections when you
- distribute them as separate works.
- But when you distribute the same sections as part of a whole which is a
- work based on the Program, the distribution of the whole must be on the
- terms of this License, whose permissions for other licensees extend to
- the entire whole, and thus to each and every part regardless of who wrote
- it.
- 
-\end_layout
-
-\begin_layout Standard
-Thus, it is not the intent of this section to claim rights or contest your
- rights to work written entirely by you; rather, the intent is to exercise
- the right to control the distribution of derivative or collective works
- based on the Program.
- 
-\end_layout
-
-\begin_layout Standard
-In addition, mere aggregation of another work not based on the Program with
- the Program (or with a work based on the Program) on a volume of a storage
- or distribution medium does not bring the other work under the scope of
- this License.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may copy and distribute the Program (or a work based on it, under Section
- 2) in object code or executable form under the terms of Sections 1 and
- 2 above provided that you also do one of the following: 
-\end_layout
-
-\begin_deeper
-\begin_layout Enumerate
-Accompany it with the complete corresponding machine-readable source code,
- which must be distributed under the terms of Sections 1 and 2 above on
- a medium customarily used for software interchange; or, 
-\end_layout
-
-\begin_layout Enumerate
-Accompany it with a written offer, valid for at least three years, to give
- any third party, for a charge no more than your cost of physically performing
- source distribution, a complete machine-readable copy of the corresponding
- source code, to be distributed under the terms of Sections 1 and 2 above
- on a medium customarily used for software interchange; or, 
-\end_layout
-
-\begin_layout Enumerate
-Accompany it with the information you received as to the offer to distribute
- corresponding source code.
- (This alternative is allowed only for noncommercial distribution and only
- if you received the program in object code or executable form with such
- an offer, in accord with Subsection b above.) 
-\end_layout
-
-\begin_layout Standard
-The source code for a work means the preferred form of the work for making
- modifications to it.
- For an executable work, complete source code means all the source code
- for all modules it contains, plus any associated interface definition files,
- plus the scripts used to control compilation and installation of the executable.
- However, as a special exception, the source code distributed need not include
- anything that is normally distributed (in either source or binary form)
- with the major components (compiler, kernel, and so on) of the operating
- system on which the executable runs, unless that component itself accompanies
- the executable.
-\end_layout
-
-\begin_layout Standard
-If distribution of executable or object code is made by offering access
- to copy from a designated place, then offering equivalent access to copy
- the source code from the same place counts as distribution of the source
- code, even though third parties are not compelled to copy the source along
- with the object code.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may not copy, modify, sublicense, or distribute the Program except as
- expressly provided under this License.
- Any attempt otherwise to copy, modify, sublicense or distribute the Program
- is void, and will automatically terminate your rights under this License.
- However, parties who have received copies, or rights, from you under this
- License will not have their licenses terminated so long as such parties
- remain in full compliance.
- 
-\end_layout
-
-\begin_layout Enumerate
-You are not required to accept this License, since you have not signed it.
- However, nothing else grants you permission to modify or distribute the
- Program or its derivative works.
- These actions are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Program (or any work based
- on the Program), you indicate your acceptance of this License to do so,
- and all its terms and conditions for copying, distributing or modifying
- the Program or works based on it.
- 
-\end_layout
-
-\begin_layout Enumerate
-Each time you redistribute the Program (or any work based on the Program),
- the recipient automatically receives a license from the original licensor
- to copy, distribute or modify the Program subject to these terms and conditions.
- You may not impose any further restrictions on the recipients' exercise
- of the rights granted herein.
- You are not responsible for enforcing compliance by third parties to this
- License.
- 
-\end_layout
-
-\begin_layout Enumerate
-If, as a consequence of a court judgment or allegation of patent infringement
- or for any other reason (not limited to patent issues), conditions are
- imposed on you (whether by court order, agreement or otherwise) that contradict
- the conditions of this License, they do not excuse you from the conditions
- of this License.
- If you cannot distribute so as to satisfy simultaneously your obligations
- under this License and any other pertinent obligations, then as a consequence
- you may not distribute the Program at all.
- For example, if a patent license would not permit royalty-free redistribution
- of the Program by all those who receive copies directly or indirectly through
- you, then the only way you could satisfy both it and this License would
- be to refrain entirely from distribution of the Program.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-If any portion of this section is held invalid or unenforceable under any
- particular circumstance, the balance of the section is intended to apply
- and the section as a whole is intended to apply in other circumstances.
-\end_layout
-
-\begin_layout Standard
-It is not the purpose of this section to induce you to infringe any patents
- or other property right claims or to contest validity of any such claims;
- this section has the sole purpose of protecting the integrity of the free
- software distribution system, which is implemented by public license practices.
- Many people have made generous contributions to the wide range of software
- distributed through that system in reliance on consistent application of
- that system; it is up to the author/donor to decide if he or she is willing
- to distribute software through any other system and a licensee cannot impose
- that choice.
- 
-\end_layout
-
-\begin_layout Standard
-This section is intended to make thoroughly clear what is believed to be
- a consequence of the rest of this License.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-If the distribution and/or use of the Program is restricted in certain countries
- either by patents or by copyrighted interfaces, the original copyright
- holder who places the Program under this License may add an explicit geographic
-al distribution limitation excluding those countries, so that distribution
- is permitted only in or among countries not thus excluded.
- In such case, this License incorporates the limitation as if written in
- the body of this License.
- 
-\end_layout
-
-\begin_layout Enumerate
-The Free Software Foundation may publish revised and/or new versions of
- the General Public License from time to time.
- Such new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
- 
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-Each version is given a distinguishing version number.
- If the Program specifies a version number of this License which applies
- to it and "any later version," you have the option of following the terms
- and conditions either of that version or of any later version published
- by the Free Software Foundation.
- If the Program does not specify a version number of this License, you may
- choose any version ever published by the Free Software Foundation.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-If you wish to incorporate parts of the Program into other free programs
- whose distribution conditions are different, write to the author to ask
- for permission.
- For software which is copyrighted by the Free Software Foundation, write
- to the Free Software Foundation; we sometimes make exceptions for this.
- Our decision will be guided by the two goals of preserving the free status
- of all derivatives of our free software and of promoting the sharing and
- reuse of software generally.
- 
-\end_layout
-
-\begin_layout Subsection*
-NO WARRANTY 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-begin{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[11.]
-\end_layout
-
-\end_inset
-
-BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
- THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
- EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
- PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
- EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
- YOU.
- SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[12.]
-\end_layout
-
-\end_inset
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
- ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
- THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
- ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
- THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
- OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
- THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
- EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
- OF SUCH DAMAGES.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-end{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section*
-END OF TERMS AND CONDITIONS 
-\end_layout
-
-\begin_layout Subsection*
-How to Apply These Terms to Your New Programs
-\end_layout
-
-\begin_layout Standard
-If you develop a new program, and you want it to be of the greatest possible
- use to the public, the best way to achieve this is to make it free software
- which everyone can redistribute and change under these terms.
- 
-\end_layout
-
-\begin_layout Standard
-To do so, attach the following notices to the program.
- It is safest to attach them to the start of each source file to most effectivel
-y convey the exclusion of warranty; and each file should have at least the
- "copyright" line and a pointer to where the full notice is found.
- For example:
-\end_layout
-
-\begin_layout Quote
-One line to give the program's name and a brief idea of what it does.
- Copyright 
-\size footnotesize
-© (
-\size default
-year) (name of author) 
-\end_layout
-
-\begin_layout Quote
-This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
- 
-\end_layout
-
-\begin_layout Quote
-This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
- 
-\end_layout
-
-\begin_layout Quote
-You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
-\end_layout
-
-\begin_layout Standard
-Also add information on how to contact you by electronic and paper mail.
- 
-\end_layout
-
-\begin_layout Standard
-If the program is interactive, make it output a short notice like this when
- it starts in an interactive mode: 
-\end_layout
-
-\begin_layout Quote
-Gnomovision version 69, Copyright © year name of author Gnomovision comes
- with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it under certain
- conditions; type `show c' for details.
- 
-\end_layout
-
-\begin_layout Standard
-The hypothetical commands `show w' and `show c' should show the appropriate
- parts of the General Public License.
- Of course, the commands you use may be called something other than `show
- w' and `show c'; they could even be mouse-clicks or menu items -- whatever
- suits your program.
- 
-\end_layout
-
-\begin_layout Standard
-You should also get your employer (if you work as a programmer) or your
- school, if any, to sign a "copyright disclaimer" for the program, if necessary.
- Here is a sample; alter the names: 
-\end_layout
-
-\begin_layout Quote
-Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovisi
-on' (which makes passes at compilers) written by James Hacker.
- 
-\end_layout
-
-\begin_layout Quote
-(signature of Ty Coon)
-\newline
-1 April 1989 
-\newline
-Ty Coon, President of Vice 
-\end_layout
-
-\begin_layout Standard
-This General Public License does not permit incorporating your program into
- proprietary programs.
- If your program is a subroutine library, you may consider it more useful
- to permit linking proprietary applications with the library.
- If this is what you want to do, use the GNU Library General Public License
- instead of this License.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Fullsack}
-Fullsack, Phillipe (1995).
- An arbitrary Lagrangian-Eulerian formulation for creeping flows and its
- application in tectonic models, 
-\emph on
-Geophys.
- J.
- Int., 120
-\emph default
-, 1-23.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {VPAC}
-Quenette, S., B.
- Appelbe, M.
- Gurnis, L.
- Hodkinson, L.
- Moresi, and P.
- Sunter (2005), An Investigation into Design for Performance and Code Maintainab
-ility in High Performance Computing, 
-\emph on
-ANZIAM J
-\emph default
-.
-\emph on
-, 46(e),
-\emph default
- C1001-C1016.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Underworld}
-Moresi, L.N., F.
- Dufour, and H.-B.
- Mühlhaus (2003), A Lagrangian integration point finite element method for
- large deformation modeling of viscoelastic geomaterials, 
-\emph on
-J.
- Comp.
- Phys., 184
-\series bold
-,
-\series default
-\emph default
- 476-497.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Moresi faulting}
-Moresi, L.N., and H.-B.
- Mühlhaus (2006), Anisotropic viscous models of large-deformation MohrCoulomb
- failure, 
-\emph on
-Philosophical Magazine, 86,
-\emph default
- 3287-3305.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Uzawa}
- Moresi, L.N., and V.S.
- Solomatov (1995), Numerical investigation of 2D convection with extremely
- large viscosity variations, 
-\emph on
-Phys.
- Fluids,
-\emph default
- 
-\emph on
-7(9),
-\emph default
- 2154-2162.
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Ellipsis}
-O'Neill, C., Moresi, L., Müller, D., Albert, R., Dufour, F.
- (2006), Ellipsis 3D: a particle-in-cell finite element hybrid code for
- modelling mantle convection and lithospheric deformation, 
-\shape italic
-Computers & Geosciences
-\shape default
-, 
-\shape italic
-32(10)
-\shape default
-, 1769-1779
-\end_layout
-
-\begin_layout Bibliography
-
-\bibitem {Citcom}
-Zhong, S., M.T.
- Zuber, L.N.
- Moresi, and M.
- Gurnis (2000), The role of temperature-dependent viscosity and surface
- plates in spherical shell models of mantle convection, 
-\shape italic
-J.
- Geophys.
- Res.
-\shape default
-, 
-\shape italic
-105
-\shape default
-, 11, 063-11, 082 
-\end_layout
-
-\end_body
-\end_document
+#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 245
+\begin_document
+\begin_header
+\textclass book
+\begin_preamble
+\usepackage{hyperref}
+
+\let\myUrl\url
+\renewcommand{\url}[1]{(\myUrl{#1})}
+\end_preamble
+\language english
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\cite_engine basic
+\use_bibtopic false
+\paperorientation portrait
+\leftmargin 1in
+\topmargin 1in
+\rightmargin 1in
+\bottommargin 1in
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language swedish
+\papercolumns 1
+\papersides 2
+\paperpagestyle headings
+\tracking_changes false
+\output_changes true
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\noindent
+\align center
+
+\color none
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+thispagestyle{empty}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+MoSST
+\end_layout
+
+\begin_layout Author
+© California Institute of Technology
+\newline
+Peter Olson, Wei Mi
+\newline
+Version 1.0
+\end_layout
+
+\begin_layout Date
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+today
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset LatexCommand \tableofcontents{}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset FloatList figure
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+raggedbottom
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\newpage
+
+\end_layout
+
+\begin_layout Chapter
+Preface
+\end_layout
+
+\begin_layout Section
+Who Will Use MoSST?
+\end_layout
+
+\begin_layout Standard
+The main audience for CIGMA is research scientists interested in ???????.
+ Examples of problems that can be solved are the development of tectonic
+ structure associated with extension and compression, especially where localizat
+ion is important.
+ You do not have to be an expert in finite element analysis or scientific
+ computing to use this software.
+\end_layout
+
+\begin_layout Section
+Citation
+\end_layout
+
+\begin_layout Standard
+Computational Infrastructure for Geodynamics (CIG) is making this source
+ code available to you in the hope that the software will enhance your research
+ in geophysics.
+ The underlying C code for the finite element package was donated to CIG
+ in July of 2005.
+ A number of individuals have contributed a significant portion of their
+ careers toward the development of Gale.
+ It is essential that you recognize these individuals in the normal scientific
+ practice by making appropriate acknowledgements.
+ 
+\end_layout
+
+\begin_layout Standard
+The code is based on the method described in 
+\end_layout
+
+\begin_layout Itemize
+Moresi, L.N., F.
+ Dufour, and H.-B.
+ Mühlhaus (2003), A Lagrangian integration point finite element method for
+ large deformation modeling of viscoelastic geomaterials, 
+\emph on
+J.
+ Comp.
+ Phys., 184
+\series bold
+,
+\series default
+\emph default
+ 476-497.
+ 
+\end_layout
+
+\begin_layout Standard
+The code was originally developed by the Victorian Partnership for Advanced
+ Computing (VPAC) and Louis Moresi's group at Monash University.
+ Walter Landry of CIG and Luke Hodkinson of VPAC have enhanced the code
+ to satisfy the requirements of the long-term tectonics community.
+ Roger Buck, Gus Correa, and Robert Bialas from the Lamont-Doherty Earth
+ Observatory, Columbia University, provided valuable user testing.
+ The Gale team requests that in your oral presentations and in your papers
+ that you indicate your use of this code and acknowledge the authors of
+ the code, 
+\begin_inset LatexCommand \htmlurl[CIG]{www.geodynamics.org}
+
+\end_inset
+
+, 
+\begin_inset LatexCommand \htmlurl[Victoria Partnership for Advanced Computing]{www.vpac.org}
+
+\end_inset
+
+, and 
+\begin_inset LatexCommand \htmlurl[Monash University]{www.monash.edu}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Support
+\end_layout
+
+\begin_layout Standard
+Gale development is supported by a grant from the National Science Foundation
+ to CIG, managed by the California Institute of Technology.
+ However, most of the software components below Gale have been developed
+ by the Victoria Partnership for Advanced Computing (VPAC) and Monash University.
+\end_layout
+
+\begin_layout Chapter
+Introduction
+\end_layout
+
+\begin_layout Section
+About MoSST
+\end_layout
+
+\begin_layout Standard
+Gale is a parallel, two- or three-dimensional, implicit finite element code
+ that solves problems related to orogenesis, rifting, and subduction with
+ coupling to surface erosion models.
+ Gale uses a hybrid particle-in-cell scheme which combines a deformable
+ mesh of computational points and a dense arrangement of mobile material
+ points.
+ The boundaries of the deformable mesh conform to the boundaries of the
+ material as the simulation progresses, but the interior is constrained
+ to remain as regular as possible.
+ The particles track history-dependent properties such as strain for strain-soft
+ening materials.
+ This allows Gale to simulate  problems with large deformations and irregular
+ boundaries.
+\end_layout
+
+\begin_layout Standard
+CIG has developed Gale in response to community demand by building on existing
+ work by VPAC and Louis Moresi's group at Monash University.
+ The code is being released under the GNU General Public License.
+\end_layout
+
+\begin_layout Section
+MoSST Computational Approach and Governing Equations
+\end_layout
+
+\begin_layout Subsection
+Infrastructure
+\end_layout
+
+\begin_layout Standard
+Gale uses both a regular grid and particles.
+ The regular grid is used to solve differential equations, and particles
+ are used to track material properties (e.g., strain history).
+ Note that the regular grid can become distorted, since it may conform to
+ an uneven upper surface.
+\end_layout
+
+\begin_layout Subsection
+Units
+\end_layout
+
+\begin_layout Standard
+Gale has no internal knowledge of units.
+ So if you tell Gale that a box is 10 units across, it does not know or
+ care whether it is 10 cm or 10 km.
+ You only have to make sure that you are consistent.
+ For example, if you give velocities in cm/year, make sure that your viscosities
+ and lengths also use cm and years.
+ 
+\end_layout
+
+\begin_layout Subsection
+Basic Equations
+\end_layout
+
+\begin_layout Subsubsection
+Christensen's non-dimensionalization
+\end_layout
+
+\begin_layout Paragraph*
+Symbols
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+D=r_{o}-r_{i}=1,\,\frac{r_{i}}{r_{o}}=0.35,\, r_{i}=\frac{7}{13},\, r_{o}=\frac{20}{13}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\nu:$
+\end_inset
+
+ kinematic viscosity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\eta:$
+\end_inset
+
+ magnetic diffusivity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\kappa:$
+\end_inset
+
+ thermal diffusivity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\mu:$
+\end_inset
+
+ magnetic permeability
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\Omega:$
+\end_inset
+
+ basic rotating rate
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\rho:$
+\end_inset
+
+ density
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\alpha:$
+\end_inset
+
+ thermal expansion coefficient
+\end_layout
+
+\begin_layout Paragraph*
+Scales
+\end_layout
+
+\begin_layout Standard
+length: 
+\begin_inset Formula $D$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+time: 
+\begin_inset Formula $\frac{D^{2}}{v}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+velocity: 
+\begin_inset Formula $\frac{v}{D}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+temperature: 
+\begin_inset Formula $\Delta T$
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+magnetic field: 
+\begin_inset Formula $(\rho\mu\eta\Omega)^{\frac{1}{2}}$
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+pressure: 
+\begin_inset Formula $\rho\nu\Omega$
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Paragraph*
+Parameters
+\end_layout
+
+\begin_layout Standard
+Modified Rayleigh number: 
+\begin_inset Formula $R_{a}=\frac{\alpha g_{o}\Delta TD}{\nu\Omega}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Ekman number: 
+\begin_inset Formula $E_{c}=\frac{\nu}{\Omega D^{2}}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Prandtl number: 
+\begin_inset Formula $P_{r}=\frac{\nu}{\kappa}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Magnetic Prandtl number: 
+\begin_inset Formula $P_{m}=\frac{\nu}{\eta}$
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Subsubsection*
+Dimensionless equations
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+E_{c}\left(\frac{\partial\mathrm{\mathbf{u}}}{\partial t}+\mathrm{\mathbf{u}}\cdot\nabla\mathrm{\mathbf{u}}-\nabla^{2}\mathrm{\mathbf{u}}\right)+2\mathrm{\mathbf{\hat{z}}\times\mathbf{u}=-\nabla\mathit{P+R_{a}\frac{\mathbf{r}}{r_{o}}\mathit{T+\frac{1}{P_{m}}\left(\nabla\times\mathrm{\mathbf{B}}\right)\times\mathrm{\mathbf{B}}}}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\frac{\partial\mathrm{\mathbf{B}}}{\partial t}=\nabla\times\left(\mathbf{u}\times\mathbf{B}\right)+\frac{1}{P_{m}}\nabla^{2}\mathbf{B}\]
+
+\end_inset
+
+
+\begin_inset Formula \[
+\frac{\partial\mathrm{\mathbf{\mathit{T}}}}{\partial t}+\mathbf{u}\cdot\nabla T=\frac{1}{P_{r}}\nabla^{2}T\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\nabla\cdot\mathbf{u}=0,\,\,\nabla\cdot\mathrm{\mathbf{B}}=0.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The head bar denotes the unit vector.
+\end_layout
+
+\begin_layout Subsubsection
+Kuang's non-dimensionalization
+\end_layout
+
+\begin_layout Paragraph*
+Symbols
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $r_{o}:$
+\end_inset
+
+ radial of the outer core
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $v$
+\end_inset
+
+: kinematic viscosity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\eta:$
+\end_inset
+
+ magnetic diffusivity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\kappa:$
+\end_inset
+
+ thermal diffusivity
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\mu:$
+\end_inset
+
+ magnetic permeability
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\Omega:$
+\end_inset
+
+ basic rotating rate
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\rho:$
+\end_inset
+
+ density
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula $\alpha:$
+\end_inset
+
+ thermal expansion coefficient
+\end_layout
+
+\begin_layout Paragraph*
+Scales
+\end_layout
+
+\begin_layout Standard
+length: 
+\begin_inset Formula $r_{o}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+time: 
+\begin_inset Formula $r_{o}^{2}/\eta$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+velocity: 
+\begin_inset Formula $\eta/r_{o}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+temperature: 
+\begin_inset Formula $h_{T}r_{o}=r_{o}\frac{-\partial T}{\partial r}\mid_{r=r_{i}}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+magnetic field: 
+\begin_inset Formula $\left(2\rho\mu\eta\Omega\right)^{1/2}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+pressure: 
+\begin_inset Formula $2\rho\eta\Omega$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph*
+Parameters
+\end_layout
+
+\begin_layout Standard
+Rossby number: 
+\begin_inset Formula $R_{o}=\frac{\eta}{2\Omega r_{o}^{2}}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Prandtl number: 
+\begin_inset Formula $q_{k}=\frac{\kappa}{\eta}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Rayleigh number: 
+\begin_inset Formula $R_{th}=\frac{\alpha g_{o}h_{T}r_{o}^{2}}{2\Omega\eta}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Ekman number: 
+\begin_inset Formula $E=\frac{v}{2\Omega r_{o}^{2}}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph*
+Dimensionless equations
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+R_{o}\left(\frac{\partial\mathrm{\mathbf{u}}}{\partial t}+\mathrm{\mathbf{u}}\cdot\nabla\mathrm{\mathbf{u}}\right)+\mathbf{\hat{z}}\times\mathbf{u}=-\nabla P+R_{th}\Theta\mathrm{r+\left(\nabla\times\mathbf{B}\right)\times\mathbf{B+\mathit{E_{k}\nabla^{2}\mathbf{u}}}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\frac{\partial\mathrm{\mathbf{B}}}{\partial t}=\nabla\times\left(\mathbf{u}\times\mathbf{B}\right)+\nabla^{2}\mathbf{B}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\frac{\partial\Theta}{\partial t}+\mathbf{u}\cdot\nabla\left(T_{0}+\Theta\right)=q_{k}\nabla^{2}\Theta\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\nabla\cdot\mathbf{u}=0,\,\,\nabla\cdot\mathrm{\mathbf{B}}=0\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Note that 
+\series bold
+\emph on
+r
+\series default
+\emph default
+ in the buoyant force has been normalized with 
+\begin_inset Formula $r_{o}$
+\end_inset
+
+, while it is normalized with 
+\emph on
+D
+\emph default
+ in Christensen's equation.
+\end_layout
+
+\begin_layout Subsubsection
+Parameter conversion
+\end_layout
+
+\begin_layout Enumerate
+Conducting state
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+In Christensen, 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+T_{0}\left(r\right)=\Delta T\left(\frac{r_{o}r_{i}}{rD}-\frac{r_{i}}{D}\right),\,\,\,\, D=r_{o}-r_{i},\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+in Kuang,
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+T_{0}\left(r\right)=r_{o}h_{T}\left[\frac{r_{i}^{2}}{rr_{o}}\left(1-\frac{\varepsilon}{3}\frac{r_{i}}{r_{o}}\right)-\frac{\varepsilon}{6}\left(\frac{r}{r_{o}}\right)^{2}\right]+\tilde{T_{0}.}\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+For benchmarking, equations 
+\begin_inset LatexCommand \ref{eq:}
+
+\end_inset
+
+ and 
+\begin_inset LatexCommand \ref{eq:}
+
+\end_inset
+
+ must be identical.
+ Therefore
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+\varepsilon=0,\,\,\,\tilde{T}_{0}=-\Delta T\frac{r_{i}}{D},\,\,\, h_{T}=\Delta T\frac{r_{o}}{r_{i}D}=\frac{\Delta T}{r_{io}D^{'}},\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+where 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+r_{io}\equiv r_{i}/r_{o}.\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Non-dimensional parameters
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula \[
+R_{o}\equiv\frac{\eta}{2\Omega r_{o}^{2}}=\frac{1}{2}\frac{\eta}{\nu}\frac{D^{2}}{r_{o}^{2}}\left(\frac{\nu}{\Omega D^{2}}\right)=\frac{1}{2}\left(\frac{D}{r_{o}}\right)^{2}\frac{1}{P_{m}}E_{c}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align right
+\begin_inset Formula \begin{equation}
+=\frac{1}{2}\left(1-r_{io}\right)^{2}\frac{1}{P_{m}}E_{c},\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+q_{k}\equiv\frac{\kappa}{\eta}=\left(\frac{\kappa}{\nu}\right)\left(\frac{\nu}{\eta}\right)\:\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+=\frac{P_{m}}{P_{r}},\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\begin_inset Formula \[
+R_{th}\equiv\frac{ag_{o}h_{T}r_{o}^{2}}{2\Omega\eta}=\frac{ag_{o}\Delta TD}{\Omega\nu}\left(\frac{1}{2}\frac{\nu}{\eta}\frac{h_{T}r_{o}^{2}}{\Delta TD}\right)\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+=\frac{1}{2}\frac{\nu}{\eta}\frac{1}{r_{io}\left(1-r_{io}\right)^{2}}R_{a}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+=\frac{P_{m}}{2r_{io}\left(1-r_{io}\right)^{2}}R_{a}\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+E\equiv\frac{\nu}{2\Omega r_{o}^{2}}=\frac{D^{2}}{2r_{o}^{2}}\frac{\nu}{\Omega D^{2}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+=\frac{1}{2}\left(1-r_{io}\right)^{2}E_{c}\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Non-dimensional physical fields
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula \[
+\mathrm{u}\equiv\mathrm{v\frac{\mathit{\mathit{r}_{o}}}{\eta}=\mathbf{v}\frac{\mathit{D}}{\nu}\frac{\nu}{\eta}\frac{\mathit{r_{o}}}{\mathit{D}}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+=\frac{P_{m}}{1-r_{io}}\mathrm{\mathbf{u}}_{c},\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\mathbf{B}\equiv\widetilde{\mathrm{\mathbf{B}}}/\left(2\rho\mu\eta\Omega\right)^{1/2}=\frac{1}{\sqrt{2}}\widetilde{\mathrm{\mathbf{B}}}/\left(\rho\mu\eta\Omega\right)^{1/2}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{equation}
+=\frac{1}{\sqrt{2}}\mathrm{\mathbf{B}}_{c}.\,\label{eq:}\end{equation}
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Other physical quantities
+\end_layout
+
+\begin_layout Standard
+[STOPPED HERE]
+\end_layout
+
+\begin_layout Standard
+(2.10)
+\end_layout
+
+\begin_layout Standard
+(2.11)
+\end_layout
+
+\begin_layout Standard
+Initial conditions
+\end_layout
+
+\begin_layout Standard
+The initial conditions on radial magnetic field in Christensen can be written
+ as,
+\end_layout
+
+\begin_layout Standard
+Thus, in Kuang?s model, the coefficient should be,
+\end_layout
+
+\begin_layout Standard
+The initial conditions on azimuzal magnetic field is,
+\end_layout
+
+\begin_layout Standard
+In kuang?s model, the initial conditions can be rescaled as,
+\end_layout
+
+\begin_layout Standard
+The initial perturbation of the temperature is
+\end_layout
+
+\begin_layout Standard
+where , x being 2r-ro-ri
+\end_layout
+
+\begin_layout Standard
+In Kuang?s model, 
+\end_layout
+
+\begin_layout Standard
+where , x being 
+\end_layout
+
+\begin_layout Standard
+Benchmark cases
+\end_layout
+
+\begin_layout Standard
+Case 2 : Conducting and freely rotating inner core
+\end_layout
+
+\begin_layout Standard
+Christensen?s parameters:
+\end_layout
+
+\begin_layout Standard
+, 
+\end_layout
+
+\begin_layout Standard
+,
+\end_layout
+
+\begin_layout Standard
+Kuang?s parameters:
+\end_layout
+
+\begin_layout Standard
+MoSST set up
+\end_layout
+
+\begin_layout Standard
+KICBV = 1 (no slip at ICB)
+\end_layout
+
+\begin_layout Standard
+KICMV = 1 (no slip at CMB)
+\end_layout
+
+\begin_layout Standard
+KICBT = 1 (fixed heat flux at ICB)
+\end_layout
+
+\begin_layout Standard
+KCMBT = 1 (fixed heat flux at CMB)
+\end_layout
+
+\begin_layout Standard
+k_icrot = 1 (only axial differential rotation )
+\end_layout
+
+\begin_layout Standard
+navfb = 70 ( truncation level for artificial diffision of B)
+\end_layout
+
+\begin_layout Standard
+navft = 70 ( truncation level for artificial diffision of T)
+\end_layout
+
+\begin_layout Standard
+navfv1 = 70 ( truncation level for artificial diffision of v1) (miner =
+ 16) 
+\end_layout
+
+\begin_layout Standard
+navfv1 = 70 ( truncation level for artificial diffision of v2)
+\end_layout
+
+\begin_layout Standard
+Estimation
+\end_layout
+
+\begin_layout Standard
+Time scale
+\end_layout
+
+\begin_layout Standard
+=0.0845tc
+\end_layout
+
+\begin_layout Standard
+tc~15, tk~1
+\end_layout
+
+\begin_layout Standard
+temperature scale
+\end_layout
+
+\begin_layout Standard
+magnetic field
+\end_layout
+
+\begin_layout Standard
+--? E_b ~ 1.45 
+\end_layout
+
+\begin_layout Standard
+? E_v ~ 50.03
+\end_layout
+
+\begin_layout Subsection
+Gravity
+\end_layout
+
+\begin_layout Section
+MoSST History
+\end_layout
+
+\begin_layout Standard
+Gale arose from discussions at an NSF-sponsored workshop on Tectonic Modeling
+ held in Breckenridge, Colorado, in June 2005; see 
+\begin_inset LatexCommand \htmlurl[Geodynamic Modeling of Tectonics Processes 2005 workshop report]{www.geodynamics.org/cig/workinggroups/long/workshops/2005/issues}
+
+\end_inset
+
+.
+ At that workshop, members of the tectonics community advocated that CIG
+ develop a new open-source software package based on the Arbitrary Lagrangian
+ Eulerian (ALE) method for solving tectonic problems.
+ The ALE method, as it is implemented in the tectonics community, was developed
+ primarily at Dalhousie University in Canada.
+ It solves a Stokes flow problem on an Eulerian grid and uses a Lagrangian
+ grid to track material properties and to integrate strain.
+ This method has seen a great deal of use in crustal and lithospheric deformatio
+n problems such as orogenesis, rifting, and subduction, as well as in coupling
+ to surface erosion models, and has been employed for deeper mantle dynamics
+ problems.
+ Gale is an open-source code that we hope will be at least as useful as
+ SOPALE and MicroFEM 
+\begin_inset LatexCommand \cite{Fullsack}
+
+\end_inset
+
+ for addressing these research areas
+\color none
+, with the addition of 3D capability.
+ In the future, Gale will run benchmarks such as extension and shortening,
+ as well as the traditional subduction model as shown in Fig.
+ 
+\begin_inset LatexCommand \ref{fig:General-subduction-model}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+The development of Gale was jump-started by building on top of Underworld
+ 
+\begin_inset LatexCommand \cite{Underworld}
+
+\end_inset
+
+, a mantle convection code developed by Louis Moresi's group at Monash and
+ the Victorian Partnership for Advanced Computing (VPAC).
+ Underworld was created as a parallel version of Ellipsis3D 
+\begin_inset LatexCommand \cite{Ellipsis}
+
+\end_inset
+
+, a mantle convection code which grew out of CitCom 
+\begin_inset LatexCommand \cite{Citcom}
+
+\end_inset
+
+.
+ Walter Landry of CIG and Luke Hodkinson of VPAC are the primary developers
+ of the Gale-specific components.
+ Roger Buck, Robert Bialis, and Gus Correa of Lamont-Doherty Earth Observatory,
+ Columbia University, provided valuable user testing.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:General-subduction-model}
+
+\end_inset
+
+General subduction model from 
+\begin_inset LatexCommand \cite{Fullsack}
+
+\end_inset
+
+.
+ The basic subduction model can be modified by introducing isostasy and/or
+ boundary mass fluxes.
+ (a) Flexural or local isostasy.
+ Every Eulerian column is displaced by the corresponding local or flexural
+ deflection 
+\emph on
+w
+\emph default
+ of the base.
+ (b) Mass fluxes crossing the boundaries may be: (1) the tectonic flux 
+\emph on
+t
+\emph default
+
+\begin_inset Formula $^{\text{+}}$
+\end_inset
+
+ into the domain, due to tectonic convergence; (2) the deposition flux 
+\begin_inset Formula $\text{e}^{+}$
+\end_inset
+
+ onto the domain, due to surface processes; (3) the deposition flux 
+\begin_inset Formula $\text{e}^{-}$
+\end_inset
+
+ from the domain, due to surface processes; (4) the crustal subduction flux
+ 
+\begin_inset Formula $\text{cs}^{-}$
+\end_inset
+
+ from the domain, due to the entrainment of crustal material from the subducting
+ plate.
+ 
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/GALE_image1.eps
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Chapter
+Installation and Getting Help
+\end_layout
+
+\begin_layout Section
+Introduction
+\end_layout
+
+\begin_layout Standard
+Installation of Gale on a desktop or laptop machine is, in most cases, very
+ easy.
+ Binary packages have been created for the most common platforms, i.e., Linux,
+ Mac OS X, and Windows.
+ Installation on other architectures or on parallel machines requires building
+ the software from the source code, which can be difficult for inexperienced
+ users.
+ 
+\end_layout
+
+\begin_layout Section
+Binaries
+\end_layout
+
+\begin_layout Standard
+If you do not need to run on parallel machines, the easiest way to install
+ Gale is to download binaries for your platform from the 
+\begin_inset LatexCommand \htmlurl[Gale website]{geodynamics.org/cig/software/packages/long/gale/}
+
+\end_inset
+
+.
+ Then you can run Gale from the command line or DOS prompt.
+ CIG provides binaries for Linux, Mac OS X (10.4 or greater), and Windows
+ (2000 and XP).
+\end_layout
+
+\begin_layout Section
+Building from Source
+\end_layout
+
+\begin_layout Standard
+Read this only if the binaries are not sufficient for you.
+ 
+\end_layout
+
+\begin_layout Subsection
+System Requirements
+\end_layout
+
+\begin_layout Standard
+Gale works on a variety of computational platforms and has been tested on
+ workstations running 
+\end_layout
+
+\begin_layout Itemize
+Mac OS X 10.4.6 (G4 and G5)
+\end_layout
+
+\begin_layout Itemize
+Windows 2000 and XP SP2
+\end_layout
+
+\begin_layout Itemize
+RedHat Fedora Core 5 (x86)
+\end_layout
+
+\begin_layout Itemize
+OpenSuse 10.0 (x86)
+\end_layout
+
+\begin_layout Itemize
+Gentoo (x86)
+\end_layout
+
+\begin_layout Itemize
+Debian stable (x86 and AMD64), testing (x86), and unstable (x86)
+\end_layout
+
+\begin_layout Standard
+Gale has also been tested on clusters running Redhat 7.2 (x86) and RedHat
+ Enterprise Linux 3 (EM64T).
+\end_layout
+
+\begin_layout Subsection
+Dependencies
+\end_layout
+
+\begin_layout Standard
+In order to build Gale, you must have the headers and development libraries
+ for
+\end_layout
+
+\begin_layout Itemize
+MPI
+\end_layout
+
+\begin_layout Itemize
+PETSc 2.3.2
+\end_layout
+
+\begin_layout Itemize
+libxml2
+\end_layout
+
+\begin_layout Standard
+You must also have python 2.2.1 or greater installed.
+ If you do not already have MPI, then in many cases PETSc can install a
+ version for you.
+ Installing PETSc also requires a Blas/Lapack implementation.
+\end_layout
+
+\begin_layout Subsection
+\begin_inset LatexCommand \label{sec:Downloading-the-Code}
+
+\end_inset
+
+Downloading the Code
+\end_layout
+
+\begin_layout Standard
+You can get the source for the latest release from the 
+\begin_inset LatexCommand \htmlurl[Gale website]{geodynamics.org/cig/software/packages/long/gale/}
+
+\end_inset
+
+.
+ In that tarball is the file INSTALL.
+ For some platforms, there are platform-specific instructions.
+ Generally, the hardest part is not installing Gale itself, but PETSc.
+\end_layout
+
+\begin_layout Subsubsection
+Source Code Repository (Experts Only)
+\end_layout
+
+\begin_layout Standard
+Advanced users and software developers may be interested in downloading
+ the latest Gale source code directly from the CIG source code repository,
+ instead of using the prepared source package.
+ To check whether you have a subversion client installed on your machine,
+ type:
+\end_layout
+
+\begin_layout LyX-Code
+svn
+\end_layout
+
+\begin_layout Standard
+You should get a response that looks something like this:
+\end_layout
+
+\begin_layout LyX-Code
+Type `svn help' for usage.
+\end_layout
+
+\begin_layout Standard
+Otherwise, you will need to download and install a Subversion client, available
+ at the 
+\begin_inset LatexCommand \htmlurl[Subversion Website]{subversion.tigris.org/project_packages.html}
+
+\end_inset
+
+.
+ Then the code can be checked out with the following command: 
+\end_layout
+
+\begin_layout LyX-Code
+svn checkout http://geodynamics.org/svn/cig/long/3D/Gale/trunk Gale
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Section
+Support
+\end_layout
+
+\begin_layout Standard
+The primary point of support for Gale is the 
+\begin_inset LatexCommand \url[CIG Long-Term Crustal Dynamics Mailing List]{cig-long at geodynamics.org}
+
+\end_inset
+
+.
+ Feel free to send questions, comments, feature requests, and bugs to the
+ list.
+ The mailing list is archived at
+\end_layout
+
+\begin_layout LyX-Code
+\begin_inset LatexCommand \htmlurl[cig-long Archives]{geodynamics.org/pipermail/cig-long/}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+You may also use the bug tracker
+\end_layout
+
+\begin_layout LyX-Code
+\begin_inset LatexCommand \htmlurl[Roundup]{geodynamics.org/roundup}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+to submit bugs and requests for new features.
+\end_layout
+
+\begin_layout Chapter
+Running Gale
+\end_layout
+
+\begin_layout Section
+Gale Usage
+\end_layout
+
+\begin_layout Standard
+If you downloaded binaries for your platform, you can run the Gale executable
+ directly.
+ For example,
+\end_layout
+
+\begin_layout LyX-Code
+./Gale-1_2_0  input/extension.xml
+\end_layout
+
+\begin_layout Standard
+will output 
+\end_layout
+
+\begin_layout LyX-Code
+TimeStep = 1, Start time = 0 + 0 prev timeStep dt
+\end_layout
+
+\begin_layout LyX-Code
+TimeStep = 2, Start time = 0 + 0.0291667 prev timeStep dt
+\end_layout
+
+\begin_layout LyX-Code
+TimeStep = 3, Start time = 0.0291667 + 0.0283326 prev timeStep dt
+\end_layout
+
+\begin_layout LyX-Code
+TimeStep = 4, Start time = 0.0574992 + 0.0274655 prev timeStep dt
+\end_layout
+
+\begin_layout LyX-Code
+TimeStep = 5, Start time = 0.0849647 + 0.0265162 prev timeStep dt
+\end_layout
+
+\begin_layout LyX-Code
+...
+\end_layout
+
+\begin_layout Standard
+If you do not specify an input file, you will get an error like
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+Error in _AbstractContext_New: The dictionary is empty, meaning no input
+ parameters have been feed
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+into your program.
+ Perhaps you've forgot to pass any input files ( or command-line arguments
+ ) in.
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+Gale: build/StGermain/Base/IO/src/Journal.c:603: Journal_Firewall: Assertion
+ `expression' failed.
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+p0_27845:  p4_error: interrupt SIGx: 6 
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+If Gale cannot find the file, you will get a different error:
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+Error: File input/extension.xml doesn't exist, not readable, or not valid.
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+Gale: build/StGermain/Base/IO/src/Journal.c:603: Journal_Firewall: Assertion
+ `expression' failed.
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+p0_16810:  p4_error: interrupt SIGx: 6
+\end_layout
+
+\begin_layout Standard
+Due to quirks in some implementations of MPI, you may have to specify the
+ complete path to the input file (e.g., 
+\family typewriter
+./Gale-1_2_0 /home/juser/gale/input/extension.xml
+\family default
+).
+\end_layout
+
+\begin_layout Standard
+In general, Gale does not have many defaults, so almost everything must
+ be specified in the input file.
+ For examples of how to create your own input files, see Chapter 
+\begin_inset LatexCommand \ref{cha:Cookbooks}
+
+\end_inset
+
+.
+ For a complete description of the input file format, see Appendix 
+\begin_inset LatexCommand \ref{cha:Input-File-Format}
+
+\end_inset
+
+.
+ 
+\end_layout
+
+\begin_layout Standard
+If you compile Gale yourself, you can run it from where you installed it.
+ If running in parallel on your own machine, prepend 
+\family typewriter
+mpirun
+\family default
+ or 
+\family typewriter
+mpiexec
+\family default
+ (depending on your local implementation of MPI).
+ For example, if your computer has two processors, then
+\end_layout
+
+\begin_layout LyX-Code
+mpirun -np 2 bin/Gale /home/juser/gale/input/extension.xml
+\end_layout
+
+\begin_layout Standard
+will use both processors.
+\end_layout
+
+\begin_layout Standard
+The 
+\family typewriter
+extension.xml
+\family default
+ example should run for 100 time steps and generate a great deal of output
+ in the 
+\family typewriter
+output.extension
+\family default
+ directory.
+ There are also examples of shortening, subduction, and relaxation of topography.
+\end_layout
+
+\begin_layout Standard
+Gale uses PETSc's GMRES linear solver by default.
+ However, PETSc has a facility where you can use command line arguments
+ to change the solver.
+ For example, on serial machines with small problems, a direct solve can
+ be much faster than GMRES.
+ To use a direct LU solve, you only need to append arguments to the command
+ line
+\end_layout
+
+\begin_layout LyX-Code
+./Gale-1_2_0  input/extension.xml -pc_type lu -ksp_type preonly
+\end_layout
+
+\begin_layout Standard
+You can also change the default values of 
+\family typewriter
+extension.xml
+\family default
+ without modifying that file by appending arguments.
+ For example, to just change the number of time steps from the default value
+ 100 to 10, use the following command
+\end_layout
+
+\begin_layout LyX-Code
+./Gale-1_2_0  input/extension.xml --maxTimeSteps=10
+\end_layout
+
+\begin_layout Standard
+You can append any number of modified parameters in one unbroken line
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+./Gale-1_2_0  input/extension.xml --maxTimeSteps=10 --dim=3 --elementResI=64
+ 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+--elementResJ=64 --elementResK=64 --particlesPerCell=60 --dumpEvery=10
+\end_layout
+
+\begin_layout Section
+Output and Visualization
+\end_layout
+
+\begin_layout Standard
+The sample input files will produce a directory in which you will find a
+ number of 
+\family typewriter
+.dat
+\family default
+, 
+\family typewriter
+.txt
+\family default
+, and 
+\family typewriter
+\color none
+.vtk
+\family default
+ files.
+ The formats of the 
+\family typewriter
+.dat
+\family default
+ and 
+\family typewriter
+.txt
+\family default
+ files are described fully in Appendix 
+\begin_inset LatexCommand \ref{cha:Output-File-Format}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+The default setting is to create files for every time step.
+ To change the frequency of creating the 
+\family typewriter
+.dat
+\family default
+ files, you need to change the parameter 
+\family typewriter
+checkpointEvery
+\family default
+.
+ For example, if you modify the line with 
+\family typewriter
+checkpointEvery
+\family default
+ to 
+\end_layout
+
+\begin_layout LyX-Code
+<param name="checkpointEvery">25</param>
+\end_layout
+
+\begin_layout Standard
+then the 
+\family typewriter
+.dat
+\family default
+ files will only be created every 25 time steps.
+ You can change the value to any number you want.
+ On the other hand, to change the frequency for creating 
+\family typewriter
+.txt
+\family default
+ and 
+\family typewriter
+.vtk
+\family default
+ files, you need to change the parameter 
+\family typewriter
+dumpEvery
+\family default
+.
+\end_layout
+
+\begin_layout LyX-Code
+<param name="dumpEvery">25</param>
+\end_layout
+
+\begin_layout Quote
+
+\color red
+Note:
+\color none
+ In order to get viscosity information out, you must add a 
+\family typewriter
+StoreViscosity
+\family default
+ struct to your rheology as in Section 
+\begin_inset LatexCommand \ref{sec:Viscous-Material}
+
+\end_inset
+
+ (see also Section 
+\begin_inset LatexCommand \ref{sub:StoreViscosity}
+
+\end_inset
+
+).
+ This is already done in all of the example input files.
+\end_layout
+
+\begin_layout Standard
+
+\color none
+There are a number of different options for visualizing the data.
+ The easiest way is to use the 
+\family typewriter
+.vtk
+\family default
+ files.
+ These files are in a standard, self-describing file format that can be
+ easily visualized with several different visualization programs, e.g., 
+\begin_inset LatexCommand \htmlurl[ParaView]{paraview.org}
+
+\end_inset
+
+, 
+\begin_inset LatexCommand \htmlurl[MayaVI]{mayavi.sf.net}
+
+\end_inset
+
+, and 
+\begin_inset LatexCommand \htmlurl[Visit]{www.llnl.gov/visit}
+
+\end_inset
+
+.
+ ParaView is recommended as it is easy to get working, easy to use, and
+ scales to large data sets.
+\end_layout
+
+\begin_layout Standard
+Another option is to use the Matlab scripts in the 
+\family typewriter
+tools/
+\family default
+ directory.
+ These scripts only work in 2D and only when running simulations with yielding
+ material.
+\end_layout
+
+\begin_layout Standard
+The last option is to use a spreadsheet program such as Excel.
+ This is very limited, as you only see the location of the particles.
+ You cannot visualize the viscosity or degree of yielding of the particles,
+ nor can you visualize the fields (e.g.
+ strain rate, pressure, etc.).
+\end_layout
+
+\begin_layout Subsection
+Visualization with ParaView
+\begin_inset LatexCommand \label{sub:Visualization-with-ParaView}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\color none
+To visualize step #10 of 
+\family typewriter
+input/extension.xml
+\family default
+, 
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Start Paraview and open new data: 
+\family sans
+File
+\family default
+ 
+\begin_inset Formula $\triangleright$
+\end_inset
+
+ 
+\family sans
+Open Data
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_open_data.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+A file dialog screen will appear.
+ Navigate to the output directory and select 
+\family typewriter
+\color none
+pressure.0.00010.vtk
+\family default
+.
+ Paraview will display a pseudocolor plot of the pressure.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_pressure.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You can also look at the velocities and strains by opening 
+\family typewriter
+\color none
+fields.0.00010.vtk
+\family default
+ (with 
+\family sans
+File
+\family default
+ 
+\begin_inset Formula $\triangleright$
+\end_inset
+
+ 
+\family sans
+Open Data
+\family default
+).
+ By default, Paraview will obscure the pressure with the velocity magnitude.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+
+\color none
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_vmag.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You can remove the velocity magnitude by clicking on the ``eye'' symbol
+ next to 
+\family typewriter
+\color none
+fields.0.00010.vtk
+\family default
+, graying it out.
+\newline
+
+\newline
+
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_grey_eye.png
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Now you can plot the velocity as arrows on top of the pressure: Click on
+ the ``Glyph'' symbol
+\newline
+
+\newline
+
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_glyph.png
+
+\end_inset
+
+
+\newline
+
+\newline
+and then press the green ``Accept'' button.
+ The result will look like this:
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_pressure_velocity.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You can also visualize the Strain Rate Invariant: Click on the grayed-out
+ eye next to 
+\family typewriter
+\color none
+fields.0.00010.vtk
+\family default
+, and then click on the ``Display'' tab.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_v_vector.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Finish by clicking on the drop down list to the right of ``Color by'' and
+ selecting ``Point StrainRateInvariantField.''
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_strainrate.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Now look at the particles.
+ Starting over, open 
+\family typewriter
+\color none
+particles.0.00010.vtk
+\family default
+ and click on the ``Glyph'' button.
+ Change Glyph to Sphere0, Scale Mode to ``Data Scaling Off,'' the Scale
+ Factor to 0.01, and press the Accept button.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+
+\color none
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_particles_viscosity.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\color none
+This displays the viscosity of the particles.
+ The blue points represent low viscosity material, either the material at
+ the bottom that was originally low viscosity, or the material that has
+ yielded.
+ 
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+To see explicitly which material has yielded, click on the ``Display'' tab
+ and change the ``Color by'' box to ``Point Yielding_fraction.''
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_particles_yielding.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Subsection
+Visualization with Matlab or Octave
+\end_layout
+
+\begin_layout Standard
+
+\color none
+Gale includes a number of Matlab visualization scripts in the 
+\family typewriter
+tools/
+\family default
+ directory.
+ The scripts also work with Octave, a free Matlab clone.
+ However, they only work for 2D runs with yielding rheologies.
+ To use these scripts, 
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Navigate into the 
+\family typewriter
+tools/
+\family default
+ directory 
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Modify 
+\family typewriter
+fname
+\family default
+ in 
+\family typewriter
+PlotGaleOutput.m
+\family default
+ to point to the output directory
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Change 
+\family typewriter
+step
+\family default
+ to the time step
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Start Matlab or Octave and type
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+PlotGaleOutput
+\end_layout
+
+\begin_layout Enumerate
+Using Octave to visualize the 10th step of 
+\family typewriter
+input/extension.xml
+\family default
+ results in
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Octave_fig1.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Octave_fig2.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Octave_fig3.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Using Matlab results in
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Matlab_fig111.png
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Matlab_fig112.png
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\end_deeper
+\begin_layout Subsection
+Visualization with Excel
+\end_layout
+
+\begin_layout Standard
+
+\color none
+You can set the DumpSwarm plugin (see Section 
+\begin_inset LatexCommand \ref{sec:.txt-Files-(Particle}
+
+\end_inset
+
+) to directly output 
+\family typewriter
+.csv
+\family default
+ files, which you can use for limited visualization with a spreadsheet program
+ such as Excel.
+ For example, for the 
+\family typewriter
+input/extension.xml
+\family default
+ input file, 
+\end_layout
+
+\begin_layout Enumerate
+
+\color none
+Open the file 
+\family typewriter
+output.extension/particles.00010.csv
+\family default
+ with your spreadsheet program.
+ Select the second two columns
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+
+\color none
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Gnumeric_two_columns.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Create a chart
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+
+\color none
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Gnumeric_new_chart.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Select an XY plot and press Insert
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Gnumeric_xy_plot.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\newpage
+
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Then press anywhere on the spreadsheet, and you will have a plot of the
+ particles.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Gnumeric_final.png
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Section
+Gauging Accuracy
+\end_layout
+
+\begin_layout Standard
+Gale makes a number of approximations.
+ Before trusting any results you get from Gale, you must vary a number of
+ parameters to insure that the results are not an artifact of Gale's approximati
+ons.
+ Specifically, for every simulation, vary the resolution (
+\family typewriter
+elementResI
+\family default
+, 
+\family typewriter
+elementResJ
+\family default
+, 
+\family typewriter
+elementResK
+\family default
+) and the number of particles in each element (
+\family typewriter
+particlesPerCell
+\family default
+).
+ For problems with inflow boundaries (see Sections 
+\begin_inset LatexCommand \ref{sec:Viscous-In-Outflow}
+
+\end_inset
+
+ and 
+\begin_inset LatexCommand \ref{sub:Flux-Boundary-Conditions}
+
+\end_inset
+
+), you must vary the size of the boundary box.
+ In addition, depending on the boundary conditions, you may need to vary
+ the size of the box (
+\family typewriter
+minX
+\family default
+, 
+\family typewriter
+minY
+\family default
+, 
+\family typewriter
+minZ
+\family default
+, 
+\family typewriter
+maxX
+\family default
+, 
+\family typewriter
+maxY
+\family default
+, 
+\family typewriter
+maxZ
+\family default
+).
+ Finally, vary the tolerance for each nonlinear iteration (
+\family typewriter
+tolerance
+\family default
+ in the 
+\family typewriter
+uzawa
+\family default
+ component).
+\end_layout
+
+\begin_layout Chapter
+Cookbooks
+\begin_inset LatexCommand \label{cha:Cookbooks}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Introduction
+\end_layout
+
+\begin_layout Standard
+In this chapter, you will edit a template file (
+\family typewriter
+input/cookbook/template.xml
+\family default
+) to create customized input files.
+ You should be able to use the template file as a basis for most of your
+ own input files.
+ 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.
+ Beyond that, you only need to add where different materials are placed
+ initially.
+\end_layout
+
+\begin_layout Subsection
+Adding Lines to the Template File
+\end_layout
+
+\begin_layout Standard
+Unless otherwise specified, when you are instructed to add sections to the
+ input file
+\begin_inset Foot
+status collapsed
+
+\begin_layout Standard
+To copy and paste from this PDF with Adobe Acrobat, right click to get the
+ context menu and select ``Allow Hand Tool to Select Text.''
+\end_layout
+
+\end_inset
+
+, that text should be added after the line
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="components">
+\end_layout
+
+\begin_layout Standard
+at the beginning of the file, and before the lines
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="plugins">
+\end_layout
+
+\begin_layout Standard
+The template file is already indented to prevent you from adding a component
+ in the middle of another component, although indentation is not critical.
+\end_layout
+
+\begin_layout Subsection
+Adding Variables to the Template File
+\end_layout
+
+\begin_layout Standard
+When you are instructed to add a variable, you must add it at the end of
+ the file before the closing line
+\end_layout
+
+\begin_layout LyX-Code
+</StGermainData>
+\end_layout
+
+\begin_layout Standard
+Finished versions of all of these examples are found in 
+\family typewriter
+input/cookbook
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Section
+\begin_inset LatexCommand \label{sec:Viscous-Material}
+
+\end_inset
+
+Viscous Material
+\end_layout
+
+\begin_layout Standard
+This example simply fills up the computational domain with a single viscous
+ material.
+ It is a valid input file, but will not run as nothing is moving.
+ This file mainly serves as the basis for subsequent examples.
+\end_layout
+
+\begin_layout Enumerate
+First, copy 
+\family typewriter
+template.xml
+\family default
+ to 
+\family typewriter
+myviscous.xml
+\family default
+ to edit as follows.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Add in a material.
+ The simplest variety is a purely viscous material, so add a box covering
+ the whole domain:
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="boxShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Box</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startX">minX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endX">maxX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startY">minY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endY">maxY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startZ">minZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endZ">maxZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Note: Default parameters for the box (e.g., 
+\family typewriter
+minX
+\family default
+, 
+\family typewriter
+maxX
+\family default
+, 
+\family typewriter
+minY
+\family default
+, etc.) are already defined in 
+\family typewriter
+template.xml
+\family default
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Then set the material's viscosity
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="backgroundViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="eta0">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Remember that Gale has no internal knowledge of units, so if you think of
+ everything in cgs, then this implies a viscosity of 
+\begin_inset Formula $1\frac{g}{cm^{2}\, s}$
+\end_inset
+
+.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+In order for Gale to include the viscosity in the output, we have to store
+ the viscosity in a separate field (see Section 
+\begin_inset LatexCommand \ref{sub:StoreViscosity}
+
+\end_inset
+
+).
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="storeViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StoreVisc</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Here, 
+\family typewriter
+materialswarm
+\family default
+ is a collection of particles.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Finally, you create the material, using the components just created.
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="viscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">boxShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Save this file, as it will be the basis for other examples that follow.
+ 
+\end_layout
+
+\begin_layout Standard
+You can compare your result with the worked example in the file 
+\family typewriter
+input/cookbook/viscous.xml
+\family default
+.
+\end_layout
+
+\begin_layout Section
+\begin_inset LatexCommand \label{sec:Viscous-Material-in}
+
+\end_inset
+
+Viscous Material in Simple Extension
+\end_layout
+
+\begin_layout Standard
+The input file you created in Section 
+\begin_inset LatexCommand \ref{sec:Viscous-Material}
+
+\end_inset
+
+ is valid, but nothing moves, so Gale will output errors if you try to run
+ it.
+ In this next example, you will make the material extend by having the right
+ boundary move.
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+myviscous.xml
+\family default
+ to 
+\family typewriter
+myviscous_extension.xml
+\family default
+.
+\end_layout
+
+\begin_layout Enumerate
+Make the right boundary move by changing the line after this section
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wall">right</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">double</param>
+\end_layout
+
+\begin_layout Standard
+from
+\end_layout
+
+\begin_layout LyX-Code
+<param name="value">0.0</param>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="value">1.0</param>
+\end_layout
+
+\begin_layout Quote
+
+\series bold
+\color red
+Warning:
+\series default
+\color none
+ There are several 
+\family typewriter
+WallVC
+\family default
+ structs: 
+\family typewriter
+front
+\family default
+, 
+\family typewriter
+back
+\family default
+, 
+\family typewriter
+left
+\family default
+, 
+\family typewriter
+right
+\family default
+, 
+\family typewriter
+top
+\family default
+ and 
+\family typewriter
+bottom
+\family default
+.
+ Here we have only modified the 
+\family typewriter
+right
+\family default
+ side.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You can now run this example, and the output will go into the directory
+ 
+\family typewriter
+output.template
+\family default
+.
+ If you want to run in 3D, you only need to change the line after
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="outputPath">./output.template</param> 
+\end_layout
+
+\begin_layout Standard
+from
+\end_layout
+
+\begin_layout LyX-Code
+<param name="dim">2</param>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="dim">3</param>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is at 
+\family typewriter
+input/cookbook/viscous_extension.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Strain-viscous-extension}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_viscous_extension.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-viscous-extension}
+
+\end_inset
+
+Strain rate invariant and velocities of viscous material in extension
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The banding is a numerical artifact that arises from having a finite number
+ of particles per cell.
+ This example generates no topography, since the material is stretched uniformly.
+\end_layout
+
+\begin_layout Section
+Viscous Material with Complex Boundaries
+\end_layout
+
+\begin_layout Standard
+Another exercise is to make the bottom boundary move differently, and not
+ just have the material slide along.
+ In particular, this example will simulate a box like in Figure 
+\begin_inset LatexCommand \ref{fig:Split-Boundary}
+
+\end_inset
+
+, where the bottom right side of the box moves, but the viscous material
+ sticks to the bottom left.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/splitwall.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Split-Boundary}
+
+\end_inset
+
+Split Boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+First, copy 
+\family typewriter
+myviscous_extension.xml
+\family default
+ to 
+\family typewriter
+myviscous_split.xml
+\end_layout
+
+\begin_layout Enumerate
+Modify the bottom boundary condition of WallVC to
+\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">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="value">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="value">StepFunction</param>
+\end_layout
+
+\begin_layout LyX-Code
+    </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+This makes the velocity of the bottom boundary a step function.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You must also specify the parameters of the step function by adding the
+ variables
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="StepFunctionLowerOffset">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionUpperOffset">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionValue">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionDim">0</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionLessThan">False</param>
+\end_layout
+
+\begin_layout Standard
+to the end of the file (just before 
+\family typewriter
+</StGermain
+\family default
+Data
+\family typewriter
+>
+\family default
+).
+ 
+\end_layout
+
+\begin_layout Quote
+
+\series bold
+\color red
+Warning: 
+\series default
+\color none
+Do not add them in the list named 
+\family typewriter
+``variables
+\family default
+.'' 
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in the file 
+\family typewriter
+input/cookbook/viscous_split.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) shown in Figure 
+\begin_inset LatexCommand \ref{fig:Strain-complex}
+
+\end_inset
+
+ shows that strain rate is concentrated around the step function in the
+ bottom velocity boundary.
+ Notice the development of a basin above the discontinuity.
+ The ability to track the development of topography on the free surfaces
+ is one of the strengths of Gale.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_viscous_split.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-complex}
+
+\end_inset
+
+Strain rate invariant and velocities with complex boundaries
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+\begin_inset LatexCommand \label{sec:Viscous-In-Outflow}
+
+\end_inset
+
+Viscous Material with Inflow/Outflow Boundaries
+\end_layout
+
+\begin_layout Standard
+This example implements a different kind of boundary condition, where material
+ flows in one side and out another as in Figure 
+\begin_inset LatexCommand \ref{fig:Inflow/Outflow-Boundary}
+
+\end_inset
+
+.
+ 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.
+ A more realistic model of subduction is included in the sample input file
+ 
+\family typewriter
+input/subduction.xml
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/inflow.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Inflow/Outflow-Boundary}
+
+\end_inset
+
+Inflow/Outflow Boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Copy the file 
+\family typewriter
+myviscous.xml
+\family default
+ that you created in Section 
+\begin_inset LatexCommand \ref{sec:Viscous-Material}
+
+\end_inset
+
+ to 
+\family typewriter
+myviscous_inflow.xml
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Then, add the following lines after the 
+\family typewriter
+wrapTop
+\family default
+ line so that Gale keeps the left and bottom sides fixed:
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="staticLeft">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="staticBottom">True</param>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Now specify the velocities on the boundaries using the 
+\family typewriter
+StepFunctionProduct
+\family default
+ functions.
+ For the left boundary, modify the left 
+\family typewriter
+WallVC
+\family default
+ to
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wall">left</param>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+and add the variables at the end of the file (just before 
+\family typewriter
+</StGermainData>
+\family default
+)
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3Start">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3End">0.2</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="StepFunctionProduct3Value">1</param>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+For the bottom boundary, modify the bottom 
+\family typewriter
+WallVC
+\family default
+ to
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+<list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct2</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+  <struct>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="name">vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="value">StepFunctionProduct1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </struct>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+and add the variables to the end of the file (just before 
+\family typewriter
+</StGermainData>
+\family default
+)
+\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
+
+\end_deeper
+\begin_layout Enumerate
+Finally, you must alter the way that Gale creates particles.
+ The inflow boundary condition will naturally create a space devoid of particles.
+ Gale then creates new particles to fill that void.
+ Normally, Gale looks at nearby particles and replicates them.
+ However, nearby material has already changed a little from the boundary,
+ so replicating them will not give the new particles the correct properties.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+To fix that, create a thin layer next to the boundary where material is
+ created anew.
+ To do that, first create this shape
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="leftBoundaryShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Box</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startX">minX</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endX">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startY">minY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endY">maxY</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="startZ">minZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="endZ">maxZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and then instruct the particle splitting routine to use this shape by adding
+ 
+\end_layout
+
+\begin_layout LyX-Code
+<param name="originalParticleShape">leftBoundaryShape</param>
+\end_layout
+
+\begin_layout Standard
+after
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="splittingRoutine">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ReseedSplitting</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="idealParticleCount">particlesPerCell</param>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in the file 
+\family typewriter
+input/cookbook/viscous_inflow.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Strain-inflow}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_viscous_inflow.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-inflow}
+
+\end_inset
+
+Strain rate invariant and velocities with inflow/outflow boundaries
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Viscous Material with Stress Boundaries
+\end_layout
+
+\begin_layout Standard
+This example demonstrates yet another boundary condition, where only the
+ stress is specified at the boundary.
+ In particular, this example describes a box like Figure 
+\begin_inset LatexCommand \ref{fig:Stress-Boundaries}
+
+\end_inset
+
+.
+ There is a tangential stress at the bottom causing a circulation, but otherwise
+ the bottom is stress-free.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/stressbc.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Stress-Boundaries}
+
+\end_inset
+
+Stress Boundaries
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Copy the file 
+\family typewriter
+myviscous.xml
+\family default
+ that you created in Section 
+\begin_inset LatexCommand \ref{sec:Viscous-Material}
+
+\end_inset
+
+ to 
+\family typewriter
+myviscous_stressbc.xml
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Add a 
+\family typewriter
+StressBC
+\family default
+ component
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="stressBC">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StressBC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ForceVector">mom_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">picIntegrationPoints</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_type">func</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="x_value">StepFunctionProduct1</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and corresponding variables to the end of the file (just before 
+\family typewriter
+</StGermainData>
+\family default
+)
+\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
+
+\end_deeper
+\begin_layout Standard
+A worked example is in the file 
+\family typewriter
+input/cookbook/viscous_stressbc.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Strain-stress}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_viscous_stressbc.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-stress}
+
+\end_inset
+
+Strain rate invariant and velocities with stress boundaries
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+\begin_inset LatexCommand \label{sec:Viscous-Material-with}
+
+\end_inset
+
+Viscous Material with Initially Deformed Upper Boundary
+\end_layout
+
+\begin_layout Standard
+All of the previous examples are set up as a regular rectangular box.
+ However, Gale can also start with the top initially deformed, such as if
+ we had a mountain range with substantial topography.
+ This example will make it sinusoidal as in Figure 
+\begin_inset LatexCommand \ref{fig:Sinusoidal-Top}
+
+\end_inset
+
+.
+ This example has no moving boundaries, so the material will simply relax.
+ 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/sinusoid.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Sinusoidal-Top}
+
+\end_inset
+
+Sinusoidal Top
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+myviscous.xml
+\family default
+ to 
+\family typewriter
+myviscous_sinusoid.xml
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Add a 
+\family typewriter
+SurfaceAdaptor
+\family default
+ component:
+\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="surfaceType">sine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="origin">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="amplitude">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frequency">6.28318530718</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in 
+\family typewriter
+input/cookbook/viscous_sinusoid.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in 
+\begin_inset LatexCommand \ref{fig:Strain-initial-deformed}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_viscous_sinusoid.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-initial-deformed}
+
+\end_inset
+
+Strain rate invariant and velocities with initially deformed upper boundary
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Multiple Viscous Materials
+\end_layout
+
+\begin_layout Standard
+All of the previous examples have only one type of viscous material.
+ This example will create a simulation where there are multiple viscous
+ materials such as in Figure 
+\begin_inset LatexCommand \ref{fig:Multiple-Viscous-Materials}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement h
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/multi-material.eps
+	width 80col%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Multiple-Viscous-Materials}
+
+\end_inset
+
+Multiple Viscous Materials
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+myviscous_extension.xml
+\family default
+ (see Section 
+\begin_inset LatexCommand \ref{sec:Viscous-Material-in}
+
+\end_inset
+
+) to 
+\family typewriter
+mymulti_material.xml
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Add the sphere.
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="sphereShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Sphere</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CentreX">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CentreY">0.15</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="radius">0.10</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Note: If run in 3D, this is a sphere.
+ The example shown here is run in 2D, so the result is a circle.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Then add the new material.
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="sphereViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="eta0">10.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="sphereViscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">sphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>sphereViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Change the shape of the original material so it is not inside the sphere.
+ To do this, create a new shape which is the old shape minus the sphere:
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="nonSphereShape">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Intersection</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="shapes">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>boxShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>!sphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Finally, modify the original viscous material to use this new 
+\family typewriter
+nonSphereShape
+\family default
+ by changing the line after 
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="viscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout Standard
+from 
+\end_layout
+
+\begin_layout LyX-Code
+<param name="Shape">boxShape</param>
+\end_layout
+
+\begin_layout Standard
+to
+\end_layout
+
+\begin_layout LyX-Code
+<param name="Shape">nonSphereShape</param>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in 
+\family typewriter
+input/cookbook/multi_material.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Strain-multiple}
+
+\end_inset
+
+,
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_multi_material.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Strain-multiple}
+
+\end_inset
+
+Strain rate invariant and velocities with multiple viscous materials
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+and the viscosity of the particles is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Viscosities-with-multiple}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_multi_viscosity.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Viscosities-with-multiple}
+
+\end_inset
+
+Viscosities with multiple viscous materials
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Yielding Material in Simple Extension
+\end_layout
+
+\begin_layout Standard
+This example replaces the background viscous material with a yielding material.
+ This will produce localizations as some material fails.
+\end_layout
+
+\begin_layout Enumerate
+Copy 
+\family typewriter
+mymulti_material.xml
+\family default
+ to 
+\family typewriter
+myyielding.xml
+\end_layout
+
+\begin_layout Enumerate
+Add a 
+\family typewriter
+StrainWeakening
+\family default
+ component and a 
+\family typewriter
+MohrCoulomb
+\family default
+ component
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="strainWeakening">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StrainWeakening</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="softeningStrain">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFraction">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageWavenumber">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFactor">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="healingRate">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="yielding">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MohrCoulomb</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="PressureField">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VelocityGradientsField">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Context">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StrainWeakening">strainWeakening</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesion">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesionAfterSoftening">0.0001</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frictionCoefficient">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="frictionCoefficientAfterSoftening">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="minimumYieldStress">0.00001</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Finally, remove the existing viscous 
+\family typewriter
+RheologyMaterial
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+<struct name="viscous">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">nonSphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="density">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and replace it with a yielding 
+\family typewriter
+RheologyMaterial
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="crust">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">nonSphereShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>backgroundViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>yielding</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+A worked example is in 
+\family typewriter
+input/cookbook/yielding.xml
+\family default
+.
+ A visualization of the strain rate invariant and velocity (see Section
+ 
+\begin_inset LatexCommand \ref{sub:Visualization-with-ParaView}
+
+\end_inset
+
+) is shown in Figure 
+\begin_inset LatexCommand \ref{fig:strain-yield}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_yielding.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:strain-yield}
+
+\end_inset
+
+Strain rate invariant and velocities of yielding material in extension
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+A visualization of the viscosity of the particles is shown in Figure 
+\begin_inset LatexCommand \ref{fig:Viscosity-of-yielding}
+
+\end_inset
+
+,
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_yielding_viscosity.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Viscosity-of-yielding}
+
+\end_inset
+
+Viscosity of yielding material in extension
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+and a visualization of the yielding of the particles is shown in Figure
+ 
+\begin_inset LatexCommand \ref{fig:Degree-of-yielding}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Standard
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/Paraview_yielding_yielding.png
+	lyxscale 75
+	scale 75
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Degree-of-yielding}
+
+\end_inset
+
+Degree of yielding of yielding material in extension
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
+Modifying Gale
+\begin_inset LatexCommand \label{cha:Modifying-Gale}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Introduction
+\end_layout
+
+\begin_layout Standard
+If you wish to change material properties, here is a brief overview of how
+ to modify the code.
+ The following is currently lacking in many areas, but will be expanded
+ and refined in future releases.
+ 
+\end_layout
+
+\begin_layout Section
+Software Components of Gale
+\end_layout
+
+\begin_layout Standard
+Gale makes use of several physics libraries, including StGermain, StgFEM,
+ PiCellerator, and UnderWorld.
+ These are proven, capable, open-source finite element method libraries
+ written by the Victorian Partnership for Advanced Computing (VPAC) and
+ Louis Moresi's group at Monash University (see Fig 
+\begin_inset LatexCommand \ref{fig:Mapping-between-MicroFEM}
+
+\end_inset
+
+).
+ Gale also makes use of PETSc, a suite of data structures and routines for
+ the parallel solution of scientific applications modeled by partial differentia
+l equations.
+ 
+\end_layout
+
+\begin_layout Subsection
+StGermain 
+\end_layout
+
+\begin_layout Standard
+StGermain provides an infrastructure that can be used to create reusable,
+ collaborative computational development environments.
+ It aims to provide the efficiency and style of coding near that of traditional
+ HPC as well as new techniques and methods in scientific computing.
+ Effectively, it is the application of contemporary software engineering
+ on multi-disciplinary computational research.
+ In particular, StGermain can be used in the development of computational
+ finite element codes.
+ It permits the interchanging of numerical schemes without having to change
+ the problem description or the constitutive rules utilized.
+ It also allows numerical schemes and constitutive rules to be reused for
+ different problems in different disciplines.
+ Scientists can then switch to new computational technologies as they become
+ available.
+ StGermain also capitalizes on the resources invested in software development
+ on a research project, rendering that software effectively reusable for
+ subsequent projects.
+ In turn, intellectual property, skills and adaptability of the recipients
+ develop over time.
+ 
+\begin_inset LatexCommand \htmlurl[StGermain Web Site]{csd.vpac.org/twiki/bin/view/Stgermain/WebHome}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+PETSc
+\end_layout
+
+\begin_layout Standard
+PETSc, the Portable, Extensible Toolkit for Scientific Computation, is a
+ suite of data structures and routines for the uni- and parallel-processor
+ solution of large-scale scientific application problems modeled by partial
+ differential equations.
+ It employs the MPI standard for all message-passing communication.
+ 
+\begin_inset LatexCommand \htmlurl[PETSc Web Site]{www-unix.mcs.anl.gov/petsc/petsc-as/}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Caption
+\begin_inset LatexCommand \label{fig:Mapping-between-MicroFEM}
+
+\end_inset
+
+Mapping between MicroFEM and Gale
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Graphics
+	filename ../../Gale/documentation/images/GALE_imag.eps
+	lyxscale 80
+	scale 80
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+StgFEM 
+\end_layout
+
+\begin_layout Standard
+StgFEM uses the StGermain philosophy of reusability and collaborative developmen
+t to create a finite element problem composer in terms of both the linear
+ system to be solved and the finite element discretization of the problem
+ domain.
+ The composition can be described in XML and could be represented in a network
+ diagram with an appropriate tool.
+ StgFEM describes finite element systems for various formulations in a manner
+ that can allow the underlying numerics to be interchanged.
+ 
+\begin_inset LatexCommand \htmlurl[StgFEM Web Site]{csd.vpac.org/twiki/bin/view/Stgfem/WebHome}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+PiCellerator 
+\end_layout
+
+\begin_layout Standard
+PICellerator (Particle In Cellerator), a Lagrangian Integration Point Finite
+ Element framework, is implemented as an integration scheme substitute for
+ the default Gaussian scheme implemented in StgFEM.
+ The PICellerator concept has since grown to become a general Lagrangian
+ integration scheme framework and a Lagrangian constitutive rule framework.
+ The PIC scheme is provided and other Arbitrary Lagrangian Eulerian schemes
+ are in development.
+ Constitutive rules are reusable across these schemes.
+ 
+\begin_inset LatexCommand \htmlurl[PICellerator Web Site]{csd.vpac.org/twiki/bin/view/PICellerator/WebHome}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+UnderWorld 
+\end_layout
+
+\begin_layout Standard
+UnderWorld is a StGermain parallel modeling framework Geoscience research
+ code which utilizes a Lagrangian particle-in-cell finite element scheme
+ (the prototype of which is the Ellipsis code), visualised using gLucifer.
+ UnderWorld (Monash University), StGermain (Victorian Partnership for Advanced
+ Computing or VPAC) and gLucifer (Monash University) are under development
+ as part of the Australian Computational Earth Systems Simulator (ACcESS),
+ an Australian Government National Research Facility, a node of which is
+ located at the Australian Crustal Research Centre (ACRC) at Monash University
+ (Clayton Campus).
+ 
+\begin_inset LatexCommand \htmlurl[UnderWorld Web Site]{wasabi.maths.monash.edu.au/twiki/view/Software/Underworld}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+System Description
+\end_layout
+
+\begin_layout Standard
+Gale uses StgFEM to formulate implicit finite element systems, with the
+ bulk of the information placed in a stiffness matrix and a force vector.
+ Depending on the type of solver used, there may be several matrices and
+ vectors.
+ The stiffness matrix class has a member whose purpose is to assemble the
+ entire matrix.
+ It does this through the use of 
+\begin_inset Quotes eld
+\end_inset
+
+stiffness matrix terms.
+\begin_inset Quotes erd
+\end_inset
+
+ The 
+\family typewriter
+StiffnessMatrixTerm
+\family default
+ class provides an interface through which the elemental contributions to
+ the matrix may be influenced.
+ In typical fluid flow systems, the majority of the physics is applied to
+ the model through constitutive laws which modify the stiffness matrix to
+ reflect certain physical situations.
+ The 
+\family typewriter
+ConstitutiveMatrix
+\family default
+ class inherits from 
+\family typewriter
+StiffnessMatrixTerm
+\family default
+, providing an interface tailored to implementing material-based continuum
+ physics.
+ 
+\end_layout
+
+\begin_layout Standard
+So, where does the actual physics take place? The answer is in the Rheology
+ class, but first look at the PIC (particle in cell) scheme.
+ There are a number of benefits to using a PIC scheme, but the main use
+ is to store material properties on each particle.
+ These properties can then be used to drive our constitutive laws, in turn
+ modifying the produced stiffness matrices.
+ For each defined material in the domain, there may be a number of associated
+ rheological laws.
+ Whenever an element in the system is assembled, each stiffness matrix term
+ is evaluated, implying that the constitutive matrix will be evaluated for
+ each element.
+ For each particle internal to an element, the 
+\family typewriter
+ConstitutiveMatrix
+\family default
+ class will evaluate all associated rheologies, each rheology modifying
+ the constitutive matrix.
+ 
+\end_layout
+
+\begin_layout Standard
+Modifying the constitutive matrix takes place in the form of viscosity values.
+ In this, probably the simplest of rheological laws, the 
+\family typewriter
+ModifyConstitutiveMatrix
+\family default
+ method simply sets a specific viscosity value for the current element/material
+ point tuple.
+ 
+\end_layout
+
+\begin_layout Section
+Sample Rheologies 
+\end_layout
+
+\begin_layout Subsection
+Simple Viscous 
+\end_layout
+
+\begin_layout Standard
+This excerpt is taken from the file 
+\family typewriter
+src/Underworld/Rheology/src/MaterialViscosity.c
+\family default
+.
+ It has been inherited from the Rheology class and thus possesses a virtual
+ method named 
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+MaterialViscosity_ModifyConstitutiveMatrix
+\family default
+ 
+\end_layout
+
+\begin_layout Standard
+which has been overridden to set the viscosity in the constitutive matrix,
+ as follows: 
+\end_layout
+
+\begin_layout LyX-Code
+void _MaterialViscosity_ModifyConstitutiveMatrix( 
+\end_layout
+
+\begin_layout LyX-Code
+   void*                rheology, 
+\end_layout
+
+\begin_layout LyX-Code
+   ConstitutiveMatrix*  constitutiveMatrix, 
+\end_layout
+
+\begin_layout LyX-Code
+   MaterialPointsSwarm* swarm,
+\end_layout
+
+\begin_layout LyX-Code
+   Element_LocalIndex   lElement_I,
+\end_layout
+
+\begin_layout LyX-Code
+   MaterialPoint*       materialPoint,
+\end_layout
+
+\begin_layout LyX-Code
+   Coord                xi )
+\end_layout
+
+\begin_layout LyX-Code
+{
+\end_layout
+
+\begin_layout LyX-Code
+   MaterialViscosity* self = (MaterialViscosity*)rheology;
+\end_layout
+
+\begin_layout LyX-Code
+   ConstitutiveMatrix_SetIsotropicViscosity( constitutiveMatrix,
+\end_layout
+
+\begin_layout LyX-Code
+                                             self->eta0 );
+\end_layout
+
+\begin_layout LyX-Code
+}
+\end_layout
+
+\begin_layout Standard
+The parameters passed to this method provide access to the rheology class's
+ members/methods, the constitutive matrix, the swarm (material points),
+ the index of the element currently being assembled, the material point
+ currently being evaluated, and the material point's elemental coordinates.
+\end_layout
+
+\begin_layout Chapter
+\start_of_appendix
+Input File Format
+\begin_inset LatexCommand \label{cha:Input-File-Format}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Structure
+\end_layout
+
+\begin_layout Standard
+The input files are XML files.
+ This leverages a well known format to specify concepts like hierarchies,
+ lists, parameters, and arbitrary structures.
+ The entire document is placed withing a 
+\family typewriter
+StGermainData
+\family default
+ structure.
+\end_layout
+
+\begin_layout LyX-Code
+<?xml version="1.0"?>
+\end_layout
+
+\begin_layout LyX-Code
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
+\end_layout
+
+\begin_layout LyX-Code
+...
+\end_layout
+
+\begin_layout LyX-Code
+</StGermainData>
+\end_layout
+
+\begin_layout Standard
+Within that structure, there are five main parts of every Gale input file:
+ the components, the plugins, EulerDeform, Velocity Conditions, and the
+ variables.
+\end_layout
+
+\begin_layout Subsection
+Components
+\begin_inset LatexCommand \label{sub:Components}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The components section is separated off from the rest of the file with an
+ enclosing 
+\family typewriter
+components
+\family default
+ structure.
+ This 
+\family typewriter
+components
+\family default
+ structure is where the bulk of the file will be.
+ It specifies things like what the mesh will be like, which material goes
+ where, what the material properties are, what kind of solver to use, etc.
+ Most of the ideas you need to specify your problem will go into the components.
+ When adding a new component, it is important to remember to put the new
+ component inside the components structure.
+ Otherwise Gale will (silently) not use that component.
+ For example, an input file such as
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="components">
+\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>
+\end_layout
+
+\begin_layout Standard
+will correctly initialize 
+\family typewriter
+StgFEM_StandardConditionFunctions
+\family default
+, but the input file
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="components">
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\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 Standard
+will not.
+\end_layout
+
+\begin_layout Subsection
+Plugins
+\begin_inset LatexCommand \label{sub:Plugins}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Gale also has the ability to load modules during runtime.
+ To use these plugins, simply list them in a section outside of the 
+\family typewriter
+components
+\family default
+ structure.
+ For example, the following lines will enable the 
+\family typewriter
+DumpSwarm
+\family default
+, 
+\family typewriter
+EulerDeform
+\family default
+,and 
+\family typewriter
+VTKOutput
+\family default
+ plugins
+\end_layout
+
+\begin_layout LyX-Code
+<list name="plugins">
+\end_layout
+
+\begin_layout LyX-Code
+  <param>Underworld_EulerDeform</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>Underworld_DumpSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param>Underworld_VTKOutput</param>
+\end_layout
+
+\begin_layout LyX-Code
+</list> 
+\end_layout
+
+\begin_layout Standard
+Dynamically loading modules is, in general, difficult to get working on
+ multiple platforms.
+ To make things easier, Gale is bundled with a number of plugins compiled
+ into the code and ready to use:
+\end_layout
+
+\begin_layout LyX-Code
+StgFEM_FrequentOutput
+\end_layout
+
+\begin_layout LyX-Code
+StgFEM_CPUTime
+\end_layout
+
+\begin_layout LyX-Code
+Underworld_MovingMesh
+\end_layout
+
+\begin_layout LyX-Code
+Underworld_Vrms
+\end_layout
+
+\begin_layout LyX-Code
+Underworld_EulerDeform
+\end_layout
+
+\begin_layout LyX-Code
+StgFEM_PrintFeVariableDiscreteValues
+\end_layout
+
+\begin_layout LyX-Code
+Underworld_DumpSwarm
+\end_layout
+
+\begin_layout LyX-Code
+Underworld_VTKOutput
+\end_layout
+
+\begin_layout Standard
+Note that you must still include those plugins in the list of plugins in
+ order to use them.
+ You can add additional plugins by modifying the list of static plugins
+ in 
+\family typewriter
+src/Gale/src/main.c
+\family default
+ and making sure that the plugin is compiled into the Gale executable.
+\end_layout
+
+\begin_layout Standard
+If you want to use dynamically loaded plugins, make sure that you compiled
+ with shared libraries (use the 
+\family typewriter
+--with-shared
+\family default
+ option when compiling) and set your 
+\family typewriter
+LD_LIBRARY_PATH 
+\family default
+environment variable appropriately.
+\end_layout
+
+\begin_layout Subsection
+EulerDeform
+\begin_inset LatexCommand \label{sub:EulerDeform}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The 
+\family typewriter
+Underworld_EulerDeform
+\family default
+ component allows the upper surface to move freely or stay rigidly in place.
+ An example 
+\family typewriter
+EulerDeform
+\family default
+ struct is
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="EulerDeform">
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="systems">
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="mesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="remesher">pressureRemesher</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="velocityField">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <list name="fields">
+\end_layout
+
+\begin_layout LyX-Code
+        <struct> 
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="field">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="variable">pressure</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 LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="remesher">velocityRemesher</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="velocityField">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="wrapTop">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <list name="fields">
+\end_layout
+
+\begin_layout LyX-Code
+        <struct>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="field">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="variable">velocity</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 LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+This tells Gale to remesh both the pressure and velocity field.
+ The components 
+\family typewriter
+\size small
+pressureRemesher
+\family default
+, 
+\family typewriter
+velocityRemesher
+\family default
+, 
+\family typewriter
+pressureField
+\family default
+, 
+\family typewriter
+velocityField
+\family default
+, 
+\family typewriter
+pressure
+\family default
+\size default
+, and
+\size small
+ 
+\family typewriter
+velocity
+\family default
+\size default
+ all must be defined earlier (see Section 
+\begin_inset LatexCommand \ref{sub:Components}
+
+\end_inset
+
+).
+ 
+\end_layout
+
+\begin_layout Standard
+Note the critical line
+\end_layout
+
+\begin_layout LyX-Code
+<param name="wrapTop">True</param>
+\end_layout
+
+\begin_layout Standard
+that tells Gale to make 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
+Additionally, Gale can 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.
+ 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
+ boundary would quickly become distorted and ruin the simulation.
+ To fix the right boundary, set the variable 
+\family typewriter
+staticRight
+\family default
+ to 
+\family typewriter
+True
+\end_layout
+
+\begin_layout LyX-Code
+<param name="staticRight">True</param>
+\end_layout
+
+\begin_layout Standard
+Similarly, you can independently set the left, top, bottom, front, and back
+ boundaries.
+\end_layout
+
+\begin_layout Standard
+Note that you must include 
+\family typewriter
+Underworld_EulerDeform
+\family default
+ in the list of plugins (see Section 
+\begin_inset LatexCommand \ref{sub:Plugins}
+
+\end_inset
+
+) in order for this section to have any effect.
+\end_layout
+
+\begin_layout Subsection
+Velocity Boundary Conditions
+\end_layout
+
+\begin_layout Standard
+This section specifies what the boundary conditions on the velocity will
+ be.
+ See Section 
+\begin_inset LatexCommand \ref{sub:Velocity-Boundary-Conditions}
+
+\end_inset
+
+ for more details.
+\end_layout
+
+\begin_layout Subsection
+Variables
+\begin_inset LatexCommand \label{sub:Variables}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The last section is where most of our numeric constants are placed.
+ For example, how many time steps, how often to print output, etc.
+ You may also declare variables for convenience (e.g., the number of grid
+ points) and use it elsewhere, such as in the components.
+ If you are using the basic set of components, then the more important parameter
+s are:
+\end_layout
+
+\begin_layout Description
+maxTimeSteps The number of time steps to take in the simulation.
+ Each time step can cover a different amount of time.
+ Gale determines how big of a step to take by dividing the grid size by
+ the largest velocity during that time step.
+ Unfortunately, there is no way to stop at a maximum time.
+\end_layout
+
+\begin_layout Description
+dumpEvery How often DumpSwarm dumps information to files.
+\end_layout
+
+\begin_layout Description
+checkPointEvery How often to dump every variable to files.
+\end_layout
+
+\begin_layout Description
+outputPath The directory to put output files in.
+\end_layout
+
+\begin_layout Description
+dim The number of dimensions of the problem (2 or 3).
+\end_layout
+
+\begin_layout Description
+minX,minY,minZ,maxX,maxY,maxZ The physical size of the box you are simulating.
+ Note that this may be modified by 
+\family typewriter
+SurfaceAdaptor
+\family default
+ (Section 
+\begin_inset LatexCommand \ref{sec:Deformed-Upper-Boundary}
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+elementResI,elementResJ,elementResK The number of elements in each direction.
+ Note that the number of grid points is one larger (e.g., 64 elements -> 65
+ grid points).
+\end_layout
+
+\begin_layout Description
+shadowDepth When running in parallel, every parameter only computes quantities
+ over a portion of the grid.
+ To do this, each processor must keep copies of points that belong to other
+ processors.
+ This parameter specifies how wide the region of copied points is.
+ You should never need to change this from 1.
+\end_layout
+
+\begin_layout Description
+gaussParticlesX,gaussParticlesY,gaussParticlesZ The number of particles
+ in each direction when putting down particles using a Gaussian distribution.
+ You should never need to change this number.
+\end_layout
+
+\begin_layout Description
+particlesPerCell The ideal number of particles in each element.
+ Gale will attempt to keep the number of particles in each element close
+ to this number.
+ You need to vary this number to gauge how sensitive the results of our
+ simulation are to this number.
+\end_layout
+
+\begin_layout Section
+Basic Components
+\begin_inset LatexCommand \label{sec:Basic-Components}
+
+\end_inset
+
+
+\end_layout
+
+\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
+ 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 you have to include a number of components in every input file.
+ These components are
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="mesh-constant">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">FeMesh</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="elementType">constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="constantMesh-generator">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">C0Generator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="elementMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="mesh-linear">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">FeMesh</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="elementType">linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="linearMesh-generator">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">CartesianGenerator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="dim">dim</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="shadowDepth">shadowDepth</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="size">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>elementResI</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>elementResJ</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>elementResK</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="minCoord">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>minX</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>minY</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>minZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="maxCoord">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>maxX</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>maxY</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>maxZ</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MeshVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Rank">Vector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="DataType">Double</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VectorComponentCount">dim</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="names">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vz</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityBCs">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">CompositeVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Data">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityICs">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">CompositeVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Data">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityDofLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">DofLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="BaseVariableCount">dim</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="BaseVariables">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vx</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>vz</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">FeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FEMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="DofLayout">velocityDofLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="BC">velocityBCs</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="IC">velocityICs</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="LinkedDofInfo">velocityLinkedDofs</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityMagnitudeField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">Magnitude</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityGradientsField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">Gradient</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityGradientsInvariantField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TensorInvariant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityXXField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TakeFirstComponent</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VelocityYYField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TakeSecondComponent</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="StrainRateField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TensorSymmetricPart</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="VorticityField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TensorAntisymmetricPart</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="StrainRateInvariantField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">SymmetricTensor_Invariant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">StrainRateField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="StrainRateXXField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TakeFirstComponent</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">StrainRateField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="StrainRateYYField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">OperatorFeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Operator">TakeSecondComponent</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">StrainRateField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="pressure">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MeshVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Rank">Scalar</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="DataType">Double</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="pressureDofLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">DofLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="BaseVariables">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>pressure</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="PressureField">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">FeVariable</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FEMesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="DofLayout">pressureDofLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="LinkedDofInfo">pressureLinkedDofs</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="cellLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">SingleCellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="particleLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">GaussParticleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="gaussSwarm">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">IntegrationPointsSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CellLayout">cellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ParticleLayout">particleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="IntegrationPointMapper">gaussMapper</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="gaussMapper">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">GaussMapper</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="IntegrationPointsSwarm">gaussSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">gaussMaterialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="backgroundLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">BackgroundParticleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="gaussMaterialSwarm">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialPointsSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CellLayout">cellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ParticleLayout">backgroundLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="timeIntegrator">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">TimeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="order">1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="simultaneous">t</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Context">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="elementCellLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ElementCellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="weights">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">PCDVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="resolutionX">10</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="resolutionY">10</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="resolutionZ">10</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="lowerT">0.6</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="upperT">25</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="maxDeletions">3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="maxSplits">3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="localLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MappedParticleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="picIntegrationPoints">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">IntegrationPointsSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CellLayout">elementCellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ParticleLayout">localLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="WeightsCalculator">weights</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="IntegrationPointMapper">mapper</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="mapper">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">CoincidentMapper</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="IntegrationPointsSwarm">picIntegrationPoints</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="materialSwarmParticleLayout">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MeshParticleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cellParticleCount">particlesPerCell</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="materialSwarm">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialPointsSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CellLayout">elementCellLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ParticleLayout">materialSwarmParticleLayout</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="SplittingRoutine">splittingRoutine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RemovalRoutine">removalRoutine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="EscapedRoutine">escapedRoutine</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="materialSwarmAdvector">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">SwarmAdvector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VelocityField">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="PeriodicBCsManager">periodicBCsManager</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="allowFallbackToFirstOrder">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="splittingRoutine">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ReseedSplitting</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="idealParticleCount">particlesPerCell</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="solutionVelocity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">SolutionVector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="solutionPressure">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">SolutionVector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="mom_force">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ForceVector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ExtraInfo">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="cont_force">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ForceVector</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="FeVariable">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ExtraInfo">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="k_matrix">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StiffnessMatrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RowVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ColumnVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RHS">mom_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="allowZeroElementContributions">False</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="constitutiveMatrix">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">ConstitutiveMatrixCartesian</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">picIntegrationPoints</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StiffnessMatrix">k_matrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="g_matrix">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StiffnessMatrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RowVariable">VelocityField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ColumnVariable">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RHS">cont_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="allowZeroElementContributions">False</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="gradientStiffnessMatrixTerm">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">GradientStiffnessMatrixTerm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">gaussSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StiffnessMatrix">g_matrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="preconditioner">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StiffnessMatrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RowVariable">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ColumnVariable">PressureField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="RHS">cont_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="allowZeroElementContributions">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="preconditionerTerm">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">UzawaPreconditionerTerm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Swarm">picIntegrationPoints</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StiffnessMatrix">preconditioner</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="uzawa">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Stokes_SLE_UzawaSolver</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Preconditioner">preconditioner</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="tolerance">1.0e-5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="maxIterations">5000</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="stokesEqn">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Stokes_SLE</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="SLE_Solver">uzawa</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Context">context</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="StressTensorMatrix">k_matrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="GradientMatrix">g_matrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="DivergenceMatrix"></param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="CompressibilityMatrix">c_matrix</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VelocityVector">solutionVelocity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="PressureVector">solutionPressure</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ForceVector">mom_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="ContinuityForceVector">cont_force</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="killNonConvergent">false</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="nonLinearMaxIterations">nonLinearMaxIterations</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="nonLinearTolerance">nonLinearTolerance</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="makeConvergenceFile">false</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="background">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Everywhere</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="escapedRoutine">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">EscapedRoutine</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="idealParticleCount">0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityRemesher">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StripRemesher</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="meshType">regular</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="dim">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>true</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>true</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>true</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="pressureRemesher">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">CellRemesher</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="mesh">mesh-constant</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="meshType">regular</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="dim">3</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cellMesh">mesh-linear</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+For almost all simulations, you will not need to change these components.
+\end_layout
+
+\begin_layout Section
+Shapes
+\begin_inset LatexCommand \label{sec:Shapes}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When setting up a simulation, Gale reads in shapes to determine what to
+ put where.
+ For example, you can create a simulation with different materials by creating
+ different shapes and putting different materials in them.
+ As a simple example, you can create a 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
+You can perform operations on shapes to create new shapes.
+ For example, if you 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 you 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 ``!'' in front of 
+\family typewriter
+simpleSphere
+\family default
+ means ``not.'' So 
+\family typewriter
+Intersection
+\family default
+ creates a shape that is the intersection of the box and everywhere outside
+ of the sphere.
+ You can list an arbitrary number of shapes in 
+\family typewriter
+Intersection
+\family default
+.
+ Also, you 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 you 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 Subsection
+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
+
+
+\newline
+
+\newline
+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.
+\newline
+
+\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 Subsection
+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, you 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.
+ 
+\newline
+
+\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 Subsection
+ConvexHull
+\end_layout
+
+\begin_layout Standard
+This shape is a convenience function for creating intersections of 
+\family typewriter
+BelowPlane
+\family default
+.
+ 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, you 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 Subsection
+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 Subsection
+Everywhere
+\end_layout
+
+\begin_layout Standard
+This is a convenience shape simply meaning everywhere.
+\end_layout
+
+\begin_layout Subsection
+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 you specify vertices.
+ 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
+You can extrude this shape into three dimensions by specifying startZ and
+ endZ.
+\newline
+
+\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 Subsection
+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 Subsection
+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
+
+
+\newline
+
+\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
+\begin_inset LatexCommand \label{sec:Materials}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Gale supports two kinds of rheologies: viscous and yielding.
+ You can combine these two rheologies to create a more realistic composite
+ rheology.
+ You then pair this composite rheology with a shape to actually lay down
+ material on the grid.
+ As a simple example, you can create a viscous rheology
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="viscousRheology">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">MaterialViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="eta0">10.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and a Von Mises yielding rheology
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="strainWeakening">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StrainWeakening</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="softeningStrain">0.1</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFraction">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageWavenumber">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDamageFactor">0.5</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="healingRate">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\newline
+
+\newline
+<struct name="yieldingRheology">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">VonMises</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesion">10.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="cohesionAfterSoftening">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and combine them together with 
+\family typewriter
+materialShape
+\family default
+ (see Section 
+\begin_inset LatexCommand \ref{sec:Shapes}
+
+\end_inset
+
+ on how to create shapes)
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="yieldingMaterial">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">yieldingShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>viscousRheology</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>yieldingRheology</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+To output the effective isotropic viscosity, you have to add a 
+\family typewriter
+StoreVisc
+\family default
+ component
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="storeViscosity">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">StoreVisc</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+and then add that to the material
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="yieldingMaterial">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">RheologyMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Shape">yieldingShape</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="Rheology">
+\end_layout
+
+\begin_layout LyX-Code
+    <param>storeViscosity</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>viscousRheology</param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param>yieldingRheology</param>
+\end_layout
+
+\begin_layout LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Subsection
+StoreVisc
+\begin_inset LatexCommand \label{sub:StoreViscosity}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This is not a rheology per se, but rather it is an extra field where Gale
+ saves the effective isotropic viscosity.
+ For pure viscous materials, this will be the same as the viscosity you
+ supply.
+ For yielding rheologies, the effective viscosity will change as the particle
+ yields.
+ This component needs a 
+\family typewriter
+MaterialPointsSwarm
+\family default
+, which in all of the sample input files is called 
+\family typewriter
+materialSwarm
+\family default
+.
+\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
+MaterialPointsSwarm
+\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 Subsection
+Viscous
+\end_layout
+
+\begin_layout Subsubsection
+MaterialViscosity
+\end_layout
+
+\begin_layout Standard
+This is the simplest rheology.
+ There is only one variable, the viscosity 
+\family typewriter
+eta0
+\family default
+.
+\newline
+
+\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
+eta0
+\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 Subsubsection
+Frank-Kamenetskii
+\end_layout
+
+\begin_layout Standard
+This is a temperature-dependent viscosity
+\begin_inset Formula \[
+eta=eta0*\exp\left(-theta*T\right).\]
+
+\end_inset
+
+
+\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
+eta0
+\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
+theta
+\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 Subsection
+Yielding
+\end_layout
+
+\begin_layout Standard
+Yielding rheologies are a bit more complicated.
+ 
+\end_layout
+
+\begin_layout Subsubsection
+StrainWeakening
+\end_layout
+
+\begin_layout Standard
+First you need to create a 
+\family typewriter
+StrainWeakening
+\family default
+ component.
+ 
+\family typewriter
+StrainWeakening
+\family default
+ is mainly used to define an initial distribution of strain in a material
+ and to calculate the accumulated strain on each particle.
+ To that end, it requires a number of parameters.
+\end_layout
+
+\begin_layout Description
+TimeIntegrator This is the component used for time integration to accumulate
+ strain.
+ Given the standard components in Section 
+\begin_inset LatexCommand \ref{sec:Basic-Components}
+
+\end_inset
+
+, this will be 
+\family typewriter
+timeIntegrator
+\family default
+.
+\end_layout
+
+\begin_layout Description
+MaterialPointsSwarm This is the swarm of particles that this rheology will
+ tie itself to.
+ Given the standard components in Section 
+\begin_inset LatexCommand \ref{sec:Basic-Components}
+
+\end_inset
+
+, this will be 
+\family typewriter
+materialSwarm
+\family default
+.
+\end_layout
+
+\begin_layout Description
+healingRate With this parameter, accumulated strain can decrease.
+ Specifically, the time derivative of accumulated strain becomes
+\begin_inset Formula \[
+\frac{\sigma_{yield}}{\eta}\left(\frac{\beta}{1-\beta}-healingRate\right),\]
+
+\end_inset
+
+ where 
+\begin_inset Formula $\beta\equiv\sigma_{yield}/\sigma$
+\end_inset
+
+, 
+\begin_inset Formula $\sigma_{yield}$
+\end_inset
+
+ is the yield stress, 
+\begin_inset Formula $\sigma$
+\end_inset
+
+ is some measure of the current stress (e.g., the second invariant of the
+ stress tensor), and 
+\begin_inset Formula $\eta$
+\end_inset
+
+ is the isotropic viscosity.
+ Note that the healing rate should be between 0 and 1.
+\end_layout
+
+\begin_layout Description
+softeningStrain The strain at which the material has fully yielded.
+\end_layout
+
+\begin_layout Description
+initialDamageFraction The chance that an individual material particle will
+ have a non-zero initial strain.
+\end_layout
+
+\begin_layout Description
+initialDamageWaveNumber The wavenumber for the initial random strain.
+ To avoid having initial strain on the edges of the box, this should be
+ set to the inverse of the horizontal length of the box.
+\end_layout
+
+\begin_layout Description
+initialDamageFactor The maximum initial random strain for a particle is
+\newline
+
+\family typewriter
+initialDamageFactor
+\family default
+*
+\family typewriter
+softeningStrain
+\family default
+.
+ 
+\end_layout
+
+\begin_layout Description
+randomSeed A random number seed used when computing which particles are
+ initially strained.
+\end_layout
+
+\begin_layout Description
+initialStrainShape If defined, the initial random strain will only occur
+ within this shape (outside the shape the initial random strain will be
+ zero).
+\end_layout
+
+\begin_layout Standard
+You can also define a strain weakening ratio 
+\begin_inset Formula $\alpha\equiv\min\left(1,\gamma/\gamma_{softening}\right)$
+\end_inset
+
+, where 
+\begin_inset Formula $\gamma$
+\end_inset
+
+ is the accumulated strain, and 
+\begin_inset Formula $\gamma_{softening}$
+\end_inset
+
+ is the softening strain.
+ This allows us to define quantities like the effective cohesion 
+\begin_inset Formula $C_{effective}\equiv C_{pristine}\left(1-\alpha\right)+C_{yielded}\alpha$
+\end_inset
+
+ and effective friction coefficient 
+\begin_inset Formula $\phi_{effective}=\phi_{pristine}\left(1-\alpha\right)+\phi_{yielded}\alpha$
+\end_inset
+
+.
+\newline
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="10" 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
+TimeIntegrator
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+none
+\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
+MaterialPointsSwarm
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+none
+\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
+healingRate
+\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
+softeningStrain
+\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
+initialDamageFraction
+\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
+initialDamageWaveNumber
+\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.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
+initialDamageFactor
+\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.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
+randomSeed
+\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 topline="true" bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+initialStrainShape
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+none
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+\begin_inset LatexCommand \label{sub:VonMises}
+
+\end_inset
+
+VonMises
+\end_layout
+
+\begin_layout Standard
+This is the simplest yielding rheology in Gale.
+ The yielding stress is simply the effective cohesion, so this rheology
+ only has a few input parameters:
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+cohesion
+\family default
+ and 
+\family typewriter
+cohesionAfterSoftening
+\family default
+ have the obvious meanings.
+ 
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+minimumYieldStress
+\family default
+ sets an absolute minimum to the stress required to make the material yield.
+\end_layout
+
+\begin_layout Itemize
+
+\family typewriter
+StrainRateSoftening
+\family default
+ is a Boolean variable that changes how the constitutive matrix is modified
+ when the material has yielded.
+ If 
+\family typewriter
+StrainRateSoftening
+\family default
+ is 
+\family typewriter
+True
+\family default
+, then the viscosity is set to 
+\begin_inset Formula \[
+\eta_{effective}=2\sigma_{yield}^{2}\eta/\left(\sigma_{yield}^{2}+I_{2}^{2}\right),\]
+
+\end_inset
+
+ where 
+\begin_inset Formula $I_{2}$
+\end_inset
+
+ is the second invariant of the stress tensor.
+ Otherwise the viscosity is set to
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+\begin_inset Formula \[
+\eta_{effective}=\eta\sigma_{yield}/I_{2},\]
+
+\end_inset
+
+ which essentially sets the stress of the particle to the yield stress.
+\newline
+
+\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
+cohesion
+\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
+cohesionAfterSoftening
+\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
+minimumYieldStress
+\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
+StrainRateSoftening
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Standard
+False
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+DruckerPrager
+\end_layout
+
+\begin_layout Standard
+This rheology uses the same parameters as Von Mises, but also adds a friction
+ coefficient that can soften.
+ Specifically, the yield stress becomes
+\begin_inset Formula \[
+\sigma_{yield}=\alpha p+C_{p},\]
+
+\end_inset
+
+where 
+\begin_inset Formula \[
+\begin{array}{ccc}
+C_{p} & = & \frac{6C_{effective}\cos\phi_{effective}}{\sqrt{3}\left(3-\sin\phi_{effective}\right)}\\
+\alpha & = & \frac{6\sin\phi_{effective}}{\sqrt{3}\left(3-\sin\phi_{effective}\right)}\end{array},\]
+
+\end_inset
+
+and 
+\begin_inset Formula $p$
+\end_inset
+
+ is the pressure.
+ 
+\newline
+
+\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
+frictionCoefficient
+\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
+frictionCoefficientAfterSoftening
+\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
+
+
+\newline
+
+\end_layout
+
+\begin_layout Standard
+(See also 
+\begin_inset LatexCommand \ref{sub:VonMises}
+
+\end_inset
+
+.)
+\end_layout
+
+\begin_layout Subsubsection
+MohrCoulomb
+\end_layout
+
+\begin_layout Standard
+This rheology is like Drucker-Prager, but it uses the actual normal stress
+ instead of inferring a normal stress from the pressure.
+ More explicitly, the yield shear stress is 
+\begin_inset Formula \[
+\sigma_{yield}=\sigma_{n}\tan\phi_{effective}+C_{effective}.\]
+
+\end_inset
+
+ When the material is yielding, the viscosity is modified so that the stress
+ on the particle is the yield stress.
+\newline
+
+\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
+cohesion
+\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
+cohesionAfterSoftening
+\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
+frictionCoefficient
+\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
+frictionCoefficientAfterSoftening
+\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
+minimumYieldStress
+\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
+FaultingMoresiMulhaus2006
+\end_layout
+
+\begin_layout Standard
+This is a fairly complicated non-isotropic rheology.
+ The full details can be found in Moresi and Mülhaus (2006) 
+\begin_inset LatexCommand \cite{Moresi faulting}
+
+\end_inset
+
+, but essentially it keeps track of which direction a material is strained.
+ To do so, it uses a component called 
+\family typewriter
+Director
+\family default
+.
+ For the standard components given in Section 
+\begin_inset LatexCommand \ref{sec:Basic-Components}
+
+\end_inset
+
+, this would be
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="director">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="Type">Director</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="TimeIntegrator">timeIntegrator</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="VelocityGradientsField">VelocityGradientsField</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="MaterialPointsSwarm">materialSwarm</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDirectionX">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDirectionY">1.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="initialDirectionZ">0.0</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="dontUpdate">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+Otherwise, it adds one variable not present in 
+\family typewriter
+MohrCoulomb
+\family default
+: 
+\family typewriter
+ignoreOldOrientation
+\family default
+.
+ This tells Gale whether it should check to see whether material will weaken
+ further in the current direction, or if it should try every direction equally
+ each time step.
+\newline
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="7" 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
+cohesion
+\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
+cohesionAfterSoftening
+\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
+frictionCoefficient
+\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
+frictionCoefficientAfterSoftening
+\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
+minimumYieldStress
+\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
+ignoreOldOrientation
+\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 Section
+Boundary Conditions
+\end_layout
+
+\begin_layout Standard
+Gale's computational domain is logically Eulerian.
+ So in 2D, there are four boundaries: 
+\family typewriter
+right
+\family default
+, 
+\family typewriter
+left
+\family default
+, 
+\family typewriter
+top
+\family default
+, and 
+\family typewriter
+bottom
+\family default
+.
+ 3D adds 
+\family typewriter
+front
+\family default
+ and 
+\family typewriter
+back
+\family default
+.
+ Note that the boundaries in the 
+\begin_inset Formula $z$
+\end_inset
+
+ axis are 
+\family typewriter
+front
+\family default
+ and 
+\family typewriter
+back
+\family default
+, not 
+\family typewriter
+top
+\family default
+ and 
+\family typewriter
+bottom
+\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 
+\begin_inset Formula $z$
+\end_inset
+
+ boundaries are empty in 2D.
+\end_layout
+
+\begin_layout Subsection
+Velocity Boundary Conditions
+\begin_inset LatexCommand \label{sub:Velocity-Boundary-Conditions}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+To impose boundary conditions on the velocity, add a composite variable
+ condition (CompositeVC) to the input file.
+ Within that CompositeVC, add a list of conditions.
+ Within each condition, specify which boundary and what the velocity's value
+ is.
+ For example, to set the 
+\begin_inset Formula $y$
+\end_inset
+
+ velocity on the bottom to zero, add
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityBCs">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="type">CompositeVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="vcList">
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+        <struct>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="name">vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="type">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="value">0</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 LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout Standard
+If, instead, you set 
+\family typewriter
+vy
+\family default
+ to a non-zero value, then the boundary will move as the simulation proceeds.
+ If you want the sides to remain fixed, then you probably want flux boundaries,
+ in which case you 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
+You can also set the velocity to a function.
+ For example, to also set the 
+\begin_inset Formula $x$
+\end_inset
+
+ velocity to have a Gaussian distribution 
+\begin_inset Formula $\exp\left(-\left(\frac{x-0.5}{0.1}\right)^{2}\right)$
+\end_inset
+
+
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityBCs">
+\end_layout
+
+\begin_layout LyX-Code
+  <param name="type">CompositeVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+  <list name="vcList">
+\end_layout
+
+\begin_layout LyX-Code
+    <struct>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="type">WallVC</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <param name="wall">bottom</param>
+\end_layout
+
+\begin_layout LyX-Code
+      <list name="variables">
+\end_layout
+
+\begin_layout LyX-Code
+        <struct>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="name">vy</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="type">double</param>
+\end_layout
+
+\begin_layout LyX-Code
+          <param name="value">0</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">Gaussian</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 LyX-Code
+  </list>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\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 Standard
+Note that the parameters are separated out into the variables section (see
+ Section 
+\begin_inset LatexCommand \ref{sub:Variables}
+
+\end_inset
+
+).
+ In general, you can use any of the Standard Condition Functions (see Section
+ 
+\begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
+
+\end_inset
+
+) to specify the velocities.
+\end_layout
+
+\begin_layout Subsection
+Flux Boundary Conditions
+\begin_inset LatexCommand \label{sub:Flux-Boundary-Conditions}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Sometimes, you 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 you must specify for this to work.
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+The boundaries do not move.
+ 
+\series default
+For the slab subduction model, you need to ensure that neither the bottom
+ nor left boundaries move.
+ Do this by specifying
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+
+\family typewriter
+<param name="staticBottom">True</param>
+\newline
+<param name="staticLeft">True</param>
+\end_layout
+
+\begin_layout Standard
+in EulerDeform (see Section 
+\begin_inset LatexCommand \ref{sub:EulerDeform}
+
+\end_inset
+
+).
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+
+\series bold
+Velocity conditions on the boundaries.
+
+\series default
+ 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
+
+\series bold
+A region where new particles are created, not split from existing particles.
+
+\series default
+ 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, you can specify regions where particles should be created
+ anew by adding something like
+\end_layout
+
+\begin_deeper
+\begin_layout LyX-Code
+
+\family typewriter
+<param name="originalParticleShape">leftBoundaryShape</param>
+\end_layout
+
+\begin_layout Standard
+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
+
+\end_deeper
+\begin_layout Subsection
+Stress Boundary Conditions
+\end_layout
+
+\begin_layout Standard
+If the nature of our problem is that stresses are specified on the boundary
+ rather than velocities, you can specify those conditions using the 
+\family typewriter
+StressBC
+\family default
+ component.
+ For example, if you want to simulate an extension model that allows material
+ to well up in the middle, then you 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
+You can also use the Standard Condition Functions (see Section 
+\begin_inset LatexCommand \ref{sec:Standard-Condition-Functions}
+
+\end_inset
+
+), but due to technical issues, you 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
+
+), add the parameters for the 
+\family typewriter
+Gaussian
+\family default
+:
+\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
+\begin_inset LatexCommand \label{sec:Deformed-Upper-Boundary}
+
+\end_inset
+
+
+\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, you can also tell Gale to start with an 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
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+src/StGermain/Discretisation/Mesh/src/SurfaceAdaptor.c
+\end_layout
+
+\begin_layout Section
+Standard Condition Functions
+\begin_inset LatexCommand \label{sec:Standard-Condition-Functions}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Standard Condition Functions are functions that you can use to specify initial
+ conditions and boundary conditions.
+ 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/
+\family default
+.
+ For the following descriptions, the sides of the box are at 
+\begin_inset Formula $x_{min}$
+\end_inset
+
+ and 
+\begin_inset Formula $x_{max}$
+\end_inset
+
+, and 
+\begin_inset Formula $L\equiv x_{max}-x_{min}$
+\end_inset
+
+, and all names with CamelCase capitalization are variables from the input
+ file.
+\end_layout
+
+\begin_layout Description
+Velocity_SolidBodyRotation Returns the coordinates rotated by 
+\family typewriter
+SolidBodyRotationOmega
+\family default
+ around the z axis, centered at the coordinate (
+\family typewriter
+SolidBodyRotationCentreX
+\family default
+, 
+\family typewriter
+SolidBodyRotationY
+\family default
+, ), out to a radius 
+\family typewriter
+RadiusCylinder
+\family default
+.
+ Specifically, if 
+\begin_inset Formula $r<RadiusCylinder$
+\end_inset
+
+
+\begin_inset Formula \[
+\begin{array}{ccc}
+f(x,y,z)_{x} & = & -SolidBodyRotationOmega(y-SolidBodyRotationCentreY)\\
+f(x,y,z)_{y} & = & SolidBodyRotationOmega(x-SolidBodyRotationCentreX)\end{array},\]
+
+\end_inset
+
+ otherwise return 0.
+\end_layout
+
+\begin_layout Description
+Velocity_PartialRotationX Returns the x component of Velocity_SolidBodyRotation.
+\end_layout
+
+\begin_layout Description
+Velocity_PartialRotationY Returns the y component of Velocity_SolidBodyRotation.
+\end_layout
+
+\begin_layout Description
+TaperedRotationX if 
+\begin_inset Formula $r<RadiusCylinder$
+\end_inset
+
+, return Velocity_PartialRotationX.
+ If 
+\begin_inset Formula $RadiusCylinder<r<TaperedRadius$
+\end_inset
+
+, return
+\begin_inset Formula \[
+VelocityPartialRotationX\left(\frac{TaperedRadius-r}{TaperedRadius-RadiusCylinder}\right).\]
+
+\end_inset
+
+ If 
+\begin_inset Formula $r>TaperedRadius$
+\end_inset
+
+, return 0.
+\end_layout
+
+\begin_layout Description
+TaperedRotationY Similar to TaperedRotationX, but returns Velocity_PartialRotati
+onY.
+\end_layout
+
+\begin_layout Description
+Velocity_SimpleShear 
+\begin_inset Formula $f(x,y,z)=SimpleShearFactor\left(y-SimpleShearCentreY\right)$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Velocity_Extension 
+\begin_inset Formula $f(x,y,z)=ExtensionFactor\left(x-ExtensionCentreX\right)$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Velocity_PartialLid_TopLayer Returns 0 if the x coordinate is within one
+ grid point of the boundary; 1 otherwise.
+\end_layout
+
+\begin_layout Description
+Velocity_LinearInterpolationLid 
+\begin_inset Formula \[
+f(x,y,z)=bcLeftHandSideValue+\left(\frac{bcRightHandSideValue-bcLeftHandSideValue}{L}\right)x\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Velocity_Lid_RampWithCentralMax 
+\begin_inset Formula $f(x,y,z)=\left\{ \begin{array}{cc}
+2\left(x-x_{min}\right)/L & x<L/2+x_{min}\\
+1-2(x-x_{min}-L/2) & x>L/2+x_{min}\end{array}\right.$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Velocity_SinusoidalLid 
+\begin_inset Formula \[
+f(x,y,z)=\sin\left(\frac{\pi\left(x-x_{min}\right)}{L}sinusoidalLidWavenumber\right)\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Velocity_Lid_CornerOnly Return 1 if the coordinate is on the right boundary.
+\end_layout
+
+\begin_layout Description
+Temperature_CosineHill Returns a hill defined by a cosine.
+ Specifically, if we define pre-rotated coordinates
+\begin_inset Formula \[
+\begin{array}{ccc}
+x_{pre-rotate} & = & CosineHillCentreX-SolidBodyRotationCentreX\\
+y_{pre-rotate} & = & CosineHillCentreY-SolidBodyRotationCentreY\\
+z_{pre-rotate} & = & CosineHillCentreZ-SolidBodyRotationCentreZ\end{array},\]
+
+\end_inset
+
+ and then rotate them around the z axis by the angle 
+\begin_inset Formula $\theta=SolidBodyRotationOmega*t$
+\end_inset
+
+
+\begin_inset Formula \[
+\begin{array}{ccc}
+x_{hill} & = & x_{pre-rotate}\cos\theta-y_{pre-rotate}\sin\theta\\
+y_{hill} & = & x_{pre-rotate}\sin\theta+y_{pre-rotate}\cos\theta\\
+z_{hill} & = & z_{pre-rotate}\end{array},\]
+
+\end_inset
+
+ then
+\begin_inset Formula \[
+f(x,y,z)=\left\{ \begin{array}{cc}
+\frac{CosineHillHeight}{4}\cos\left(\frac{2\pi r}{CosineHillDiameter}\right) & r<CosineHillDiameter\\
+0 & r>CosineHillDiameter\end{array}\right.,\]
+
+\end_inset
+
+ where 
+\begin_inset Formula $r$
+\end_inset
+
+ is the distance from the center of the hill
+\begin_inset Formula \[
+r\equiv\sqrt{\left(x-x_{hill}\right)^{2}+\left(y-y_{hill}\right)^{2}+\left(z-z_{hill}\right)^{2}}.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+LinearWithSinusoidalPerturbation If you scale the 
+\begin_inset Formula $y$
+\end_inset
+
+ coordinate
+\begin_inset Formula \[
+y_{scaled}=\left(y-y_{min}\right)/\left(y_{max}-y_{min}\right),\]
+
+\end_inset
+
+ then this returns 
+\begin_inset Formula \[
+\begin{array}{ccc}
+f(x,y,z) & = & SinusoidalTempIC\_TopLayerBC\\
+ &  & +\left(SinusoidalTempIC\_TopLayerBC-SinusoidalTempIC\_TopLayerBC\right)\left(1-y_{scaled}\right)\\
+ &  & +SinusoidalTempIC\_PerturbationAmplitude\\
+ &  & *\left(\cos\left(\pi x*SinusoidalTempIC\_HorizontalWaveNumber\right)\right.\\
+ &  & +\left.sin\left(\pi ySinusoidalTempIC\_VerticalWaveNumber\right)\right)\end{array}.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+Temperature_Trigonometry 
+\begin_inset Formula \[
+f(x,y,z)=1-\frac{\pi y}{2}\sin\left(\frac{\pi x}{x_{max}-x_{min}}\right).\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+VelicTemperatureIC 
+\begin_inset Formula \[
+f(x,y,z)=sigma*\cos\left(\pi wavenumberX\left(\frac{x-x_{min}}{x_{max}-x_{min}}\right)\right)\sin\left(\pi\left(y-y_{min}\right)wavenumberY\right),\]
+
+\end_inset
+
+where the height of the box is constrained to 
+\begin_inset Formula $y_{max}-y_{min}=1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+VelicTemperatureIC_SolB 
+\begin_inset Formula \[
+f(x,y,z)=sigma*\cos\left(\pi wavenumberX\left(\frac{x-x_{min}}{x_{max}-x_{min}}\right)\right)\sinh\left(\pi wavenumberY\left(\frac{y-y_{min}}{x-x_{min}}\right)\right),\]
+
+\end_inset
+
+where the height of the box is constrained to 
+\begin_inset Formula $y_{max}-y_{min}=1$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Description
+AnalyticalTemperatureIC First, define 
+\begin_inset Formula \[
+\begin{array}{ccc}
+x_{0} & \equiv & x-x_{min}\\
+y_{0} & \equiv & y-y_{min}\\
+L & \equiv & x_{max}-x_{min}\\
+H & \equiv & y_{max}-y_{min}\\
+\lambda & \equiv & L/H\end{array},\]
+
+\end_inset
+
+and then compute some intermediate quantities
+\begin_inset Formula \[
+\begin{array}{ccc}
+u_{0} & = & \frac{\lambda^{7/3}}{\left(1+\lambda^{4}\right)^{2/3}}\left(\frac{Ra}{2\sqrt{pi}}\right)^{2/3}\\
+v_{0} & = & u_{0}/\lambda\\
+Q & = & 2\sqrt{\lambda/\left(\pi u_{0}\right)}\\
+T_{u} & = & \frac{1}{2}erf(\left(\frac{1}{2}\left(1-y_{0}\right)\sqrt{u_{0}/x_{0}}\right)\\
+T_{l} & = & 1-\frac{1}{2}erf\left(\frac{1}{2}y_{0}\sqrt{u_{0}/\left(\lambda-x_{0}\right)}\right)\\
+T_{r} & = & \frac{1}{2}+\frac{1}{2}\left(Q/\sqrt{\pi}\right)\sqrt{v_{0}/\left(y_{0}+1\right)}\exp\left(-x_{0}^{2}v_{0}/\left(4y_{0}+4\right)\right)\\
+T_{s} & = & \frac{1}{2}-\frac{1}{2}\left(Q/\sqrt{\pi}\right)\sqrt{v_{0}/\left(2-y_{0}\right)}\exp\left(-\left(\lambda-x_{0}\right)^{2}v_{0}/\left(8-4y_{0}\right)\right)\\
+g & = & T_{u}+T_{l}+T_{r}+T_{s}-1.5\end{array}.\]
+
+\end_inset
+
+ The result then is 
+\begin_inset Formula \[
+f(x,y,z)=\left\{ \begin{array}{cc}
+0 & g<0\\
+g & 0<g<1\\
+1 & g>1\end{array}\right..\]
+
+\end_inset
+
+Note that this requires the error function 
+\begin_inset Formula $erf$
+\end_inset
+
+ which is not available on all platforms.
+ 
+\end_layout
+
+\begin_layout Description
+SinusoidalExtension 
+\begin_inset Formula \[
+\begin{array}{ccc}
+f(x,y,z) & = & SinusoidalExtensionVelocity+SinusoidalExtensionAmplitude\\
+ &  & *\cos\left(2\pi SinusoidalExtensionFrequency\left(t+dt-SinusoidalExtensionPhaseShift\right)\right)\end{array}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+StepFunction This function returns a ramp function in the axis prescribed
+ by the integer 
+\begin_inset Formula $StepFunctionDim$
+\end_inset
+
+, where 
+\begin_inset Formula $0\Rightarrow x$
+\end_inset
+
+, 
+\begin_inset Formula $1\Rightarrow y$
+\end_inset
+
+, 
+\begin_inset Formula $2\Rightarrow z$
+\end_inset
+
+.
+ Defining some convenient constants 
+\begin_inset Formula \[
+\begin{array}{ccc}
+w & = & coord[dim]\\
+w_{-} & = & StepFunctionLowerOffset\\
+w_{+} & = & StepFunctionUpperOffset\\
+V & = & StepFunctionValue\end{array},\]
+
+\end_inset
+
+then if 
+\begin_inset Formula $StepFunctionLessThan$
+\end_inset
+
+ is 
+\family typewriter
+True
+\family default
+, then 
+\begin_inset Formula \[
+f(x,y,z)=\left\{ \begin{array}{cc}
+0 & w<w_{-}\\
+V\left(\frac{w-w_{-}}{w_{+}-w_{-}}\right) & w_{-}<w<w_{+}\\
+V & w_{+}<w\end{array}\right.,\]
+
+\end_inset
+
+ otherwise it is reversed
+\begin_inset Formula \[
+f(x,y,z)=\left\{ \begin{array}{cc}
+V & w<w_{-}\\
+V\left(\frac{w_{+}-w}{w_{+}-w_{-}}\right) & w_{-}<w<w_{+}\\
+0 & w_{+}<w\end{array}\right.,\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+StepFunctionProduct1 Using a similar scheme as StepFunction to specify the
+ dimension with 
+\newline
+
+\begin_inset Formula $StepFunctionProduct1Dim$
+\end_inset
+
+, 
+\begin_inset Formula \[
+f(x,y,z)=\left\{ \begin{array}{cc}
+0 & w<StepFunctionProduct1Start\\
+StepFunctionProduct1Value & StepFunctionProduct1Start<w<StepFunctionProduct1End\\
+0 & w>StepFunctionProduct1End\end{array}\right.\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+StepFunctionProduct2 
+\end_layout
+
+\begin_layout Description
+StepFunctionProduct3
+\end_layout
+
+\begin_layout Description
+StepFunctionProduct4 These are the same as StepFunctionProduct1 except that
+ they use different variables (e.g., 
+\begin_inset Formula $StepFunctionProduct2Dim$
+\end_inset
+
+ instead of 
+\begin_inset Formula $StepFunctionProduct1Dim$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+Gaussian 
+\begin_inset Formula \[
+f(x,y,z)=\left(GaussianHeight\right)\exp\left[-\left(\frac{GaussianCenter-coord[dim]}{GaussianWidth}\right)^{2}\right]\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Verbosity Options
+\end_layout
+
+\begin_layout Standard
+By default, Gale prints out very little when running.
+ To get more information, insert
+\end_layout
+
+\begin_layout LyX-Code
+<param name="journal.info">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="journal.debug">True</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="journal-level.info">2</param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="journal-level.debug">2</param>
+\end_layout
+
+\begin_layout Standard
+into the variables section (see Section 
+\begin_inset LatexCommand \ref{sub:Variables}
+
+\end_inset
+
+).
+ This will print out more information than you need about the components,
+ the solvers, and the number of iterations.
+ In addition, you can get even more information about the solvers from PETSc
+ by appending the 
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+-ksp_monitor
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ to the command line.
+\end_layout
+
+\begin_layout Chapter
+Output File Format
+\begin_inset LatexCommand \label{cha:Output-File-Format}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Gale outputs four types of files.
+ 
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+.dat
+\family default
+ ASCII Files
+\end_layout
+
+\begin_layout Standard
+The first type are ASCII files with 
+\family typewriter
+.dat
+\family default
+ extensions.
+ Inside each 
+\family typewriter
+.dat
+\family default
+ file are several columns of data.
+ For example, 
+\family typewriter
+PressureField.00001.dat
+\family default
+ might have
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+0 0.0312539624080715 0.0109361134145122 0 -9.81467103200287
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+1 0.0937630718938361 0.0109356986189374 0 17.7373201951569
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+2 0.156270066350344 0.0109368543031399 0 -37.0281780188199
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+3 0.218780947570009 0.0109343376815161 0 45.6263762140766
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
+4 0.28128858838265 0.010937987088561 0 -65.2132484518426 
+\end_layout
+
+\begin_layout LyX-Code
+...
+\end_layout
+
+\begin_layout Standard
+The first column (0,1,2,3, ...) is the node number, and the second, third,
+ and fourth columns are the x, y, and z coordinates (2D runs still have
+ z data that can be ignored).
+ The last column(s) show the value.
+ The five different types of variables and the order of components is
+\end_layout
+
+\begin_layout Description
+Scalar Value
+\end_layout
+
+\begin_layout Description
+Vector 2D: x y
+\newline
+3D: x, y, z
+\end_layout
+
+\begin_layout Description
+Tensor 2D: xx, xy, yx, yy
+\newline
+3D: xx, xy, xz, yx, yy, yz, zx, zy, zz
+\end_layout
+
+\begin_layout Description
+Symmetric\InsetSpace ~
+Tensor 2D: xx, yy, xy
+\newline
+3D: xx, yy, zz, xy, xz, yz
+\end_layout
+
+\begin_layout Description
+AntiSymmetric\InsetSpace ~
+Tensor 2D: xx, xy, yx, yy
+\newline
+3D: xx, xy, xz, yx, yy, yz, zx, zy,
+ zz (note that xx, yy, and zz are identical to zero)
+\end_layout
+
+\begin_layout Standard
+The complete list of output files per time step with the default components
+ (see Section 
+\begin_inset LatexCommand \ref{sec:Basic-Components}
+
+\end_inset
+
+) is
+\end_layout
+
+\begin_layout Description
+Scalar Pressure, StrainRateInvariant, VelocityMagnitude, VelocityGradientsInvari
+ant
+\end_layout
+
+\begin_layout Description
+Vector Velocity
+\end_layout
+
+\begin_layout Description
+Tensor VelocityGradients
+\end_layout
+
+\begin_layout Description
+Symmetric\InsetSpace ~
+Tensor StrainRate
+\end_layout
+
+\begin_layout Description
+Antisymmetric\InsetSpace ~
+Tensor Vorticity
+\end_layout
+
+\begin_layout Standard
+There will also be a timeInfo file, which records the start time and dt
+ for that time step, and materialSwarm which is described in Section 
+\begin_inset LatexCommand \ref{sec:.dat-Binary-Files}
+
+\end_inset
+
+.
+ Finally, there will be 
+\family typewriter
+.txt
+\family default
+ files from 
+\family typewriter
+DumpSwarm
+\family default
+, explained below in Section 
+\begin_inset LatexCommand \ref{sec:.txt-Files-(Particle}
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+.dat 
+\family default
+Binary Files (Particle Information) 
+\begin_inset LatexCommand \label{sec:.dat-Binary-Files}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+These are the 
+\family typewriter
+materialSwarm.*.dat
+\family default
+ files.
+ They are only useful for checkpointing and have a machine dependent format.
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+.txt
+\family default
+ Files (Particle Information)
+\begin_inset LatexCommand \label{sec:.txt-Files-(Particle}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+These files are output by the 
+\family typewriter
+Underworld_DumpSwarm
+\family default
+ plugin.
+ They provide particle information in a more friendly format.
+ The 
+\family typewriter
+Underworld_DumpSwarm
+\family default
+ plugin is activated by adding the line
+\end_layout
+
+\begin_layout LyX-Code
+    <param>Underworld_DumpSwarm</param> 
+\end_layout
+
+\begin_layout Standard
+to the list of plugins.
+ This line is already in the example input files.
+ The default is to output the ASCII files 
+\family typewriter
+yielding.*.txt
+\family default
+.
+ The format of the file is
+\end_layout
+
+\begin_layout LyX-Code
+m x y z
+\family typewriter
+ yielded viscosity
+\end_layout
+
+\begin_layout Standard
+where 
+\family typewriter
+m
+\family default
+ is a unique number for the material, 
+\family typewriter
+yielded
+\family default
+ is a number between 
+\family typewriter
+0
+\family default
+ and 
+\family typewriter
+1
+\family default
+ indicating how much a material point has failed, and 
+\family typewriter
+viscosity
+\family default
+ is material's isotropic viscosity.
+ If the material does not yield (e.g.
+ is purely viscous), then yielded is always zero.
+ 
+\end_layout
+
+\begin_layout Standard
+You can also output in csv format for easily reading the data into a spreadsheet
+ like Excel.
+ To do this, just set the variable 
+\family typewriter
+outputFormat
+\family default
+ in the global list of variables
+\end_layout
+
+\begin_layout LyX-Code
+<param name="outputFormat">csv</param>
+\end_layout
+
+\begin_layout Standard
+If you want to print out some other property of the material, e.g., non-isotropic
+ viscosity, modify 
+\family typewriter
+DumpSwarm
+\family default
+ to provide that information.
+ The source for the plugin is found in the directory
+\end_layout
+
+\begin_layout LyX-Code
+src/Underworld/plugins/Output/DumpSwarm/
+\end_layout
+
+\begin_layout Section
+
+\family typewriter
+.vtk
+\family default
+ Files (Visualization)
+\begin_inset LatexCommand \label{sec:.vtk-Files-(Visualization)}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+These files are output by the 
+\family typewriter
+Underworld_VTKOutput
+\family default
+ plugin.
+ These files are in a format understood by a wide variety of visualization
+ programs, sich as 
+\begin_inset LatexCommand \htmlurl[ParaView]{paraview.org}
+
+\end_inset
+
+ (recommended), 
+\begin_inset LatexCommand \htmlurl[MayaVi]{mayavi.sf.net}
+
+\end_inset
+
+, or 
+\begin_inset LatexCommand \htmlurl[Visit]{www.llnl.gov/visit}
+
+\end_inset
+
+.
+ The 
+\family typewriter
+Underworld_VTKOutput
+\family default
+ plugin is activated by adding the line
+\end_layout
+
+\begin_layout LyX-Code
+    <param>Underworld_VTKOutput</param> 
+\end_layout
+
+\begin_layout Standard
+to the list of plugins.
+ This line is already in the example input files.
+\end_layout
+
+\begin_layout Chapter
+Benchmarks
+\end_layout
+
+\begin_layout Standard
+CIG has worked with Susanne Buiter at NGU to improve the benchmak specifications.
+ Gale has been tested with relaxation of topography, extension, shortening,
+ and subduction models.
+\end_layout
+
+\begin_layout Chapter
+License 
+\end_layout
+
+\begin_layout Standard
+
+\series bold
+GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+\series default
+ 
+\newline
+
+\series medium
+Everyone is permitted to copy and distribute verbatim copies of this license
+ document, but changing it is not allowed.
+\end_layout
+
+\begin_layout Section*
+Preamble
+\end_layout
+
+\begin_layout Standard
+The licenses for most software are designed to take away your freedom to
+ share and change it.
+ By contrast, the GNU General Public License is intended to guarantee your
+ freedom to share and change free software -- to make sure the software
+ is free for all its users.
+ This General Public License applies to most of the Free Software Foundation's
+ software and to any other program whose authors commit to using it.
+ (Some other Free Software Foundation software is covered by the GNU Library
+ General Public License instead.) You can apply it to your programs, too.
+\end_layout
+
+\begin_layout Standard
+When we speak of free software, we are referring to freedom, not price.
+ Our General Public Licenses are designed to make sure that you have the
+ freedom to distribute copies of free software (and charge for this service
+ if you wish), that you receive source code or can get it if you want it,
+ that you can change the software or use pieces of it in new free programs;
+ and that you know you can do these things.
+\end_layout
+
+\begin_layout Standard
+To protect your rights, we need to make restrictions that forbid anyone
+ to deny you these rights or to ask you to surrender the rights.
+ These restrictions translate to certain responsibilities for you if you
+ distribute copies of the software, or if you modify it.
+\end_layout
+
+\begin_layout Standard
+For example, if you distribute copies of such a program, whether gratis
+ or for a fee, you must give the recipients all the rights that you have.
+ You must make sure that they, too, receive or can get the source code.
+ And you must show them these terms so they know their rights.
+\end_layout
+
+\begin_layout Standard
+We protect your rights with two steps:
+\end_layout
+
+\begin_layout Enumerate
+Copyright the software, and 
+\end_layout
+
+\begin_layout Enumerate
+Offer you this license which gives you legal permission to copy, distribute
+ and/or modify the software.
+\end_layout
+
+\begin_layout Standard
+Also, for each author's protection and ours, we want to make certain that
+ everyone understands that there is no warranty for this free software.
+ If the software is modified by someone else and passed on, we want its
+ recipients to know that what they have is not the original, so that any
+ problems introduced by others will not reflect on the original authors'
+ reputations.
+\end_layout
+
+\begin_layout Standard
+Finally, any free program is threatened constantly by software patents.
+ We wish to avoid the danger that redistributors of a free program will
+ individually obtain patent licenses, in effect making the program proprietary.
+ To prevent this, we have made it clear that any patent must be licensed
+ for everyone's free use or not licensed at all.
+ 
+\end_layout
+
+\begin_layout Standard
+The precise terms and conditions for copying, distribution and modification
+ follow.
+\end_layout
+
+\begin_layout Section*
+GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
+ AND MODIFICATION 
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+begin{itemize}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+item[0.]
+\end_layout
+
+\end_inset
+
+This License applies to any program or other work which contains a notice
+ placed by the copyright holder saying it may be distributed under the terms
+ of this General Public License.
+ The "Program" below refers to any such program or work, and a "work based
+ on the Program" means either the Program or any derivative work under copyright
+ law: that is to say, a work containing the Program or a portion of it,
+ either verbatim or with modifications and/or translated into another language.
+ (Hereinafter, translation is included without limitation in the term "modificat
+ion.") Each licensee is addressed as "you."
+\newline
+
+\newline
+Activities other than copying,
+ distribution and modification are not covered by this License; they are
+ outside its scope.
+ The act of running the Program is not restricted, and the output from the
+ Program is covered only if its contents constitute a work based on the
+ Program (independent of having been made by running the Program).
+ Whether that is true depends on what the Program does.
+ 
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+end{itemize}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+You may copy and distribute verbatim copies of the Program's source code
+ as you receive it, in any medium, provided that you conspicuously and appropria
+tely publish on each copy an appropriate copyright notice and disclaimer
+ of warranty; keep intact all the notices that refer to this License and
+ to the absence of any warranty; and give any other recipients of the Program
+ a copy of this License along with the Program.
+ 
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+You may charge a fee for the physical act of transferring a copy, and you
+ may at your option offer warranty protection in exchange for a fee.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You may modify your copy or copies of the Program or any portion of it,
+ thus forming a work based on the Program, and copy and distribute such
+ modifications or work under the terms of Section 1 above, provided that
+ you also meet all of these conditions: 
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+You must cause the modified files to carry prominent notices stating that
+ you changed the files and the date of any change.
+ 
+\end_layout
+
+\begin_layout Enumerate
+You must cause any work that you distribute or publish, that in whole or
+ in part contains or is derived from the Program or any part thereof, to
+ be licensed as a whole at no charge to all third parties under the terms
+ of this License.
+ 
+\end_layout
+
+\begin_layout Enumerate
+If the modified program normally reads commands interactively when run,
+ you must cause it, when started running for such interactive use in the
+ most ordinary way, to print or display an announcement including an appropriate
+ copyright notice and a notice that there is no warranty (or else, saying
+ that you provide a warranty) and that users may redistribute the program
+ under these conditions, and telling the user how to view a copy of this
+ License.
+ (Exception: if the Program itself is interactive but does not normally
+ print such an announcement, your work based on the Program is not required
+ to print an announcement.) 
+\end_layout
+
+\begin_layout Standard
+These requirements apply to the modified work as a whole.
+ If identifiable sections of that work are not derived from the Program,
+ and can be reasonably considered independent and separate works in themselves,
+ then this License, and its terms, do not apply to those sections when you
+ distribute them as separate works.
+ But when you distribute the same sections as part of a whole which is a
+ work based on the Program, the distribution of the whole must be on the
+ terms of this License, whose permissions for other licensees extend to
+ the entire whole, and thus to each and every part regardless of who wrote
+ it.
+ 
+\end_layout
+
+\begin_layout Standard
+Thus, it is not the intent of this section to claim rights or contest your
+ rights to work written entirely by you; rather, the intent is to exercise
+ the right to control the distribution of derivative or collective works
+ based on the Program.
+ 
+\end_layout
+
+\begin_layout Standard
+In addition, mere aggregation of another work not based on the Program with
+ the Program (or with a work based on the Program) on a volume of a storage
+ or distribution medium does not bring the other work under the scope of
+ this License.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You may copy and distribute the Program (or a work based on it, under Section
+ 2) in object code or executable form under the terms of Sections 1 and
+ 2 above provided that you also do one of the following: 
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Accompany it with the complete corresponding machine-readable source code,
+ which must be distributed under the terms of Sections 1 and 2 above on
+ a medium customarily used for software interchange; or, 
+\end_layout
+
+\begin_layout Enumerate
+Accompany it with a written offer, valid for at least three years, to give
+ any third party, for a charge no more than your cost of physically performing
+ source distribution, a complete machine-readable copy of the corresponding
+ source code, to be distributed under the terms of Sections 1 and 2 above
+ on a medium customarily used for software interchange; or, 
+\end_layout
+
+\begin_layout Enumerate
+Accompany it with the information you received as to the offer to distribute
+ corresponding source code.
+ (This alternative is allowed only for noncommercial distribution and only
+ if you received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.) 
+\end_layout
+
+\begin_layout Standard
+The source code for a work means the preferred form of the work for making
+ modifications to it.
+ For an executable work, complete source code means all the source code
+ for all modules it contains, plus any associated interface definition files,
+ plus the scripts used to control compilation and installation of the executable.
+ However, as a special exception, the source code distributed need not include
+ anything that is normally distributed (in either source or binary form)
+ with the major components (compiler, kernel, and so on) of the operating
+ system on which the executable runs, unless that component itself accompanies
+ the executable.
+\end_layout
+
+\begin_layout Standard
+If distribution of executable or object code is made by offering access
+ to copy from a designated place, then offering equivalent access to copy
+ the source code from the same place counts as distribution of the source
+ code, even though third parties are not compelled to copy the source along
+ with the object code.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+You may not copy, modify, sublicense, or distribute the Program except as
+ expressly provided under this License.
+ Any attempt otherwise to copy, modify, sublicense or distribute the Program
+ is void, and will automatically terminate your rights under this License.
+ However, parties who have received copies, or rights, from you under this
+ License will not have their licenses terminated so long as such parties
+ remain in full compliance.
+ 
+\end_layout
+
+\begin_layout Enumerate
+You are not required to accept this License, since you have not signed it.
+ However, nothing else grants you permission to modify or distribute the
+ Program or its derivative works.
+ These actions are prohibited by law if you do not accept this License.
+ Therefore, by modifying or distributing the Program (or any work based
+ on the Program), you indicate your acceptance of this License to do so,
+ and all its terms and conditions for copying, distributing or modifying
+ the Program or works based on it.
+ 
+\end_layout
+
+\begin_layout Enumerate
+Each time you redistribute the Program (or any work based on the Program),
+ the recipient automatically receives a license from the original licensor
+ to copy, distribute or modify the Program subject to these terms and conditions.
+ You may not impose any further restrictions on the recipients' exercise
+ of the rights granted herein.
+ You are not responsible for enforcing compliance by third parties to this
+ License.
+ 
+\end_layout
+
+\begin_layout Enumerate
+If, as a consequence of a court judgment or allegation of patent infringement
+ or for any other reason (not limited to patent issues), conditions are
+ imposed on you (whether by court order, agreement or otherwise) that contradict
+ the conditions of this License, they do not excuse you from the conditions
+ of this License.
+ If you cannot distribute so as to satisfy simultaneously your obligations
+ under this License and any other pertinent obligations, then as a consequence
+ you may not distribute the Program at all.
+ For example, if a patent license would not permit royalty-free redistribution
+ of the Program by all those who receive copies directly or indirectly through
+ you, then the only way you could satisfy both it and this License would
+ be to refrain entirely from distribution of the Program.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+If any portion of this section is held invalid or unenforceable under any
+ particular circumstance, the balance of the section is intended to apply
+ and the section as a whole is intended to apply in other circumstances.
+\end_layout
+
+\begin_layout Standard
+It is not the purpose of this section to induce you to infringe any patents
+ or other property right claims or to contest validity of any such claims;
+ this section has the sole purpose of protecting the integrity of the free
+ software distribution system, which is implemented by public license practices.
+ Many people have made generous contributions to the wide range of software
+ distributed through that system in reliance on consistent application of
+ that system; it is up to the author/donor to decide if he or she is willing
+ to distribute software through any other system and a licensee cannot impose
+ that choice.
+ 
+\end_layout
+
+\begin_layout Standard
+This section is intended to make thoroughly clear what is believed to be
+ a consequence of the rest of this License.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+If the distribution and/or use of the Program is restricted in certain countries
+ either by patents or by copyrighted interfaces, the original copyright
+ holder who places the Program under this License may add an explicit geographic
+al distribution limitation excluding those countries, so that distribution
+ is permitted only in or among countries not thus excluded.
+ In such case, this License incorporates the limitation as if written in
+ the body of this License.
+ 
+\end_layout
+
+\begin_layout Enumerate
+The Free Software Foundation may publish revised and/or new versions of
+ the General Public License from time to time.
+ Such new versions will be similar in spirit to the present version, but
+ may differ in detail to address new problems or concerns.
+ 
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Each version is given a distinguishing version number.
+ If the Program specifies a version number of this License which applies
+ to it and "any later version," you have the option of following the terms
+ and conditions either of that version or of any later version published
+ by the Free Software Foundation.
+ If the Program does not specify a version number of this License, you may
+ choose any version ever published by the Free Software Foundation.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+If you wish to incorporate parts of the Program into other free programs
+ whose distribution conditions are different, write to the author to ask
+ for permission.
+ For software which is copyrighted by the Free Software Foundation, write
+ to the Free Software Foundation; we sometimes make exceptions for this.
+ Our decision will be guided by the two goals of preserving the free status
+ of all derivatives of our free software and of promoting the sharing and
+ reuse of software generally.
+ 
+\end_layout
+
+\begin_layout Subsection*
+NO WARRANTY 
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+begin{itemize}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+item[11.]
+\end_layout
+
+\end_inset
+
+BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+ THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
+ PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
+ YOU.
+ SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
+ SERVICING, REPAIR OR CORRECTION.
+ 
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+item[12.]
+\end_layout
+
+\end_inset
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
+ ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
+ THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
+ OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+ THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+ EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
+ OF SUCH DAMAGES.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Standard
+
+
+\backslash
+end{itemize}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section*
+END OF TERMS AND CONDITIONS 
+\end_layout
+
+\begin_layout Subsection*
+How to Apply These Terms to Your New Programs
+\end_layout
+
+\begin_layout Standard
+If you develop a new program, and you want it to be of the greatest possible
+ use to the public, the best way to achieve this is to make it free software
+ which everyone can redistribute and change under these terms.
+ 
+\end_layout
+
+\begin_layout Standard
+To do so, attach the following notices to the program.
+ It is safest to attach them to the start of each source file to most effectivel
+y convey the exclusion of warranty; and each file should have at least the
+ "copyright" line and a pointer to where the full notice is found.
+ For example:
+\end_layout
+
+\begin_layout Quote
+One line to give the program's name and a brief idea of what it does.
+ Copyright 
+\size footnotesize
+© (
+\size default
+year) (name of author) 
+\end_layout
+
+\begin_layout Quote
+This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+ 
+\end_layout
+
+\begin_layout Quote
+This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ 
+\end_layout
+
+\begin_layout Quote
+You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+\end_layout
+
+\begin_layout Standard
+Also add information on how to contact you by electronic and paper mail.
+ 
+\end_layout
+
+\begin_layout Standard
+If the program is interactive, make it output a short notice like this when
+ it starts in an interactive mode: 
+\end_layout
+
+\begin_layout Quote
+Gnomovision version 69, Copyright © year name of author Gnomovision comes
+ with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it under certain
+ conditions; type `show c' for details.
+ 
+\end_layout
+
+\begin_layout Standard
+The hypothetical commands `show w' and `show c' should show the appropriate
+ parts of the General Public License.
+ Of course, the commands you use may be called something other than `show
+ w' and `show c'; they could even be mouse-clicks or menu items -- whatever
+ suits your program.
+ 
+\end_layout
+
+\begin_layout Standard
+You should also get your employer (if you work as a programmer) or your
+ school, if any, to sign a "copyright disclaimer" for the program, if necessary.
+ Here is a sample; alter the names: 
+\end_layout
+
+\begin_layout Quote
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovisi
+on' (which makes passes at compilers) written by James Hacker.
+ 
+\end_layout
+
+\begin_layout Quote
+(signature of Ty Coon)
+\newline
+1 April 1989 
+\newline
+Ty Coon, President of Vice 
+\end_layout
+
+\begin_layout Standard
+This General Public License does not permit incorporating your program into
+ proprietary programs.
+ If your program is a subroutine library, you may consider it more useful
+ to permit linking proprietary applications with the library.
+ If this is what you want to do, use the GNU Library General Public License
+ instead of this License.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Fullsack}
+Fullsack, Phillipe (1995).
+ An arbitrary Lagrangian-Eulerian formulation for creeping flows and its
+ application in tectonic models, 
+\emph on
+Geophys.
+ J.
+ Int., 120
+\emph default
+, 1-23.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {VPAC}
+Quenette, S., B.
+ Appelbe, M.
+ Gurnis, L.
+ Hodkinson, L.
+ Moresi, and P.
+ Sunter (2005), An Investigation into Design for Performance and Code Maintainab
+ility in High Performance Computing, 
+\emph on
+ANZIAM J
+\emph default
+.
+\emph on
+, 46(e),
+\emph default
+ C1001-C1016.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Underworld}
+Moresi, L.N., F.
+ Dufour, and H.-B.
+ Mühlhaus (2003), A Lagrangian integration point finite element method for
+ large deformation modeling of viscoelastic geomaterials, 
+\emph on
+J.
+ Comp.
+ Phys., 184
+\series bold
+,
+\series default
+\emph default
+ 476-497.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Moresi faulting}
+Moresi, L.N., and H.-B.
+ Mühlhaus (2006), Anisotropic viscous models of large-deformation MohrCoulomb
+ failure, 
+\emph on
+Philosophical Magazine, 86,
+\emph default
+ 3287-3305.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Uzawa}
+ Moresi, L.N., and V.S.
+ Solomatov (1995), Numerical investigation of 2D convection with extremely
+ large viscosity variations, 
+\emph on
+Phys.
+ Fluids,
+\emph default
+ 
+\emph on
+7(9),
+\emph default
+ 2154-2162.
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Ellipsis}
+O'Neill, C., Moresi, L., Müller, D., Albert, R., Dufour, F.
+ (2006), Ellipsis 3D: a particle-in-cell finite element hybrid code for
+ modelling mantle convection and lithospheric deformation, 
+\shape italic
+Computers & Geosciences
+\shape default
+, 
+\shape italic
+32(10)
+\shape default
+, 1769-1779
+\end_layout
+
+\begin_layout Bibliography
+
+\bibitem {Citcom}
+Zhong, S., M.T.
+ Zuber, L.N.
+ Moresi, and M.
+ Gurnis (2000), The role of temperature-dependent viscosity and surface
+ plates in spherical shell models of mantle convection, 
+\shape italic
+J.
+ Geophys.
+ Res.
+\shape default
+, 
+\shape italic
+105
+\shape default
+, 11, 063-11, 082 
+\end_layout
+
+\end_body
+\end_document



More information about the cig-commits mailing list