[cig-commits] r16888 - in short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8: . static static/figs

willic3 at geodynamics.org willic3 at geodynamics.org
Thu Jun 3 19:29:13 PDT 2010


Author: willic3
Date: 2010-06-03 19:29:13 -0700 (Thu, 03 Jun 2010)
New Revision: 16888

Added:
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/friction/
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/gravity/
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/quasistatic/
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/figs/
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/figs/step01-displ.jpg
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/static.lyx
Modified:
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx
Log:
Started reorganizing 3dhex8 tutorials.



Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx	2010-06-03 23:20:41 UTC (rev 16887)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx	2010-06-04 02:29:13 UTC (rev 16888)
@@ -1,4 +1,4 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
+#LyX 1.6.6 created this file. For more info see http://www.lyx.org/
 \lyxformat 345
 \begin_document
 \begin_header
@@ -64,6 +64,10 @@
 \end_layout
 
 \begin_layout Itemize
+Static solution
+\end_layout
+
+\begin_layout Itemize
 Quasi-static solution
 \end_layout
 
@@ -72,11 +76,11 @@
 \end_layout
 
 \begin_layout Itemize
-Gravitational body forces
+Trilinear hexahedral cells
 \end_layout
 
 \begin_layout Itemize
-Initial stresses
+VTK output
 \end_layout
 
 \begin_layout Itemize
@@ -84,10 +88,30 @@
 \end_layout
 
 \begin_layout Itemize
-Multiple kinematic fault ruptures
+Neumann traction boundary conditions and time-varying tractions
 \end_layout
 
 \begin_layout Itemize
+ZeroDispDB spatial database
+\end_layout
+
+\begin_layout Itemize
+SimpleDB spatial database
+\end_layout
+
+\begin_layout Itemize
+UniformDB spatial database
+\end_layout
+
+\begin_layout Itemize
+Static fault rupture
+\end_layout
+
+\begin_layout Itemize
+Specifying more than one material
+\end_layout
+
+\begin_layout Itemize
 Linearly elastic isotropic material
 \end_layout
 
@@ -96,34 +120,50 @@
 \end_layout
 
 \begin_layout Itemize
-Specifying more than one material
+Multiple kinematic fault ruptures
 \end_layout
 
 \begin_layout Itemize
-VTK output
+Power-law viscoelastic material
 \end_layout
 
 \begin_layout Itemize
-Trilinear hexahedral cells
+Drucker-Prager elastoplastic material
 \end_layout
 
 \begin_layout Itemize
-SimpleDB spatial database
+Static fault friction
 \end_layout
 
 \begin_layout Itemize
-ZeroDispDB spatial database
+Slip-weakening fault friction
 \end_layout
 
+\begin_layout Itemize
+Rate-and-state fault friction
+\end_layout
+
+\begin_layout Itemize
+Gravitational body forces
+\end_layout
+
+\begin_layout Itemize
+Initial stresses
+\end_layout
+
+\begin_layout Itemize
+Finite strain
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout
 
 \begin_layout Standard
-This tutorial is a simple 3D example of a quasi-static finite element problem.
- It is a mesh composed of 144 trilinear hexahedra subject to displacement
- boundary conditions.
- This example demonstrates the usage of the CUBIT mesh generation package
+This tutorial is meant to demonstrate most of the important features of
+ PyLith as a quasi-static finite element code, using a sequence of example
+ problems.
+ All problems use the same 3D hexahedral mesh generated using the CUBIT
  
 \begin_inset Flex URL
 status collapsed
@@ -135,12 +175,23 @@
 
 \end_inset
 
+ mesh generation package.
+ Each example builds on the previous examples, as new features are demonstrated.
+ We will walk through the steps necessary to construct, run, and view several
+ problems that use the same mesh.
+ In addition to this manual, each of the files for the example problems
+ includes extensive comments.
+ We start with the generation of the mesh, which is composed of 144 trilinear
+ hexahedra.
+ The tutorial demonstrates the usage of the CUBIT mesh generation package
  to create a mesh, as well as describing how to use a CUBIT-generated mesh
  in PyLith.
- In this tutorial, we will walk through the steps necessary to construct,
- run, and view several problems that use the same mesh.
- In addition to this manual, each of the files for the example problems
- includes extensive comments.
+ Following the discussion of how to generate the mesh, there is a discussion
+ of the pylithapp.cfg file, which contains information common to all the
+ simulations.
+ The tutorial is then subdivided into four sections, each pertaining to
+ a particular set of PyLith features.
+ It is suggested that users go through each of these sections in order.
 \end_layout
 
 \begin_layout Subsection
@@ -161,7 +212,7 @@
  package for this example.
  For this simple example, we provide documented journal files in 
 \family typewriter
-examples/3d/hex8.
+examples/3d/hex8/mesh.
 
 \family default
  Investigation of these journal files should provide some insight into how
@@ -277,7 +328,7 @@
 \end_layout
 
 \begin_layout Standard
-This mesh may then be used for the examples described below.
+This mesh may then be used for the examples described later in the tutorial.
 \end_layout
 
 \begin_layout Standard
@@ -362,12 +413,12 @@
 \end_layout
 
 \begin_layout LyX-Code
-filename = box_hex8_1000m.exo
+filename = mesh/box_hex8_1000m.exo
 \end_layout
 
 \begin_layout Standard
-This example differs from most other examples, because we specify two material
- groups:
+This example differs from some earlier examples, because we specify two
+ material groups:
 \end_layout
 
 \begin_layout LyX-Code
@@ -375,23 +426,19 @@
 \end_layout
 
 \begin_layout LyX-Code
-materials = [elastic,viscoelastic]
+materials = [upper_crust,lower_crust]
 \end_layout
 
 \begin_layout LyX-Code
-materials.viscoelastic = pylith.materials.MaxwellIsotropic3D
-\end_layout
 
-\begin_layout LyX-Code
-
 \end_layout
 
 \begin_layout LyX-Code
-[pylithapp.timedependent.materials.elastic]
+[pylithapp.timedependent.materials.upper_crust]
 \end_layout
 
 \begin_layout LyX-Code
-label = Elastic material
+label = Upper crust material
 \end_layout
 
 \begin_layout LyX-Code
@@ -399,7 +446,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-db.iohandler.filename = mat_elastic.spatialdb
+db.iohandler.filename = spatialdb/mat_elastic.spatialdb
 \end_layout
 
 \begin_layout LyX-Code
@@ -415,11 +462,11 @@
 \end_layout
 
 \begin_layout LyX-Code
-[pylithapp.timedependent.materials.viscoelastic]
+[pylithapp.timedependent.materials.lower_crust]
 \end_layout
 
 \begin_layout LyX-Code
-label = Viscoelastic material
+label = Lower crust material
 \end_layout
 
 \begin_layout LyX-Code
@@ -427,7 +474,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-db.iohandler.filename = mat_viscoelastic.spatialdb
+db.iohandler.filename = spatialdb/mat_elastic.spatialdb
 \end_layout
 
 \begin_layout LyX-Code
@@ -448,26 +495,56 @@
 \end_inset
 
 .
- Because the two materials have different physical properties, we use a
- different spatial database for each material.
+ The usage of two material groups allows us to specify different material
+ types or material variations for the upper crust and lower crust, if desired.
+ For now, we retain the default 
+\family typewriter
+ElasticIsotropic3D
+\family default
+ material type for both materials.
+ This behavior will be overriden by example-specific 
+\family typewriter
+.cfg
+\family default
+ files for some of the examples.
  Although the material groups are specified in 
 \family typewriter
 pylithapp.cfg
 \family default
 , the physical properties for the material models are given in 
 \family typewriter
-mat_elastic.spatialdb
+spatialdb/mat_elastic.spatialdb
 \family default
-, and 
-\family typewriter
-mat_viscoelastic.spatialdb
-\family default
 .
- For this example, values describing the physical properties are given at
- a single point, resulting in uniform properties within each material.
+ This spatial database provides values at a single point, resulting in uniform
+ properties within the material.
 \end_layout
 
 \begin_layout Subsection
+Example Problems
+\end_layout
+
+\begin_layout Standard
+The example problems are divided into categories that roughly correspond
+ to simple static problems, quasi-static problems, problems involving fault
+ friction, and problems where gravity is used.
+ For the most part, each successive example involves just adding or changing
+ a few parameters from the previous example.
+ For this reason, it is advisable to go through each example in order, starting
+ with the simplest (static problems).
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset include
+LatexCommand include
+filename "static/static.lyx"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
 Shear Displacement Example
 \end_layout
 

Added: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/figs/step01-displ.jpg
===================================================================
(Binary files differ)


Property changes on: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/figs/step01-displ.jpg
___________________________________________________________________
Name: svn:mime-type
   + image/jpeg

Added: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/static.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/static.lyx	                        (rev 0)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/static/static.lyx	2010-06-04 02:29:13 UTC (rev 16888)
@@ -0,0 +1,411 @@
+#LyX 1.6.6 created this file. For more info see http://www.lyx.org/
+\lyxformat 345
+\begin_document
+\begin_header
+\textclass book
+\begin_preamble
+
+\end_preamble
+\use_default_options false
+\language english
+\inputencoding latin1
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry true
+\use_amsmath 0
+\use_esint 0
+\cite_engine basic
+\use_bibtopic false
+\paperorientation portrait
+\leftmargin 1in
+\topmargin 1in
+\rightmargin 1in
+\bottommargin 2in
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\defskip medskip
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\author "" 
+\author "" 
+\end_header
+
+\begin_body
+
+\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:Tutorial-3d-hex8-static"
+
+\end_inset
+
+Tutorial Using Hexahedral Mesh Created by CUBIT - Static Examples
+\end_layout
+
+\begin_layout Standard
+PyLith features discussed in this tutorial:
+\end_layout
+
+\begin_layout Itemize
+Static solution
+\end_layout
+
+\begin_layout Itemize
+VTK output
+\end_layout
+
+\begin_layout Itemize
+Dirichlet displacement boundary conditions
+\end_layout
+
+\begin_layout Itemize
+Neumann traction boundary conditions
+\end_layout
+
+\begin_layout Itemize
+ZeroDispDB spatial database
+\end_layout
+
+\begin_layout Itemize
+SimpleDB spatial database
+\end_layout
+
+\begin_layout Itemize
+UniformDB spatial database
+\end_layout
+
+\begin_layout Itemize
+Static fault rupture
+\end_layout
+
+\begin_layout Itemize
+Specifying more than one material
+\end_layout
+
+\begin_layout Itemize
+Linearly elastic isotropic material
+\end_layout
+
+\begin_layout Subsubsection
+Overview
+\end_layout
+
+\begin_layout Standard
+This set of examples describe the simplest class of problems for PyLith.
+ The problems are all purely elastic, and there is no time-dependence.
+ This set of elastostatic examples primarily demonstrates the application
+ of different types of boundary conditions in PyLith, as well as demonstrating
+ the use of a kinematic fault for a static problem.
+ All of the examples are contained in the directory 
+\family typewriter
+examples/3d/hex8
+\family default
+, and the corresponding 
+\family typewriter
+.cfg
+\family default
+ files are 
+\family typewriter
+step01.cfg
+\family default
+, 
+\family typewriter
+step02.cfg
+\family default
+, and 
+\family typewriter
+step03.cfg
+\family default
+.
+ Each example may be run as follows:
+\end_layout
+
+\begin_layout LyX-Code
+pylith stepxx.cfg
+\end_layout
+
+\begin_layout Standard
+This will cause PyLith to read the default parameters in 
+\family typewriter
+pylithapp.cfg
+\family default
+, and then override or augment them with the additional parameters in the
+ 
+\family typewriter
+stepxx.cfg
+\family default
+ file.
+ Each 
+\family typewriter
+.cfg
+\family default
+ file is extensively documented, to provide detailed information on the
+ various parameters.
+\end_layout
+
+\begin_layout Subsubsection
+Step01 - Pure Dirichlet Boundary Conditions
+\end_layout
+
+\begin_layout Standard
+The step01.cfg file describes a problem with pure Dirichlet (displacement)
+ boundary conditions corresponding to compression in the x-direction and
+ shear in the y-direction.
+ The bottom (minimum z) boundary is held fixed in the z-direction.
+ On the positive and negative x-faces, compressional displacements of 1
+ m are applied in the x-direction and shear displacements yielding a left-latera
+l sense of shear are applied in the y-direction.
+ In this example and in subsequent examples we would like to output a subset
+ of the displacement solution corresponding to the ground surface.
+ To do this, we first set the output to an array of two output managers
+ as follows:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.implicit]
+\end_layout
+
+\begin_layout LyX-Code
+# Set the output to an array of 2 output managers.
+\end_layout
+
+\begin_layout LyX-Code
+# We will output the solution over the domain and the ground surface.
+\end_layout
+
+\begin_layout LyX-Code
+output = [domain,subdomain]
+\end_layout
+
+\begin_layout Standard
+We then define the subdomain output manager to correspond to a subset of
+ the solution:
+\end_layout
+
+\begin_layout LyX-Code
+# Set subdomain component to OutputSolnSubset (boundary of the domain).
+\end_layout
+
+\begin_layout LyX-Code
+output.subdomain = pylith.meshio.OutputSolnSubset
+\end_layout
+
+\begin_layout Standard
+Later (in the output section at the end of the file), we specify the nodeset
+ that corresponds to the desired output:
+\end_layout
+
+\begin_layout LyX-Code
+# Give basename for VTK domain output of solution over ground surface.
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.problem.formulation.output.subdomain]
+\end_layout
+
+\begin_layout LyX-Code
+# Name of nodeset for ground surface.
+\end_layout
+
+\begin_layout LyX-Code
+label = face_zpos
+\end_layout
+
+\begin_layout LyX-Code
+writer.filename = step01/step01-groundsurf.vtk
+\end_layout
+
+\begin_layout Standard
+For the boundary conditions, we must describe which degrees of freedom are
+ being constrained (
+\family typewriter
+bc_dof
+\family default
+), we must provide a label that describes which Cubit nodeset to which to
+ apply the BC, and we must specify what type of spatial database is being
+ used to describe the boundary conditions.
+ For the x-faces, we use a 
+\family typewriter
+SimpleDB
+\family default
+ to provide the displacements on the x-faces:
+\end_layout
+
+\begin_layout LyX-Code
+# +x face
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.bc.x_pos]
+\end_layout
+
+\begin_layout LyX-Code
+bc_dof = [0, 1]
+\end_layout
+
+\begin_layout LyX-Code
+label = face_xpos
+\end_layout
+
+\begin_layout LyX-Code
+db_initial = spatialdata.spatialdb.SimpleDB
+\end_layout
+
+\begin_layout LyX-Code
+db_initial.label = Dirichlet BC on +x
+\end_layout
+
+\begin_layout LyX-Code
+db_initial.iohandler.filename = spatialdb/fixeddisp_axial_shear.spatialdb
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+# -x face
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.bc.x_neg]
+\end_layout
+
+\begin_layout LyX-Code
+bc_dof = [0, 1]
+\end_layout
+
+\begin_layout LyX-Code
+label = face_xneg
+\end_layout
+
+\begin_layout LyX-Code
+db_initial = spatialdata.spatialdb.SimpleDB
+\end_layout
+
+\begin_layout LyX-Code
+db_initial.label = Dirichlet BC on -x
+\end_layout
+
+\begin_layout LyX-Code
+db_initial.iohandler.filename = spatialdb/fixeddisp_axial_shear.spatialdb
+\end_layout
+
+\begin_layout Standard
+For a 
+\family typewriter
+SimpleDB
+\family default
+, we must provide a filename.
+ The default spatial database for 
+\family typewriter
+db_initial
+\family default
+ is 
+\family typewriter
+ZeroDispBC
+\family default
+, which automatically applies zero displacements to all vertices in the
+ nodeset, and no filename is required (or needed).
+ This is what we use for the bottom of the mesh:
+\end_layout
+
+\begin_layout LyX-Code
+# -z face
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.bc.z_neg]
+\end_layout
+
+\begin_layout LyX-Code
+bc_dof = [2]
+\end_layout
+
+\begin_layout LyX-Code
+label = face_zneg
+\end_layout
+
+\begin_layout LyX-Code
+db_initial.label = Dirichlet BC on -z
+\end_layout
+
+\begin_layout Standard
+When we have run the simulation, the output VTK files will be contained
+ in examples/3d/hex8/step01, and the results may be visualized using a tool
+ such as ParaView or mayavi2.
+ Results using ParaView are shown in 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:step01-displ"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+	filename figs/step01-displ.jpg
+	width 10cm
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Displacement field for example step01 visualized using ParaView.
+ The mesh has been distorted by the computed displacements (magnified by
+ 500), and the vectors show the computed displacements.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:step01-displ"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document



More information about the CIG-COMMITS mailing list