[cig-commits] r18542 - in short/3D/PyLith/trunk/doc/userguide: install intro intro/figs runpylith tutorials/3dtet4
brad at geodynamics.org
brad at geodynamics.org
Sat Jun 4 15:49:59 PDT 2011
Author: brad
Date: 2011-06-04 15:49:59 -0700 (Sat, 04 Jun 2011)
New Revision: 18542
Modified:
short/3D/PyLith/trunk/doc/userguide/install/install.lyx
short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.eps
short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.svg
short/3D/PyLith/trunk/doc/userguide/intro/intro.lyx
short/3D/PyLith/trunk/doc/userguide/runpylith/runpylith.lyx
short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx
Log:
Worked on manual.
Modified: short/3D/PyLith/trunk/doc/userguide/install/install.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/install/install.lyx 2011-06-04 03:27:58 UTC (rev 18541)
+++ short/3D/PyLith/trunk/doc/userguide/install/install.lyx 2011-06-04 22:49:59 UTC (rev 18542)
@@ -1,5 +1,5 @@
-#LyX 1.6.7 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
\begin_document
\begin_header
\textclass book
@@ -7,18 +7,26 @@
\end_preamble
\use_default_options false
+\maintain_unincluded_children false
\language english
+\language_package default
\inputencoding latin1
+\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
+\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
\paperfontsize default
\spacing single
\use_hyperref true
@@ -35,9 +43,18 @@
\use_geometry true
\use_amsmath 1
\use_esint 0
+\use_mhchem 1
+\use_mathdots 1
\cite_engine basic
\use_bibtopic false
+\use_indices false
\paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
@@ -45,15 +62,16 @@
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 2
\paperpagestyle default
\tracking_changes false
\output_changes false
-\author ""
-\author ""
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
\end_header
\begin_body
@@ -172,8 +190,8 @@
\end_layout
\begin_layout Standard
-Binary executables are available for Linux, Mac OS X (Intel 10.5 and Intel
- 10.6), and Windows from the PyLith web page
+Binary executables are available for Linux, Mac OS X (Intel 10.4/10.5 and
+ Intel 10.6), and Windows from the PyLith web page
\begin_inset Flex URL
status collapsed
@@ -235,7 +253,7 @@
\begin_deeper
\begin_layout LyX-Code
-$ tar -xzf pylith-1.5.0-linux-i686.tgz
+$ tar -xzf pylith-1.6.0-linux-i686.tgz
\end_layout
\end_deeper
@@ -305,12 +323,12 @@
\begin_layout Enumerate
Unpack the tarball.
- For 10.5.x operating system,
+ For 10.4.x or 10.5.x operating system,
\end_layout
\begin_deeper
\begin_layout LyX-Code
-$ tar -xzf pylith-1.5.0-darwin-i386.tgz
+$ tar -xzf pylith-1.6.0-darwin-10.4.tgz
\end_layout
\end_deeper
@@ -395,7 +413,19 @@
This insures that the versions of the dependencies are consistent with
PyLith and that the proper configure arguments are used.
The minimum requirements for using the PyLith installer are a C compiler,
- tar, and wget or curl.
+
+\family typewriter
+tar
+\family default
+, and
+\family typewriter
+wget
+\family default
+ or
+\family typewriter
+curl
+\family default
+.
Detailed instructions for how to install PyLith using the installer are
included in the installer distribution, which is available from the PyLith
web page
Modified: short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.eps
===================================================================
(Binary files differ)
Modified: short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.svg
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.svg 2011-06-04 03:27:58 UTC (rev 18541)
+++ short/3D/PyLith/trunk/doc/userguide/intro/figs/workflow.svg 2011-06-04 22:49:59 UTC (rev 18542)
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
@@ -13,7 +14,7 @@
height="765"
id="svg2"
sodipodi:version="0.32"
- inkscape:version="0.46"
+ inkscape:version="0.48.1 r9760"
version="1.0"
sodipodi:docname="workflow.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
@@ -96,7 +97,7 @@
inkscape:cx="229.13"
inkscape:cy="460.72106"
inkscape:document-units="px"
- inkscape:current-layer="layer1"
+ inkscape:current-layer="layer5"
showgrid="true"
inkscape:object-nodes="true"
inkscape:object-paths="true"
@@ -106,7 +107,8 @@
inkscape:window-width="1207"
inkscape:window-height="853"
inkscape:window-x="65"
- inkscape:window-y="65">
+ inkscape:window-y="65"
+ inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid2383"
@@ -140,7 +142,7 @@
id="path7400"
sodipodi:nodetypes="cc" />
<path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
d="M 350,125 L 410,305"
id="path7410"
sodipodi:nodetypes="cc" />
Modified: short/3D/PyLith/trunk/doc/userguide/intro/intro.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/intro/intro.lyx 2011-06-04 03:27:58 UTC (rev 18541)
+++ short/3D/PyLith/trunk/doc/userguide/intro/intro.lyx 2011-06-04 22:49:59 UTC (rev 18542)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
\begin_document
\begin_header
\textclass book
@@ -7,18 +7,26 @@
\end_preamble
\use_default_options false
+\maintain_unincluded_children false
\language english
+\language_package default
\inputencoding latin1
+\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
+\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
@@ -26,9 +34,18 @@
\use_geometry true
\use_amsmath 1
\use_esint 0
+\use_mhchem 1
+\use_mathdots 1
\cite_engine basic
\use_bibtopic false
+\use_indices false
\paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
@@ -36,15 +53,16 @@
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 2
\paperpagestyle default
\tracking_changes false
\output_changes false
-\author ""
-\author ""
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
\end_header
\begin_body
@@ -108,11 +126,8 @@
meshing packages.
The elements currently available include a linear bar in 1-D, linear triangles
and quadrilaterals in 2-D, and linear tetrahedra and hexahedra in 3-D.
- Higher-order (quadratic) elements are also supported, but it is not presently
- possible to create a quadratic mesh from the linear meshes provided by
- most meshing packages.
Materials presently available include isotropic elastic, linear Maxwell
- viscoelastic (2-D and 3-D), generalized Maxwell viscoelastic (3-D only),
+ viscoelastic (2-D and 3-D), generalized Maxwell viscoelastic (2-D and 3-D),
power-law viscoelastic (3-D only), and Drucker-Prager elastoplastic (3-D
only).
Boundary conditions include Dirichlet (prescribed displacements and velocities)
@@ -150,9 +165,8 @@
LaGriT GMV and Pset files, and PyLith mesh ASCII format.
The modeling of the physical processes of interest is performed by a code
such as PyLith.
- Present output consists of VTK files which can be used by a number of visualiza
-tion codes (e.g., ParaView, Visit, and MayaVi).
- In the near future, PyLith will also use the HDF5 format.
+ Present output consists of VTK or HDF5/Xdmf files which can be used by
+ a number of visualization codes (e.g., ParaView, Visit, MayaVi, and Matlab).
\end_layout
Modified: short/3D/PyLith/trunk/doc/userguide/runpylith/runpylith.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/runpylith/runpylith.lyx 2011-06-04 03:27:58 UTC (rev 18541)
+++ short/3D/PyLith/trunk/doc/userguide/runpylith/runpylith.lyx 2011-06-04 22:49:59 UTC (rev 18542)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
\begin_document
\begin_header
\textclass book
@@ -7,18 +7,26 @@
\end_preamble
\use_default_options false
+\maintain_unincluded_children false
\language english
+\language_package default
\inputencoding latin1
+\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
+\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
@@ -26,9 +34,18 @@
\use_geometry true
\use_amsmath 1
\use_esint 0
+\use_mhchem 1
+\use_mathdots 1
\cite_engine basic
\use_bibtopic false
+\use_indices false
\paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
@@ -36,15 +53,16 @@
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 2
\paperpagestyle default
\tracking_changes false
\output_changes false
-\author ""
-\author ""
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
\end_header
\begin_body
@@ -268,7 +286,7 @@
\begin_inset Tabular
<lyxtabular version="3" rows="5" columns="2">
-<features>
+<features tabularvalignment="middle">
<column alignment="left" valignment="top" width="0.9in">
<column alignment="left" valignment="top" width="4in">
<row>
@@ -1104,6 +1122,11 @@
distributor Handles distribution of the mesh among processors.
\end_layout
+\begin_layout Description
+refiner Perform global uniform mesh refinement after distribution among
+ processors (default is False).
+\end_layout
+
\begin_layout Standard
Reordering the mesh so that vertices and cells connected topologically also
reside close together in memory improves overall performance and can improve
@@ -1278,6 +1301,106 @@
ParMETIS is not included in the PyLith binaries due to licensing issues.
\end_layout
+\begin_layout Subsubsection
+Refiner
+\end_layout
+
+\begin_layout Standard
+Decrease node spacing by a factor of two by refining each cell.
+ In a 2-D triangular mesh a node is inserted at the midpoint of each edge,
+ splitting each cell into four cells (see Figure
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:uniform:refinement:2x"
+
+\end_inset
+
+).
+ In a 2-D quadrilateral mesh a node is inserted at the midpoint of each
+ edge and at the centroid of the cell, splitting each cell into four cells.
+ In a 3-D tetrahedral mesh a node is inserted at the midpoint of each edge,
+ splitting each cell into eight cells.
+ In a 3-D hexahedral mesh a node is inserted at the midpoint of each edge,
+ the centroid of each face, and at the centroid of the cell, splitting each
+ cell into eight cells.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\noindent
+\align center
+ADD FIGURES HERE
+\begin_inset Graphics
+ filename figs/tet4.eps
+
+\end_inset
+
+
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+hspace*{0.5in}
+\end_layout
+
+\end_inset
+
+
+\begin_inset Graphics
+ filename figs/hex8.eps
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Global uniform mesh refinement of 2-D and 3-D linear cells.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:uniform:refinement:2x"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The refinement occurs after distribution of the mesh among processors.
+ This allows one to run much large simulations by (1) permitting the mesh
+ generator to generate a mesh with a node spacing twice as large as that
+ needed in the simulation and (2) the mesh setup phase involving adjustment
+ of the topology to insert cohesive cells and distribution among processors
+ uses this coarse mesh.
+ For 2-D problems the global mesh refinement increases the maximum problem
+ size by a factor of four, and for 3-D problems it increases the maximum
+ problem size by a factor of eight.
+\end_layout
+
\begin_layout Subsection
Problem Specification (
\family typewriter
@@ -1493,9 +1616,23 @@
\end_layout
\begin_layout Standard
-PyLith relies on PETSc for the linear algebra computations, including linear
- Krylov subspace solvers and nonlinear solvers.
- PETSc options can be set in
+In quasti-static problems with implicit time-stepping, PyLith relies on
+ PETSc for the linear algebra computations, including linear Krylov subspace
+ solvers and nonlinear solvers.
+ For dynamic problems, lumping the mass matrix and using explicit time-stepping
+ is much more efficient; this permits solving the linear system with a trivial
+ solver so we do not use a PETSc solver in this case (see Section
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:solvers"
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+PETSc options can be set in
\family typewriter
.cfg
\family default
@@ -1526,9 +1663,9 @@
\end_inset
.
- In many quasi-static or dynamic elasticity simulations, runtime can be
- reduced by replacing the Jacobi preconditioner with additive Schwarz with
- Gram-Schmidt orthogonalization (see Table
+ A very wide range of elasticity problems in quasi-static simulations can
+ be solved with reasonable runtimes by replacing the default Jacobi precondition
+er with additive Schwarz with Gram-Schmidt orthogonalization (see Table
\begin_inset space ~
\end_inset
@@ -1540,9 +1677,42 @@
\end_inset
).
+ A more advanced set of solver settings that may provide better performance
+ in many elasticity problems are given in Table
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "tab:petsc:options:advanced"
+
+\end_inset
+
+.
+ These settings are limited to a nonsymmetric sparse matrix and require
+ additional settings for the formulation,
\end_layout
+\begin_layout LyX-Code
+[pylithapp.timedependent.formulation]
+\end_layout
+
+\begin_layout LyX-Code
+split_fields = True
+\end_layout
+
+\begin_layout LyX-Code
+use_custom_constraint_pc = True ; Use only if problem contains a fault
+\end_layout
+
+\begin_layout LyX-Code
+matrix_type = aij
+\end_layout
+
\begin_layout Standard
+In simulations with fault slip, the degrees of freedom associated with the
+ Lagrange multipliers should be preconditioned with a custom preconditioner
+ that uses a diagonal approximation of the Schur complement.
+\end_layout
+
+\begin_layout Standard
\noindent
\align center
\begin_inset Float table
@@ -1569,8 +1739,8 @@
\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="3">
-<features>
+<lyxtabular version="3" rows="10" columns="3">
+<features tabularvalignment="middle">
<column alignment="left" valignment="top" width="1.2in">
<column alignment="center" valignment="middle" width="0.6in">
<column alignment="left" valignment="top" width="3.8in">
@@ -1658,6 +1828,8 @@
\begin_inset Text
\begin_layout Plain Layout
+
+\shape italic
false
\end_layout
@@ -1689,6 +1861,8 @@
\begin_inset Text
\begin_layout Plain Layout
+
+\shape italic
false
\end_layout
@@ -1739,18 +1913,117 @@
</cell>
</row>
<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
\family typewriter
+snes_monitor
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+false
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Dump residual norm to stdout for each nonlinear solve iteration.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+snes_view
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+false
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Print nonlinear solver paremeters.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+snes_rtol
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+1.0e-5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Convergence tolerance for releative decrease in residual norm.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
pc_type
\end_layout
\end_inset
</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
@@ -1761,7 +2034,7 @@
\end_inset
</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
\begin_inset Text
\begin_layout Plain Layout
@@ -1773,6 +2046,39 @@
\end_inset
</cell>
</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+ksp_type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+gmres
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Linear iterative solver with classical Gram-Schmidt orthogonalization
+\end_layout
+
+\end_inset
+</cell>
+</row>
</lyxtabular>
\end_inset
@@ -1800,16 +2106,16 @@
\end_inset
-PETSc options that often result in improved performance in quasi-static
- and dynamic elasticity problems.
+PETSc options that provide moderate performance in a wide range of quasi-static
+ elasticity problems.
\end_layout
\end_inset
\begin_inset Tabular
-<lyxtabular version="3" rows="9" columns="3">
-<features>
+<lyxtabular version="3" rows="13" columns="3">
+<features tabularvalignment="middle">
<column alignment="left" valignment="top" width="2in">
<column alignment="center" valignment="middle" width="0.75in">
<column alignment="left" valignment="top" width="3in">
@@ -1886,7 +2192,36 @@
\begin_inset Text
\begin_layout Plain Layout
+ksp_type
+\end_layout
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+gmres
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Linear iterative solver with classical Gram-Schmidt orthogonalization
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
\family typewriter
sub_pc_factor_shift_type
\end_layout
@@ -1941,7 +2276,7 @@
\begin_inset Text
\begin_layout Plain Layout
-Maximum number of iterations.
+Maximum number of iterations permitted in linear solve.
Depends on problem size.
\end_layout
@@ -2006,7 +2341,7 @@
\begin_inset Text
\begin_layout Plain Layout
-Convergence tolerance for relative decrease in residual norm.
+Linear solve convergence tolerance for relative decrease in residual norm.
\end_layout
\end_inset
@@ -2017,6 +2352,8 @@
\begin_inset Text
\begin_layout Plain Layout
+
+\family typewriter
ksp_atol
\end_layout
@@ -2028,7 +2365,7 @@
\begin_layout Plain Layout
\emph on
-1.0e-15
+1.0e-12
\end_layout
\end_inset
@@ -2037,7 +2374,7 @@
\begin_inset Text
\begin_layout Plain Layout
-Convergence tolerance for absolute value in residual norm.
+Linear solve convergence tolerance for absolute value in residual norm.
\end_layout
\end_inset
@@ -2077,6 +2414,101 @@
</cell>
</row>
<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+snes_max_it
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+100
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Maximum number of iterations permitted in nonlinear solve.
+ Depends on how nonlinear the problem is.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+snes_rtol
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1.0e-08
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Nonlinear solve convergence tolerance for relative decrease in residual
+ norm.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+snes_atol
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+1.0e-12
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Nonlinear solve convergence tolerance for absolute value in residual norm.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
\begin_inset Text
@@ -2121,6 +2553,250 @@
\end_layout
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float table
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Caption
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "tab:petsc:options:advanced"
+
+\end_inset
+
+PETSc options used with split fields algebraic multigrid preconditioing
+ that often provide improved performance in quasi-static elasticity problems.
+\end_layout
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="6" columns="3">
+<features tabularvalignment="middle">
+<column alignment="left" valignment="top" width="2in">
+<column alignment="center" valignment="middle" width="0.75in">
+<column alignment="left" valignment="top" width="3in">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Property
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Description
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+fs_pc_type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+field_split
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Precondition fields separately.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+fs_pc_fieldsplit_real_diagonal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+??
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+fs_pc_fieldsplit_type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+multiplicative
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+??
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+fs_fieldsplit_X_pc_type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+ml
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Multilevel algebraic multi-grid preconditioning using Trilinos/ML via PETSc.
+ X=0,1,2, ..., N
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+fs_fieldsplit_X_ksp_type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\shape italic
+preonly
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+??, X=0, ..., N
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
\begin_layout Section
Time-Dependent Problem
\end_layout
Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx 2011-06-04 03:27:58 UTC (rev 18541)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx 2011-06-04 22:49:59 UTC (rev 18542)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
\begin_document
\begin_header
\textclass book
@@ -7,18 +7,26 @@
\end_preamble
\use_default_options false
+\maintain_unincluded_children false
\language english
+\language_package default
\inputencoding latin1
+\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_default_family default
+\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
@@ -26,9 +34,18 @@
\use_geometry true
\use_amsmath 0
\use_esint 0
+\use_mhchem 1
+\use_mathdots 1
\cite_engine basic
\use_bibtopic false
+\use_indices false
\paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
\leftmargin 1in
\topmargin 1in
\rightmargin 1in
@@ -36,15 +53,16 @@
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
-\author ""
-\author ""
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
\end_header
\begin_body
@@ -107,6 +125,14 @@
ZeroDispDB spatial database
\end_layout
+\begin_layout Itemize
+Custom algebraic multigrid preconditioner with split fields
+\end_layout
+
+\begin_layout Itemize
+Global uniform mesh refinement
+\end_layout
+
\begin_layout Subsection
Overview
\end_layout
@@ -130,7 +156,10 @@
to create a mesh, as well as describing how to use a LaGriT-generated mesh
in PyLith.
In this tutorial, we will walk through the steps necessary to construct,
- run, and view two problems that use the same mesh.
+ run, and visualzie the results for two problems that use the same mesh.
+ For each of these problems we also consider a simulation using a custom
+ algebraic multigrid preconditioner with a globally uniformly refined mesh
+ that reduces the node spacing by a factor of two.
In addition to this manual, each of the files for the example problems
includes extensive comments.
\end_layout
@@ -408,11 +437,11 @@
\end_layout
\begin_layout LyX-Code
-filename_gmv = tet4_1000m_binary.gmv
+filename_gmv = mesh/tet4_1000m_binary.gmv
\end_layout
\begin_layout LyX-Code
-filename_pset = tet4_1000m_binary.pset
+filename_pset = mesh/tet4_1000m_binary.pset
\end_layout
\begin_layout LyX-Code
@@ -475,7 +504,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
@@ -503,7 +532,7 @@
\end_layout
\begin_layout LyX-Code
-db.iohandler.filename = mat_viscoelastic.spatialdb
+db.iohandler.filename = spatialdb/mat_viscoelastic.spatialdb
\end_layout
\begin_layout LyX-Code
@@ -557,7 +586,7 @@
\family default
are contained in the file
\family typewriter
-shearxy.cfg
+step01.cfg
\family default
.
These settings are:
@@ -660,7 +689,7 @@
defining the subdomain and gives the base filename for VTK output over
the subdomain corresponding to the ground surface (
\family typewriter
-shearxy-groundsurf.vtk
+step01-groundsurf.vtk
\family default
).
\end_layout
@@ -673,7 +702,7 @@
\family default
material set (
\family typewriter
-shearxy-elastic.vtk
+step01-elastic.vtk
\family default
), and causes state variables to be averaged over all quadrature points
in each cell.
@@ -687,7 +716,7 @@
\family default
material set (
\family typewriter
-shearxy-viscoelastic.vtk
+step01-viscoelastic.vtk
\family default
), and causes state variables to be averaged over all quadrature points
in each cell.
@@ -701,7 +730,7 @@
\family default
, as specified in
\family typewriter
-shearxy.cfg
+step01.cfg
\family default
.
The format of all spatial database files is similar.
@@ -747,14 +776,14 @@
\end_layout
\begin_layout LyX-Code
-pylith shearxy.cfg
+pylith step01.cfg
\end_layout
\begin_layout Standard
Once the problem has run, six files will be produced.
The first file is named
\family typewriter
-shearxy_t0000000.vtk
+step01_t0000000.vtk
\family default
.
The
@@ -767,7 +796,7 @@
mesh vertices.
The second file is named
\family typewriter
-shearxy-statevars-elastic_t0000000.vtk
+step01-statevars-elastic_t0000000.vtk
\family default
.
This file contains the state variables for each cell in the material group
@@ -783,7 +812,7 @@
each linear tetrahedron, this will have no effect.
The third file (
\family typewriter
-shearxy-statevars-viscoelastic_info.vtk
+step01-statevars-viscoelastic_info.vtk
\family default
) gives the material properties used for the
\family typewriter
@@ -808,18 +837,18 @@
of the material sets.
The final file (
\family typewriter
-shearxy-groundsurf_t0000000.vtk
+step01-groundsurf_t0000000.vtk
\family default
) is analogous to
\family typewriter
-shearxy_t0000000.vtk
+step01_t0000000.vtk
\family default
, but in this case the results are only given for a subset of the mesh correspon
ding to the ground surface.
Also, the cells in this file are one dimension lower than the cells described
in
\family typewriter
-shearxy_t0000000.vtk
+step01_t0000000.vtk
\family default
, so they are triangles rather than tetrahedra.
All of the
@@ -882,6 +911,546 @@
\end_layout
+\begin_layout Subsubsection
+Alternative solver and discretization settings
+\end_layout
+
+\begin_layout Standard
+Example
+\family typewriter
+step01.cfg
+\family default
+ uses the additive Schwarz preconditioner in conjunction with a classical
+ Gram-Schmidt orthogonalization iterative solver.
+ This preconditioner works reasonably well but the number of iterations
+ generally scales with problem size.
+ Even this small, simple problem requires 24 iterations.
+ In this example (
+\family typewriter
+step02.cfg
+\family default
+), we use a more sophisticated preconditioner that preconditions the degrees
+ of freedom associated with the three Cartesian coordinates separately while
+ using an algebraic multigrid algorithm (see section
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:petsc:options"
+
+\end_inset
+
+for details).
+ Additionally, we illustrate the use of global uniform mesh refinement to
+ increase the resolution of the solution by a factor of two.
+ Because the mesh is refined in parallel after distribution, this allows
+ technique can be used to run a larger problem than would be possible if
+ the full resolution mesh had to be generated by the mesh generator.
+ LaGriT runs only in serial and CUBIT has extremely limited parallel mesh
+ generation capabilities.
+ Table
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "tab:3dtet4:solver:cmp"
+
+\end_inset
+
+ shows the improved efficiency of the solver using the split fields with
+ the algebraic multigrid preconditioner, especially as the problem size
+ becomes larger.
+ We have found similar results for other problems.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float table
+placement H
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Caption
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "tab:3dtet4:solver:cmp"
+
+\end_inset
+
+Number of iterations in linear solve for the Shear Displacement and Kinematic
+ Fault Slip problems discussed in this section.
+ The preconditioner using split fields and an algebriac multigrid algorithm
+ solves the linear system with fewer iterations with only a small to moderate
+ increase as the problem size grows.
+\end_layout
+
+\end_inset
+
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="9" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="1.5in">
+<column alignment="center" valignment="top" width="1.8in">
+<column alignment="center" valignment="top" width="1.5in">
+<column alignment="center" valignment="top" width="1.5in">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Problem
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Preconditioner
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Refinement
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+# Iterations in Solve
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Shear Displacement
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+additive Schwarz
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+none (546 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+24 (step01)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2x refinement
+\end_layout
+
+\begin_layout Plain Layout
+(3890 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+48
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+split fields with algebraic multigrid
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+none (546 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+12
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2x refinement
+\end_layout
+
+\begin_layout Plain Layout
+(3890 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+17 (step02)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Kinematic Fault Slip
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+additive Schwarz
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+none (735 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+35 (step03)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2x refinement
+\end_layout
+
+\begin_layout Plain Layout
+(4527 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+83
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+split fields with algebraic multigrid
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+none (735 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+33
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2x refinement
+\end_layout
+
+\begin_layout Plain Layout
+(4527 DOF)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+53 (step04)
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The field splitting and algebraic multigrid preconditioning are setup in
+
+\family typewriter
+step02.cfg
+\family default
+ with the following parameters:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.formulation]
+\end_layout
+
+\begin_layout LyX-Code
+split_fields = True
+\end_layout
+
+\begin_layout LyX-Code
+matrix_type = aij
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.petsc]
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_type = fieldsplit
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_fieldsplit_real_diagonal =
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_fieldsplit_type = multiplicative
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_0_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_1_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_2_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_0_ksp_type = preonly
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_1_ksp_type = preonly
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_2_ksp_type = preonly
+\end_layout
+
+\begin_layout Standard
+The uniform global refinement requires changing just a single parameter:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.mesh_generator]
+\end_layout
+
+\begin_layout LyX-Code
+refiner = pylith.topology.RefineUniform
+\end_layout
+
\begin_layout Subsection
Kinematic Fault Slip Example
\end_layout
@@ -912,7 +1481,7 @@
\family default
are contained in the file
\family typewriter
-dislocation.cfg
+step03.cfg
\family default
.
These settings are:
@@ -995,7 +1564,7 @@
pylithapp.problem.formulation.output.output.writer Gives the base filename for
VTK output over the entire domain (
\family typewriter
-dislocation.vtk
+step03.vtk
\family default
).
\end_layout
@@ -1005,7 +1574,7 @@
defining the subdomain and gives the base filename for VTK output over
the subdomain corresponding to the ground surface (
\family typewriter
-dislocation-groundsurf.vtk
+step03-groundsurf.vtk
\family default
).
\end_layout
@@ -1014,7 +1583,7 @@
pylithapp.timedependent.interfaces.fault.output.writer Gives the base filename
for cohesive cell output files (
\family typewriter
-dislocation-fault.vtk
+step03-fault.vtk
\family default
).
\end_layout
@@ -1027,7 +1596,7 @@
\family default
material set (
\family typewriter
-dislocation-statevars-elastic.vtk
+step03-statevars-elastic.vtk
\family default
), and causes state variables to be averaged over all quadrature points
in each cell.
@@ -1041,7 +1610,7 @@
\family default
material set (
\family typewriter
-dislocation-statevars-viscoelastic.vtk
+step03-statevars-viscoelastic.vtk
\family default
), and causes state variables to be averaged over all quadrature points
in each cell.
@@ -1123,14 +1692,14 @@
\end_layout
\begin_layout LyX-Code
-pylith dislocation.cfg
+pylith step03.cfg
\end_layout
\begin_layout Standard
Once the problem has run, eight files will be produced.
The first file is named
\family typewriter
-dislocation_t0000000.vtk
+step03_t0000000.vtk
\family default
.
The
@@ -1143,7 +1712,7 @@
mesh vertices.
The second file is named
\family typewriter
-dislocation-statevars-elastic_t0000000.vtk
+step03-statevars-elastic_t0000000.vtk
\family default
.
This file contains the state variables for each cell in the material group
@@ -1158,7 +1727,7 @@
each linear tetrahedron, this will have no effect.
The third file (
\family typewriter
-dislocation-statevars-viscoelastic_info.vtk
+step03-statevars-viscoelastic_info.vtk
\family default
) gives the material properties used for the
\family typewriter
@@ -1183,29 +1752,29 @@
of the material sets.
The file
\family typewriter
-dislocation-groundsurf_t0000000.vtk
+step03-groundsurf_t0000000.vtk
\family default
is analogous to
\family typewriter
-dislocation_t0000000.vtk
+step03_t0000000.vtk
\family default
, but in this case the results are only given for a subset of the mesh correspon
ding to the ground surface.
Also, the cells in this file are one dimension lower than the cells described
in
\family typewriter
-dislocation_t0000000.vtk
+step03_t0000000.vtk
\family default
, so they are triangles rather than tetrahedra.
The file
\family typewriter
-dislocation-fault_t0000000.vtk
+step03-fault_t0000000.vtk
\family default
gives the specified fault slip for each vertex on the fault, along with
the computed traction change for the cohesive cell.
The final file,
\family typewriter
-dislocation-fault_info.vtk
+step03-fault_info.vtk
\family default
, provides information such as the normal direction, final slip, and slip
time for each vertex on the fault.
@@ -1270,5 +1839,116 @@
\end_layout
+\begin_layout Subsubsection
+Alternative solver and discretization settings
+\end_layout
+
+\begin_layout Standard
+As we did for the Shear Dislocation examples, in
+\family typewriter
+step04.cfg
+\family default
+ we switch to using the splits fields and algebraic multigrid preconditioner
+ along with global uniform mesh refinement.
+ Because PyLith implements fault slip using Lagrange multipliers, we make
+ a few small adjusments to the solver settings.
+ As discussed in Section
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:petsc:options"
+
+\end_inset
+
+, we use a custom preconditioner for the Lagrange multiplier degrees of
+ freedom when preconditioning with field splitting.
+ Within
+\family typewriter
+step04.cfg
+\family default
+ we turn on the use of the custom preconditioner for the Lagrange multiplier
+ degrees of freedom and add the corresponding settings for the fourth field
+ for the algebraic multigrid algorithm,
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.formulation]
+\end_layout
+
+\begin_layout LyX-Code
+split_fields = True
+\end_layout
+
+\begin_layout LyX-Code
+use_custom_constraint_pc = True
+\end_layout
+
+\begin_layout LyX-Code
+matrix_type = aij
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.petsc]
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_type = fieldsplit
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_fieldsplit_real_diagonal =
+\end_layout
+
+\begin_layout LyX-Code
+fs_pc_fieldsplit_type = multiplicative
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_0_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_1_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_2_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_3_pc_type = ml
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_0_ksp_type = preonly
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_1_ksp_type = preonly
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_2_ksp_type = preonly
+\end_layout
+
+\begin_layout LyX-Code
+fs_fieldsplit_3_ksp_type = preonly
+\end_layout
+
+\begin_layout Standard
+Table
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "tab:3dtet4:solver:cmp"
+
+\end_inset
+
+ shows the improved efficiency of the solver using the split fields with
+ the algebraic multigrid preconditioner.
+\end_layout
+
\end_body
\end_document
More information about the CIG-COMMITS
mailing list