[cig-commits] r15650 - in doc/snac: . figures

echoi at geodynamics.org echoi at geodynamics.org
Fri Sep 4 14:03:46 PDT 2009


Author: echoi
Date: 2009-09-04 14:03:46 -0700 (Fri, 04 Sep 2009)
New Revision: 15650

Added:
   doc/snac/figures/example2_plot.png
Modified:
   doc/snac/snac.lyx
Log:
Added a new section for condition functions.

Cookbook examples are now moved to a new chapter with a new example case added.



Added: doc/snac/figures/example2_plot.png
===================================================================
(Binary files differ)


Property changes on: doc/snac/figures/example2_plot.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: doc/snac/snac.lyx
===================================================================
--- doc/snac/snac.lyx	2009-09-04 17:24:43 UTC (rev 15649)
+++ doc/snac/snac.lyx	2009-09-04 21:03:46 UTC (rev 15650)
@@ -4296,6 +4296,12 @@
 
 \end_deeper
 \begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Initial-Conditions-Structure"
+
+\end_inset
+
 Initial Conditions Structure 
 \end_layout
 
@@ -4821,7 +4827,14 @@
 \end_inset
 
  to type and the function's name to value.
- More details are given in the next section.
+ More details are given in the section 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:Using-condition-functions"
+
+\end_inset
+
+.
 \end_layout
 
 \begin_layout Subsection
@@ -5135,6 +5148,15 @@
  plugin’s source code directory.
  Using this function makes it possible to assign values varying according
  to the spatial positions, or the indexes of each element.
+ For more details, see Sec.
+ 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:Using-condition-functions"
+
+\end_inset
+
+.
 \end_layout
 
 \begin_layout Standard
@@ -5285,20 +5307,1143 @@
 \end_layout
 
 \begin_layout Section
+Using condition functions
 \begin_inset CommandInset label
 LatexCommand label
-name "sec:Complete-Example-XML"
+name "sec:Using-condition-functions"
 
 \end_inset
 
-Complete Example XML file 
+
 \end_layout
 
+\begin_layout Standard
+Condition functions (CFs) can be used to both spatially and temporally non-unifo
+rm initial and boundary conditions.
+ Two requirements should be met for a condition function to make effects:
+ 1) a CF must be found at run-time and 2) an input file should specify where
+ to apply it.
+ The first condition is satisfied by properly adding a function in the SnacCondF
+unc plugin and the second by setting the 
+\family typewriter
+type
+\family default
+ of variables to be 
+\family typewriter
+func
+\family default
+ (see 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Initial-Conditions-Structure"
+
+\end_inset
+
+ and 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Boundary-Conditions-Structure"
+
+\end_inset
+
+).
+\end_layout
+
 \begin_layout Subsection
-Problem 
+Adding a new condition function
 \end_layout
 
 \begin_layout Standard
+Everything is done in 
+\family typewriter
+Snac/plugins/conditionFunctions
+\family default
+.
+ The example below shows the step-by-step procedure for adding a new element
+ CF.
+ A new node CF can be added in the same way but by modifying counterparts
+ for node.
+\end_layout
+
+\begin_layout Enumerate
+Go to 
+\family typewriter
+Snac/plugins/conditionFunctions.
+\end_layout
+
+\begin_layout Enumerate
+Open 
+\family typewriter
+SnacCondFunc_ElementCondFunc.h
+\family default
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Copy and paste one of the existing function declarations and rename it.
+ (e.g., 
+\family typewriter
+void _SnacCondFunc_DeadSea
+\family default
+ 
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+
+\family typewriter
+void _SnacCondFunc_MyTest
+\family default
+).
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Open 
+\family typewriter
+SnacCondFunc_ElementCondFunc.c
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Copy and paste one of the existing function definitions and rename it.
+ (e.g., 
+\family typewriter
+void _SnacCondFunc_DeadSea(...)
+\family default
+ 
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+
+\family typewriter
+void _SnacCondFunc_MyTest(...)
+\family default
+).
+\end_layout
+
+\begin_layout Enumerate
+Change the contents of the new function.
+ (e.g., remove all the 
+\family typewriter
+if
+\family default
+-statement blocks except the first one).
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Open 
+\family typewriter
+Register.c
+\family default
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Copy and paste one of the existing function calls to 
+\family typewriter
+ConditionFunction_Register_Add
+\family default
+.
+\end_layout
+
+\begin_layout Enumerate
+Note that the third argument of 
+\family typewriter
+ConditionFunction_Register_Add
+\family default
+ is also a function call to 
+\family typewriter
+ConditionFunction_New
+\family default
+, which takes two arguments.
+\end_layout
+
+\begin_layout Enumerate
+Change both arguments of 
+\family typewriter
+ConditionFunction_New
+\family default
+ : 
+\family typewriter
+ConditionFunction_new(_SnacCondFunc_DeadSea, ``SnacCF_DeadSea
+\begin_inset Quotes srd
+\end_inset
+
+)
+\family default
+
+\begin_inset Formula $\rightarrow$
+\end_inset
+
+
+\family typewriter
+ConditionFunction_new(_SnacCondFunc_MyTest, ``SnacCF_MyTest
+\begin_inset Quotes srd
+\end_inset
+
+)
+\family default
+.
+ The string, 
+\family typewriter
+``SnacCF_MyTest
+\begin_inset Quotes srd
+\end_inset
+
+,
+\family default
+ will be used in an input file.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Rebuild the plugin: i.e., run 
+\family typewriter
+make
+\family default
+.
+\end_layout
+
+\begin_layout Subsection
+Using a newly defined condition function
+\end_layout
+
+\begin_layout Standard
+Continuing from the above example, we have only one place to use an element
+ condition function, which is 
+\family typewriter
+elementICs
+\family default
+.
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+<struct name="elementICs"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+    <list name="vcList"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+        <struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+            <param name="type"> AllElementsVC</param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+            <list name="variables"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                <struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="name"> elementMaterial</param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="type"> int </param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="value"> 0</param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                 </struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+             </list> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+         </struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+     </list> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+ </struct>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+In the above code, the 
+\family typewriter
+type
+\family default
+ parameter for the ``
+\family typewriter
+vairables
+\family default
+`` list should be changed from 
+\family typewriter
+int
+\family default
+ to 
+\family typewriter
+func
+\family default
+ and the 
+\family typewriter
+value
+\family default
+ parameter should be the string used when the condition function was registered.
+ It is 
+\family typewriter
+``SnacCF_MyTest
+\begin_inset Quotes srd
+\end_inset
+
+
+\family default
+ in the current example.
+ The modified code would look like
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+<struct name="elementICs"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+    <list name="vcList"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+        <struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+            <param name="type"> AllElementsVC</param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+            <list name="variables"> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                <struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="name"> elementMaterial</param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="type"> func </param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                    <param name="value"> SnacCF_MyTest </param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+                 </struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+             </list> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+         </struct> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+     </list> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
+ </struct>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+Finally, load the ``SnacCondFunc
+\begin_inset Quotes srd
+\end_inset
+
+ plugin as follows:
+\end_layout
+
+\begin_layout LyX-Code
+<list name="extensions"> 		
+\end_layout
+
+\begin_layout LyX-Code
+    
+\begin_inset Formula $\vdots$
+\end_inset
+
+    
+\end_layout
+
+\begin_layout LyX-Code
+    <param> SnacCondFunc </param>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout Standard
+Run SNAC and check if the condition function works as intended by visualizing
+ ``
+\family typewriter
+Phase
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ variable.
+\end_layout
+
+\begin_layout Section
+Checkpointing and Restarting
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:Checkpointing-and-Restarting"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Checkpointing
+\end_layout
+
+\begin_layout Standard
+To restart an already finished run from a certain point in time, it is necessary
+ to record all the relevant information.
+ Generating such data set is called 
+\emph on
+checkpointing
+\emph default
+.
+ It is possible to checkpoint as a response to an emergency like receiving
+ a certain type of error or disk quota and wall clock limit soon to be exceeded.
+ However, SNAC currently only allows a user to specify the frequency of
+ checkpointnig by assigning a non-zero value to 
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+checkpointEvery
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ in an input file.
+ The meaning of the assigned value is the same with 
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+dumpEvery
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+: 
+\emph on
+the number of time steps between events of checkpointing
+\emph default
+.
+ The default value of this parameter is 0, and SNAC checkpoints only at
+ the last time step.
+ Since the size of checkpoint data files are much larger than that of the
+ regular outputs, it is advised to set 
+\family typewriter
+checkpointEvery
+\family default
+ to be a sufficiently large value.
+\end_layout
+
+\begin_layout Standard
+Like dumping is logged in 
+\family typewriter
+timeStep.0
+\family default
+, checkpointing is logged in 
+\family typewriter
+checkpointTimeStep.0
+\family default
+.
+ This file is used when restart files are generated.
+\end_layout
+
+\begin_layout Standard
+Checkpoint data files have 
+\family typewriter
+CP
+\family default
+ attached to their names (e.g., 
+\family typewriter
+velocityCP.0
+\family default
+, 
+\family typewriter
+stressTensorCP.2
+\family default
+, etc.).
+ The major difference between the checkpointed (tetrahedral) outputs and
+ the regular (hexahedral) outputs is the storing format of element-associated
+ variables such as stress and plastic strain.
+ To restart with exactly the same state as before, those values need to
+ be recorded at the tetrahedra level.
+ That is because the regular outputs contain one single-precision floating
+ point number per hexahedral element.
+\end_layout
+
+\begin_layout Subsection
+Restarting
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Restarting"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Enumerate
+Run 
+\family typewriter
+snac2restart
+\family default
+ in the original 
+\family typewriter
+outputPath
+\family default
+ (see the next section for more details).
+ 
+\end_layout
+
+\begin_layout Enumerate
+Create a new directory for the restarting run.
+ This is mandatory to prevent accidental overwriting of the existing data
+ files.
+\end_layout
+
+\begin_layout Enumerate
+Move all the 
+\family typewriter
+*.restart
+\family default
+ files to the new directory.
+\end_layout
+
+\begin_layout Enumerate
+Prepare an input file that is identical with the one used for the original
+ run except that 
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+the new one has 
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+SnacRestart
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ in the extensions (=plugins) list 
+\emph on
+AND
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+restartTimestep
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ is set to be the time step to restart from 
+\emph on
+AND
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset Quotes sld
+\end_inset
+
+
+\family typewriter
+outputPath
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+ now points to where 
+\family typewriter
+*.restart
+\family default
+ files are.
+ SNAC will abort if it detects existing outputs there.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Start running SNAC as usual but with a new input file prepared as above.
+\end_layout
+
+\begin_layout Subsection
+
+\family typewriter
+snac2restart
+\end_layout
+
+\begin_layout Standard
+The general usage of 
+\family typewriter
+snac2restart
+\family default
+ is 
+\end_layout
+
+\begin_layout LyX-Code
+Usage: snac2restart [timeStep] [your "outputPath"] [path to write restart
+ files]
+\end_layout
+
+\begin_layout Standard
+timeStep is one of the checkpointed time steps and should be one of those
+ recorded in 
+\family typewriter
+checkpointTimeStep.0
+\family default
+.
+ The last two specify a path to where your output files are which need processin
+g, and where to write the processed restart files, respectively.
+ All the arguments are optional and, by default, 
+\family typewriter
+snac2restart
+\family default
+ tries to read and write in the current directory and process for the last
+ time step recorded.
+ Files with the suffix of *.restart are created.
+\end_layout
+
+\begin_layout Chapter
+Postprocessing and Graphics 
+\end_layout
+
+\begin_layout Section
+Introduction 
+\end_layout
+
+\begin_layout Standard
+SNAC writes binary output files, and it is necessary to convert them to
+ a file format that external visualization tools can handle.
+ Two such converting programs are provided.
+ One generates Visualization Tool Kit (VTK) files.
+ The other is for the open source Open Visualization Data Explorer, better
+ known as OpenDX.
+ There are several programs that can visualize VTK files: ParaView 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+www.paraview.org
+\end_layout
+
+\end_inset
+
+, MayaVi2 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://svn.enthought.com/enthought/wiki/MayaVi
+\end_layout
+
+\end_inset
+
+, or VisIt 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://wci.llnl.gov/codes/visit/
+\end_layout
+
+\end_inset
+
+.
+ OpenDX with documentation is available from the OpenDX website 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+www.opendx.org
+\end_layout
+
+\end_inset
+
+.
+ 
+\end_layout
+
+\begin_layout Subsection
+Outputs from SNAC
+\end_layout
+
+\begin_layout Standard
+Once you have run SNAC, you should have a series of files in the 
+\family typewriter
+output
+\family default
+ directory as set in the input file.
+\end_layout
+
+\begin_layout Standard
+Information on the parallel decompositon is not explicitly given in an input
+ file by a user.
+ Instead, StGermain computes an optimal configuration based on the total
+ number of processors, the global mesh size, and the value of 
+\family typewriter
+decompDims
+\family default
+.
+ The resultant global and local element numbers in x, y, and z as well as
+ decomposed processor numbers are written in the file 
+\family typewriter
+sim.0
+\family default
+, which is common to all the processors.
+ 
+\end_layout
+
+\begin_layout Section
+Converting to VTK files
+\end_layout
+
+\begin_layout Standard
+A program called 
+\family typewriter
+snac2vtk
+\family default
+ is provided to convert the binary outputs from SNAC to ascii files in the
+ XML VTK Structured Grid format (.vts).
+ 
+\family typewriter
+snac2vtk
+\family default
+ is compiled during the building procedure and installed in 
+\family typewriter
+${SNAC_BINDIR}
+\family default
+.
+ The usage is
+\end_layout
+
+\begin_layout LyX-Code
+snac2vtk path-to-outputs [time1 time2].
+\end_layout
+
+\begin_layout Standard
+The only required argument is a path to output files including 
+\family typewriter
+sim.0
+\family default
+, which contains critical information to process data.
+ The last two optional arguments are used to set the range of time steps
+ for data conversion.
+\end_layout
+
+\begin_layout Standard
+
+\family typewriter
+snac2vtk
+\family default
+ automatically generates Parallel VTK Structured Grid files (.pvts) for each
+ time step so that there is no need for an extra step to combine data even
+ for the parallel cases.
+ It is the group of .pvts files that needs to be loaded in ParaView or another
+ visualization tool for VTK.
+ However, .vts files should not be removed because .pvts files only refer
+ to .vts files rather than contain actual data.
+\end_layout
+
+\begin_layout LyX-Code
+> snac2vtk ./ 
+\family roman
+(the last time step only)
+\end_layout
+
+\begin_layout Standard
+or
+\end_layout
+
+\begin_layout LyX-Code
+> snac2vtk ./ 10 
+\family roman
+(from 10th to the last time step)
+\end_layout
+
+\begin_layout Standard
+or
+\end_layout
+
+\begin_layout LyX-Code
+> snac2vtk ./ 1 1001 
+\family roman
+(from 1 to 1001th time step)
+\end_layout
+
+\begin_layout Paragraph*
+Example list of SNAC output files in the VTK format: 8 processors and 51
+ outputs per processor.
+\end_layout
+
+\begin_layout LyX-Code
+snac.0.000001.vts snac.0.000003.vts snac.0.000005.vts ....
+ snac.0.000101.vts 
+\end_layout
+
+\begin_layout LyX-Code
+snac.1.000001.vts snac.1.000003.vts snac.1.000005.vts ....
+ snac.1.000101.vts
+\end_layout
+
+\begin_layout LyX-Code
+snac.2.000001.vts snac.2.000003.vts snac.2.000005.vts ....
+ snac.2.000101.vts
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+snac.7.000001.vts snac.7.000003.vts snac.7.000005.vts ....
+ snac.7.000101.vts 
+\end_layout
+
+\begin_layout LyX-Code
+snac.000001.pvts snac.000003.pvts snac.000005.pvts ....
+ snac.000101.pvts
+\end_layout
+
+\begin_layout Section
+Converting to OpenDX files 
+\end_layout
+
+\begin_layout Standard
+We recommend that you use VTK files for visualizing model results.
+ The conversion tools for the DX file format will no longer be updated.
+\end_layout
+
+\begin_layout Standard
+To convert binary files into ascii OpenDX files, you need to run the program
+ 
+\family typewriter
+snac2dx
+\family default
+.
+ The source code is 
+\family typewriter
+Snac/snac2dx/snac2dx.c
+\family default
+, compiled during SNAC's building procedure and placed in 
+\family typewriter
+${SNAC_BINDIR}
+\family default
+ together with other executables.
+\end_layout
+
+\begin_layout Standard
+Running 
+\family typewriter
+snac2dx
+\family default
+ without any arguments converts data for all the time steps recorded in
+ 
+\family typewriter
+timeStep.0
+\family default
+.
+ Optionally, a range of time steps can be set if two positive integers are
+ given as arguments.
+ The converted output files are always written in the directory where 
+\family typewriter
+snac2dx
+\family default
+ is run.
+ The naming convention for the ascii dx files is 
+\family typewriter
+snac.{processor ID}.{time step in 6 digits}.dx
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+To visualize outputs from a parallel run, one more step is needed to combine
+ the .dx files into a single dx file for each time step.
+ A Python script, 
+\family typewriter
+snac_combine.py
+\family default
+, is provided for this purpose.
+ This script is under 
+\family typewriter
+Snac/snac2dx
+\family default
+, but not automatically installed in 
+\family typewriter
+${SNAC_BINDIR}
+\family default
+.
+ The following eight arguments are required:
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+modelname
+\series default
+: Suffix for the combined data files.
+ 
+\family typewriter
+``snac
+\family default
+'' unless snac2dx.c is modified.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+timestep
+\series default
+: Time step of interest.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+gnodex gnodey gnodez
+\series default
+: Global node numbers in x, y, and z (lon, radius, lat) as set in the input
+ file.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+nprocx nprocy nprocz
+\series default
+: Number of processors in x, y, and z (lon, radius, lat) calculated based
+ on 
+\family typewriter
+sim.0
+\family default
+.
+\end_layout
+
+\begin_layout Paragraph*
+Example list of SNAC output files in the OpenDX format: 8 processors and
+ 51 outputs per processor.
+\end_layout
+
+\begin_layout LyX-Code
+snac.0.000001.dx snac.0.000003.dx snac.0.000005.dx ....
+ snac.0.000101.dx 
+\end_layout
+
+\begin_layout LyX-Code
+snac.1.000001.dx snac.1.000003.dx snac.1.000005.dx ....
+ snac.1.000101.dx 
+\end_layout
+
+\begin_layout LyX-Code
+snac.2.000001.dx snac.2.000003.dx snac.2.000005.dx ....
+ snac.2.000101.dx 
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+snac.7.000001.dx snac.7.000003.dx snac.7.000005.dx ....
+ snac.7.000101.dx 
+\end_layout
+
+\begin_layout Standard
+Let's assume that the global mesh has 51 
+\begin_inset Formula $\times$
+\end_inset
+
+ 31 
+\begin_inset Formula $\times$
+\end_inset
+
+ 41 nodes and was decomposed in 3D (
+\family typewriter
+decompDims
+\family default
+=3) by 8 processors.
+ Also, we assume that the contents of 
+\family typewriter
+sim.0
+\family default
+ is ``25 15 20''.
+ Then, we can infer that 2 processors were assigned in each dimension.
+\end_layout
+
+\begin_layout Standard
+To get a combined dx file for the time step 35:
+\end_layout
+
+\begin_layout LyX-Code
+> snac_combine.py snac 35 51 31 41 2 2 2
+\end_layout
+
+\begin_layout Standard
+The name of a combined file has the format of ``
+\family typewriter
+snac.{time step in 6 digits}.dx
+\family default
+
+\begin_inset Quotes srd
+\end_inset
+
+.
+ ``
+\family typewriter
+snac.000035.dx
+\family default
+'' should be the final product in the above example.
+\end_layout
+
+\begin_layout Subsection
+Using OpenDX
+\end_layout
+
+\begin_layout Standard
+An OpenDX visual program, 
+\family typewriter
+snac_visualize.net
+\family default
+, is provided for convenience and is placed in 
+\family typewriter
+Snac/snac2dx
+\family default
+.
+ It can be opened in OpenDX to read data, map node- and element-based variables
+ on the domain, visualize vector quantities as 3D glyphs, create isosurfaces,
+ and make cross-sections.
+\end_layout
+
+\begin_layout Chapter
+\begin_inset CommandInset label
+LatexCommand label
+name "cha:Cookbook-Examples"
+
+\end_inset
+
+Cookbook Examples
+\end_layout
+
+\begin_layout Section
+Example 1
+\end_layout
+
+\begin_layout Standard
 A 3D Cartesian block of elaso-visco-plastic material is extended by the
  velocities applied to two side walls.
  The domain has a size of 40
@@ -5467,10 +6612,6 @@
 
 \end_layout
 
-\begin_layout Plain Layout
-
-\end_layout
-
 \end_inset
 
 
@@ -6273,14 +7414,18 @@
 \begin_layout LyX-Code
 
 \size small
-                <struct>                                               
-                                          <param name="name">elementMaterial</pa
-ram>
+                <struct>
 \end_layout
 
 \begin_layout LyX-Code
 
 \size small
+                    <param name="name">elementMaterial</param>
+\end_layout
+
+\begin_layout LyX-Code
+
+\size small
                     <param name="type"> int </param>
 \end_layout
 
@@ -6868,664 +8013,1090 @@
 </StGermainData> 
 \end_layout
 
-\begin_layout Section
-Checkpointing and Restarting
-\begin_inset CommandInset label
-LatexCommand label
-name "sec:Checkpointing-and-Restarting"
+\begin_layout LyX-Code
 
-\end_inset
-
-
 \end_layout
 
-\begin_layout Subsection
-Checkpointing
+\begin_layout Section
+Example 2
 \end_layout
 
 \begin_layout Standard
-To restart an already finished run from a certain point in time, it is necessary
- to record all the relevant information.
- Generating such data set is called 
-\emph on
-checkpointing
-\emph default
-.
- It is possible to checkpoint as a response to an emergency like receiving
- a certain type of error or disk quota and wall clock limit soon to be exceeded.
- However, SNAC currently only allows a user to specify the frequency of
- checkpointnig by assigning a non-zero value to 
-\begin_inset Quotes sld
+This example shows how to introduce multiple material types and assign them
+ spatially in a non-trivial fashion.
+ The domain is 300
+\begin_inset Formula $\times$
 \end_inset
 
+6
+\begin_inset Formula $\times$
+\end_inset
 
-\family typewriter
-checkpointEvery
-\family default
-
-\begin_inset Quotes srd
+300 km and discretized into 50
+\begin_inset Formula $\times$
 \end_inset
 
- in an input file.
- The meaning of the assigned value is the same with 
-\begin_inset Quotes sld
+1
+\begin_inset Formula $\times$
 \end_inset
 
-
+50 elements.
+ Three types of materials are all elasto-plastic and have the same material
+ properties except cohesions.
+ Each type has the initial value of 10, 100, and 1 MPa, respectively.
+ We use a condition function called 
 \family typewriter
-dumpEvery
+SnacCF_DeadSea
 \family default
+ to assign these types to three different subdomains.
+ The boundary conditions set up the plane strain condition in the y direction
+ while an oblique (relative to the z-axis) spreading is applied on the left
+ and right sides.
+ The map of phase index is shown in Fig.
+ 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:Map-of-phase"
 
-\begin_inset Quotes srd
 \end_inset
 
-: 
-\emph on
-the number of time steps between events of checkpointing
-\emph default
 .
- The default value of this parameter is 0, and SNAC checkpoints only at
- the last time step.
- Since the size of checkpoint data files are much larger than that of the
- regular outputs, it is advised to set 
-\family typewriter
-checkpointEvery
-\family default
- to be a sufficiently large value.
 \end_layout
 
 \begin_layout Standard
-Like dumping is logged in 
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+	filename figures/example2_plot.png
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:Map-of-phase"
+
+\end_inset
+
+Phase index map of Cookbook2 generated by the condition function 
 \family typewriter
-timeStep.0
+SnacCF_DeadSea
 \family default
-, checkpointing is logged in 
-\family typewriter
-checkpointTimeStep.0
-\family default
 .
- This file is used when restart files are generated.
+ Arrows indicate the velocity boundary conditions at the initial time step.
 \end_layout
 
-\begin_layout Standard
-Checkpoint data files have 
-\family typewriter
-CP
-\family default
- attached to their names (e.g., 
-\family typewriter
-velocityCP.0
-\family default
-, 
-\family typewriter
-stressTensorCP.2
-\family default
-, etc.).
- The major difference between the checkpointed (tetrahedral) outputs and
- the regular (hexahedral) outputs is the storing format of element-associated
- variables such as stress and plastic strain.
- To restart with exactly the same state as before, those values need to
- be recorded at the tetrahedra level.
- That is because the regular outputs contain one single-precision floating
- point number per hexahedral element.
+\end_inset
+
+
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
-Restarting
-\begin_inset CommandInset label
-LatexCommand label
-name "sub:Restarting"
+Complete listing of the input XML file
+\end_layout
 
-\end_inset
+\begin_layout LyX-Code
+<?xml version="1.0"?> 
+\end_layout
 
+\begin_layout LyX-Code
+<!DOCTYPE StGermainData SYSTEM "stgermain.dtd"> 
+\end_layout
 
+\begin_layout LyX-Code
+<!-- StGermain-Snac input file --> 
 \end_layout
 
-\begin_layout Enumerate
-Run 
-\family typewriter
-snac2restart
-\family default
- in the original 
-\family typewriter
-outputPath
-\family default
- (see the next section for more details).
+\begin_layout LyX-Code
+<StGermainData xmlns="http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003">
  
 \end_layout
 
-\begin_layout Enumerate
-Create a new directory for the restarting run.
- This is mandatory to prevent accidental overwriting of the existing data
- files.
+\begin_layout LyX-Code
+<!-- StGermain simulation parameters -->
 \end_layout
 
-\begin_layout Enumerate
-Move all the 
-\family typewriter
-*.restart
-\family default
- files to the new directory.
+\begin_layout LyX-Code
+<param name="start"> 0 </param>
 \end_layout
 
-\begin_layout Enumerate
-Prepare an input file that is identical with the one used for the original
- run except that 
+\begin_layout LyX-Code
+<param name="outputPath">./data</param> 
 \end_layout
 
-\begin_deeper
-\begin_layout Enumerate
-the new one has 
-\begin_inset Quotes sld
-\end_inset
+\begin_layout LyX-Code
+<param name="dumpEvery"> 10 </param>
+\end_layout
 
+\begin_layout LyX-Code
+<param name="checkpointEvery"> 0 </param>
+\end_layout
 
-\family typewriter
-SnacRestart
-\family default
+\begin_layout LyX-Code
+<param name="maxTimeSteps"> 2 </param> 
+\end_layout
 
-\begin_inset Quotes srd
-\end_inset
+\begin_layout LyX-Code
+<param name="restartTimestep"> 0 </param> 
+\end_layout
 
- in the extensions (=plugins) list 
-\emph on
-AND
+\begin_layout LyX-Code
+<!-- Snac variables -->
 \end_layout
 
-\begin_layout Enumerate
-\begin_inset Quotes sld
-\end_inset
+\begin_layout LyX-Code
+<param name="gravity"> 0.0 </param> 
+\end_layout
 
+\begin_layout LyX-Code
+<param name="demf"> 0.8 </param>
+\end_layout
 
-\family typewriter
-restartTimestep
-\family default
+\begin_layout LyX-Code
+<param name="dtType"> constant </param>
+\end_layout
 
-\begin_inset Quotes srd
-\end_inset
+\begin_layout LyX-Code
+<param name="timeStep"> 3.1536e+08 </param>
+\end_layout
 
- is set to be the time step to restart from 
-\emph on
-AND
+\begin_layout LyX-Code
+<param name="forceCalcType"> complete </param>
 \end_layout
 
-\begin_layout Enumerate
-\begin_inset Quotes sld
-\end_inset
+\begin_layout LyX-Code
+<param name="storeForces"> no </param>
+\end_layout
 
+\begin_layout LyX-Code
+<param name="forceCheckSum"> no </param>
+\end_layout
 
-\family typewriter
-outputPath
-\family default
+\begin_layout LyX-Code
+<param name="topo_kappa"> 0.0 </param> 
+\end_layout
 
-\begin_inset Quotes srd
-\end_inset
+\begin_layout LyX-Code
 
- now points to where 
-\family typewriter
-*.restart
-\family default
- files are.
- SNAC will abort if it detects existing outputs there.
 \end_layout
 
-\end_deeper
-\begin_layout Enumerate
-Start running SNAC as usual but with the input file prepared as above.
+\begin_layout LyX-Code
+<!-- Extension modules -->
 \end_layout
 
-\begin_layout Subsection
+\begin_layout LyX-Code
+<!-- 		
+\end_layout
 
-\family typewriter
-snac2restart
+\begin_layout LyX-Code
+    <param> SnacWinklerG3Force </param> 
 \end_layout
 
-\begin_layout Standard
-The general usage of 
-\family typewriter
-snac2restart
-\family default
- is 
+\begin_layout LyX-Code
+    <param> SnacRemesher </param> 
 \end_layout
 
 \begin_layout LyX-Code
-Usage: snac2restart [timeStep] [your "outputPath"] [path to write restart
- files]
+    <param> SnacHydroStaticIC </param> 
 \end_layout
 
-\begin_layout Standard
-timeStep is one of the checkpointed time steps and should be one of those
- recorded in 
-\family typewriter
-checkpointTimeStep.0
-\family default
-.
- The last two specify a path to where your output files are which need processin
-g, and where to write the processed restart files, respectively.
- All the arguments are optional and, by default, 
-\family typewriter
-snac2restart
-\family default
- tries to read and write in the current directory and process for the last
- time step recorded.
- Files with the suffix of *.restart are created.
+\begin_layout LyX-Code
+    <param> SnacCustomCartesian </param> 
 \end_layout
 
-\begin_layout Chapter
-Postprocessing and Graphics 
+\begin_layout LyX-Code
+    <param> SnacViscoPlastic </param>
 \end_layout
 
-\begin_layout Section
-Introduction 
+\begin_layout LyX-Code
+    <param> SnacVPSeeds </param>
 \end_layout
 
-\begin_layout Standard
-SNAC writes binary output files, and it is necessary to convert them to
- a file format that external visualization tools can handle.
- Two such converting programs are provided.
- One generates Visualization Tool Kit (VTK) files.
- The other is for the open source Open Visualization Data Explorer, better
- known as OpenDX.
- There are several programs that can visualize VTK files: ParaView 
-\begin_inset Flex URL
-status collapsed
+\begin_layout LyX-Code
+    <param> SnacPlSeeds </param> 	
+\end_layout
 
-\begin_layout Plain Layout
+\begin_layout LyX-Code
+-->
+\end_layout
 
-www.paraview.org
+\begin_layout LyX-Code
+<list name="extensions">
 \end_layout
 
-\end_inset
+\begin_layout LyX-Code
+    <param> SnacPlastic </param>
+\end_layout
 
-, MayaVi2 
-\begin_inset Flex URL
-status collapsed
+\begin_layout LyX-Code
+    <param> SnacCondFunc </param>
+\end_layout
 
-\begin_layout Plain Layout
+\begin_layout LyX-Code
+</list> 
+\end_layout
 
-https://svn.enthought.com/enthought/wiki/MayaVi
+\begin_layout LyX-Code
+
 \end_layout
 
-\end_inset
+\begin_layout LyX-Code
+<struct name="mesh"> 		
+\end_layout
 
-, or VisIt 
-\begin_inset Flex URL
-status collapsed
+\begin_layout LyX-Code
+    <param name="shadowDepth"> 1 </param>
+\end_layout
 
-\begin_layout Plain Layout
+\begin_layout LyX-Code
+    <param name="decompDims"> 2 </param>
+\end_layout
 
-https://wci.llnl.gov/codes/visit/
+\begin_layout LyX-Code
+
 \end_layout
 
-\end_inset
+\begin_layout LyX-Code
+    <!-- Mesh size -->
+\end_layout
 
-.
- OpenDX with documentation is available from the OpenDX website 
-\begin_inset Flex URL
-status collapsed
+\begin_layout LyX-Code
+    <param name="meshSizeI"> 51 </param>
+\end_layout
 
-\begin_layout Plain Layout
+\begin_layout LyX-Code
+    <param name="meshSizeJ"> 2 </param>
+\end_layout
 
-www.opendx.org
+\begin_layout LyX-Code
+    <param name="meshSizeK"> 51 </param>
 \end_layout
 
-\end_inset
+\begin_layout LyX-Code
 
-.
- 
 \end_layout
 
-\begin_layout Subsection
-Outputs from SNAC
+\begin_layout LyX-Code
+    <!-- Initial geometry -->
 \end_layout
 
-\begin_layout Standard
-Once you have run SNAC, you should have a series of files in the 
-\family typewriter
-output
-\family default
- directory as set in the input file.
+\begin_layout LyX-Code
+    <param name="minX"> 0 </param>
 \end_layout
 
-\begin_layout Standard
-Information on the parallel decompositon is not explicitly given in an input
- file by a user.
- Instead, StGermain computes an optimal configuration based on the total
- number of processors, the global mesh size, and the value of 
-\family typewriter
-decompDims
-\family default
-.
- The resultant global and local element numbers in x, y, and z as well as
- decomposed processor numbers are written in the file 
-\family typewriter
-sim.0
-\family default
-, which is common to all the processors.
- 
+\begin_layout LyX-Code
+    <param name="minY"> -6000.0 </param>
 \end_layout
 
-\begin_layout Section
-Converting to VTK files
+\begin_layout LyX-Code
+    <param name="minZ"> 0 </param>
 \end_layout
 
-\begin_layout Standard
-A program called 
-\family typewriter
-snac2vtk
-\family default
- is provided to convert the binary outputs from SNAC to ascii files in the
- XML VTK Structured Grid format (.vts).
- 
-\family typewriter
-snac2vtk
-\family default
- is compiled during the building procedure and installed in 
-\family typewriter
-${SNAC_BINDIR}
-\family default
-.
- The usage is
+\begin_layout LyX-Code
+    <param name="maxX"> 300000.0 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac2vtk path-to-outputs [time1 time2].
+    <param name="maxY"> 0.0 </param>
 \end_layout
 
-\begin_layout Standard
-The only required argument is a path to output files including 
-\family typewriter
-sim.0
-\family default
-, which contains critical information to process data.
- The last two optional arguments are used to set the range of time steps
- for data conversion.
+\begin_layout LyX-Code
+    <param name="maxZ"> 300000.0 </param>
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
-\family typewriter
-snac2vtk
-\family default
- automatically generates Parallel VTK Structured Grid files (.pvts) for each
- time step so that there is no need for an extra step to combine data even
- for the parallel cases.
- It is the group of .pvts files that needs to be loaded in ParaView or another
- visualization tool for VTK.
- However, .vts files should not be removed because .pvts files only refer
- to .vts files rather than contain actual data.
 \end_layout
 
 \begin_layout LyX-Code
-> snac2vtk ./ 
-\family roman
-(the last time step only)
+    <!-- Remeshing -->
 \end_layout
 
-\begin_layout Standard
-or
+\begin_layout LyX-Code
+    <param name="meshType"> cartesian </param>
 \end_layout
 
 \begin_layout LyX-Code
-> snac2vtk ./ 10 
-\family roman
-(from 10th to the last time step)
+    <param name="buildNodeNeighbourTbl"> True </param>
 \end_layout
 
-\begin_layout Standard
-or
+\begin_layout LyX-Code
+</struct>
 \end_layout
 
 \begin_layout LyX-Code
-> snac2vtk ./ 1 1001 
-\family roman
-(from 1 to 1001th time step)
+
 \end_layout
 
-\begin_layout Paragraph*
-Example list of SNAC output files in the VTK format: 8 processors and 51
- outputs per processor.
+\begin_layout LyX-Code
+<list name="materials"> 	<!-- Three types of material with different cohesions--
+>
 \end_layout
 
 \begin_layout LyX-Code
-snac.0.000001.vts snac.0.000003.vts snac.0.000005.vts ....
- snac.0.000101.vts 
+<struct name="mat_normal">
 \end_layout
 
 \begin_layout LyX-Code
-snac.1.000001.vts snac.1.000003.vts snac.1.000005.vts ....
- snac.1.000101.vts
+    <param name="density"> 2800 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.2.000001.vts snac.2.000003.vts snac.2.000005.vts ....
- snac.2.000101.vts
+    <param name="alpha"> 0.0 </param>
 \end_layout
 
 \begin_layout LyX-Code
+    <param name="beta"> 0.0 </param> 		
+\end_layout
 
+\begin_layout LyX-Code
+    <!-- Elastic material parameters -->
 \end_layout
 
 \begin_layout LyX-Code
-snac.7.000001.vts snac.7.000003.vts snac.7.000005.vts ....
- snac.7.000101.vts 
+    <param name="lambda"> 3.0e+10 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.000001.pvts snac.000003.pvts snac.000005.pvts ....
- snac.000101.pvts
+    <param name="mu"> 3.0e+10 </param>
 \end_layout
 
-\begin_layout Section
-Converting to OpenDX files 
+\begin_layout LyX-Code
+    <!-- Plastic material parameters -->
 \end_layout
 
-\begin_layout Standard
-We recommend that you use VTK files for post-processing.
- The conversion tools for the DX file format will no longer be updated.
+\begin_layout LyX-Code
+    <param name="yieldcriterion"> mohrcoulomb </param>
 \end_layout
 
-\begin_layout Standard
-To convert binary files into ascii OpenDX files, you need to run the program
- 
-\family typewriter
-snac2dx
-\family default
-.
- The source code is 
-\family typewriter
-Snac/snac2dx/snac2dx.c
-\family default
-, compiled during SNAC's building procedure and placed in 
-\family typewriter
-${SNAC_BINDIR}
-\family default
- together with other executables.
+\begin_layout LyX-Code
+    <param name="nsegments"> 2 </param>
 \end_layout
 
-\begin_layout Standard
-Running 
-\family typewriter
-snac2dx
-\family default
- without any arguments converts data for all the time steps recorded in
- 
-\family typewriter
-timeStep.0
-\family default
-.
- Optionally, a range of time steps can be set if two positive integers are
- given as arguments.
- The converted output files are always written in the directory where 
-\family typewriter
-snac2dx
-\family default
- is run.
- The naming convention for the ascii dx files is 
-\family typewriter
-snac.{processor ID}.{time step in 6 digits}.dx
-\family default
-.
+\begin_layout LyX-Code
+    <param name="plstrain0"> 0.0 </param>
 \end_layout
 
-\begin_layout Standard
-To visualize outputs from a parallel run, one more step is needed to combine
- the .dx files into a single dx file for each time step.
- A Python script, 
-\family typewriter
-snac_combine.py
-\family default
-, is provided for this purpose.
- This script is under 
-\family typewriter
-Snac/snac2dx
-\family default
-, but not automatically installed in 
-\family typewriter
-${SNAC_BINDIR}
-\family default
-.
- The following eight arguments are required:
+\begin_layout LyX-Code
+    <param name="plstrain1"> 0.01 </param>
 \end_layout
 
-\begin_layout Itemize
+\begin_layout LyX-Code
+    <param name="plstrain2"> 1000.0 </param>
+\end_layout
 
-\series bold
-modelname
-\series default
-: Suffix for the combined data files.
- 
-\family typewriter
-``snac
-\family default
-'' unless snac2dx.c is modified.
+\begin_layout LyX-Code
+    <param name="frictionAngle0"> 0.0 </param>
 \end_layout
 
-\begin_layout Itemize
+\begin_layout LyX-Code
+    <param name="frictionAngle1"> 0.0 </param>
+\end_layout
 
-\series bold
-timestep
-\series default
-: Time step of interest.
+\begin_layout LyX-Code
+    <param name="frictionAngle2"> 0.0 </param>
 \end_layout
 
-\begin_layout Itemize
+\begin_layout LyX-Code
+    <param name="dilationAngle0"> 0.0 </param>
+\end_layout
 
-\series bold
-gnodex gnodey gnodez
-\series default
-: Global node numbers in x, y, and z (lon, radius, lat) as set in the input
- file.
+\begin_layout LyX-Code
+    <param name="dilationAngle1"> 0.0 </param>
 \end_layout
 
-\begin_layout Itemize
+\begin_layout LyX-Code
+    <param name="dilationAngle2"> 0.0 </param>
+\end_layout
 
-\series bold
-nprocx nprocy nprocz
-\series default
-: Number of processors in x, y, and z (lon, radius, lat) calculated based
- on 
-\family typewriter
-sim.0
-\family default
-.
+\begin_layout LyX-Code
+    <param name="cohesion0"> 2.0e+07 </param>
 \end_layout
 
-\begin_layout Paragraph*
-Example list of SNAC output files in the OpenDX format: 8 processors and
- 51 outputs per processor.
+\begin_layout LyX-Code
+    <param name="cohesion1"> 1.0e+07 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.0.000001.dx snac.0.000003.dx snac.0.000005.dx ....
- snac.0.000101.dx 
+    <param name="cohesion2"> 1.0e+07 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.1.000001.dx snac.1.000003.dx snac.1.000005.dx ....
- snac.1.000101.dx 
+    <param name="ten_off"> 1.0e+12 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.2.000001.dx snac.2.000003.dx snac.2.000005.dx ....
- snac.2.000101.dx 
+</struct>
 \end_layout
 
 \begin_layout LyX-Code
+<struct name="mat_strong">
+\end_layout
 
+\begin_layout LyX-Code
+    <param name="density"> 2800 </param>
 \end_layout
 
 \begin_layout LyX-Code
-snac.7.000001.dx snac.7.000003.dx snac.7.000005.dx ....
- snac.7.000101.dx 
+    <param name="alpha"> 0.0 </param>
 \end_layout
 
-\begin_layout Standard
-Let's assume that the global mesh has 51 
-\begin_inset Formula $\times$
-\end_inset
+\begin_layout LyX-Code
+    <param name="beta"> 0.0 </param>
+\end_layout
 
- 31 
-\begin_inset Formula $\times$
-\end_inset
+\begin_layout LyX-Code
+    <!-- Elastic material parameters -->
+\end_layout
 
- 41 nodes and was decomposed in 3D (
-\family typewriter
-decompDims
-\family default
-=3) by 8 processors.
- Also, we assume that the contents of 
-\family typewriter
-sim.0
-\family default
- is ``25 15 20''.
- Then, we can infer that 2 processors were assigned in each dimension.
+\begin_layout LyX-Code
+    <param name="lambda"> 3.0e+10 </param>
 \end_layout
 
-\begin_layout Standard
-To get a combined dx file for the time step 35:
+\begin_layout LyX-Code
+    <param name="mu"> 3.0e+10 </param>
 \end_layout
 
 \begin_layout LyX-Code
-> snac_combine.py snac 35 51 31 41 2 2 2
+    <!-- Plastic material parameters -->
 \end_layout
 
-\begin_layout Standard
-The name of a combined file has the format of ``
-\family typewriter
-snac.{time step in 6 digits}.dx
-\family default
+\begin_layout LyX-Code
+    <param name="yieldcriterion"> mohrcoulomb </param>
+\end_layout
 
-\begin_inset Quotes srd
-\end_inset
+\begin_layout LyX-Code
+    <param name="nsegments"> 2 </param>
+\end_layout
 
-.
- ``
-\family typewriter
-snac.000035.dx
-\family default
-'' should be the final product in the above example.
+\begin_layout LyX-Code
+    <param name="plstrain0"> 0.0 </param>
 \end_layout
 
-\begin_layout Subsection
-Using OpenDX
+\begin_layout LyX-Code
+    <param name="plstrain1"> 0.01 </param>
 \end_layout
 
-\begin_layout Standard
-An OpenDX visual program, 
-\family typewriter
-snac_visualize.net
-\family default
-, is provided for convenience and is placed in 
-\family typewriter
-Snac/snac2dx
-\family default
-.
- It can be opened in OpenDX to read data, map node- and element-based variables
- on the domain, visualize vector quantities as 3D glyphs, create isosurfaces,
- and make cross-sections.
+\begin_layout LyX-Code
+    <param name="plstrain2"> 1000.0 </param>
 \end_layout
 
+\begin_layout LyX-Code
+    <param name="frictionAngle0"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="frictionAngle1"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="frictionAngle2"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle0"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle1"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle2"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion0"> 2.0e+08 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion1"> 1.0e+08 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion2"> 1.0e+08 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="ten_off"> 1.0e+12 </param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct> 	
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="mat_weak">
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="density"> 2800 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="alpha"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="beta"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <!-- Elastic material parameters -->
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="lambda"> 3.0e+10 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="mu"> 3.0e+10 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <!-- Plastic material parameters -->
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="yieldcriterion"> mohrcoulomb </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="nsegments"> 2 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="plstrain0"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="plstrain1"> 0.01 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="plstrain2"> 1000.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="frictionAngle0"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="frictionAngle1"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="frictionAngle2"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle0"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle1"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="dilationAngle2"> 0.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion0"> 2.0e+06 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion1"> 1.0e+06 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="cohesion2"> 1.0e+06 </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="ten_off"> 1.0e+12 </param>
+\end_layout
+
+\begin_layout LyX-Code
+</struct>
+\end_layout
+
+\begin_layout LyX-Code
+</list>
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+<!-- Remesher info -->
+\end_layout
+
+\begin_layout LyX-Code
+<!-- 
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="remeshCondition"> onBothTimeStepLength </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="remeshCondition"> onTimeStep </param>
+\end_layout
+
+\begin_layout LyX-Code
+    <param name="remeshCondition"> onMinLengthScale </param>
+\end_layout
+
+\begin_layout LyX-Code
+--> 	
+\end_layout
+
+\begin_layout LyX-Code
+<param name="remeshCondition"> onMinLengthScale </param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="remeshTimeStepCriterion"> 15000 </param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="remeshLengthCriterion"> 45.0 </param>
+\end_layout
+
+\begin_layout LyX-Code
+<param name="bottomResotre"> on </param> 
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+<!-- node ICs -->
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="nodeICs">
+\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"> AllNodesVC </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 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"> 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"> vz </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 LyX-Code
+<!-- element ICs -->
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="elementICs">
+\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"> AllElementsVC </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"> elementMaterial </param>
+\end_layout
+
+\begin_layout LyX-Code
+                    <param name="type"> func </param>
+\end_layout
+
+\begin_layout LyX-Code
+                    <param name="value"> SnacCF_DeadSea </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
+
+\end_layout
+
+\begin_layout LyX-Code
+<!-- Velocity BCs -->
+\end_layout
+
+\begin_layout LyX-Code
+<struct name="velocityBCs">
+\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"> 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"> double </param>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="value"> -1.5e-10 </param>
+\end_layout
+
+\begin_layout LyX-Code
+            </struct>
+\end_layout
+
+\begin_layout LyX-Code
+            <struct>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="name"> vz </param>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="type"> double </param>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="value"> 1.5e-10 </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="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 LyX-Code
+                <param name="value"> 1.5e-10 </param>
+\end_layout
+
+\begin_layout LyX-Code
+            </struct>
+\end_layout
+
+\begin_layout LyX-Code
+            <struct>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="name"> vz </param>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="type"> double </param>
+\end_layout
+
+\begin_layout LyX-Code
+                <param name="value"> -1.5e-10 </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="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
+        <struct>
+\end_layout
+
+\begin_layout LyX-Code
+            <param name="type"> WallVC </param>
+\end_layout
+
+\begin_layout LyX-Code
+            <param name="wall"> top </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 LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+</StGermainData>
+\end_layout
+
 \begin_layout Chapter
 \begin_inset CommandInset label
 LatexCommand label



More information about the CIG-COMMITS mailing list