[cig-commits] r7692 - cs/cigma/branches/cigma-0.9b1/doc/manual

luis at geodynamics.org luis at geodynamics.org
Wed Jul 18 10:17:38 PDT 2007


Author: luis
Date: 2007-07-18 10:17:38 -0700 (Wed, 18 Jul 2007)
New Revision: 7692

Modified:
   cs/cigma/branches/cigma-0.9b1/doc/manual/cigma.lyx
Log:
Updated manual


Modified: cs/cigma/branches/cigma-0.9b1/doc/manual/cigma.lyx
===================================================================
--- cs/cigma/branches/cigma-0.9b1/doc/manual/cigma.lyx	2007-07-18 16:18:15 UTC (rev 7691)
+++ cs/cigma/branches/cigma-0.9b1/doc/manual/cigma.lyx	2007-07-18 17:17:38 UTC (rev 7692)
@@ -181,30 +181,24 @@
 \end_layout
 
 \begin_layout Standard
-This release of Cigma performs three types of tasks:
+In general, Cigma is intended for three types of tasks, namely (1) error
+ analysis, (2) benchmarking, and (3) code verification.
 \end_layout
 
-\begin_layout Itemize
-Error analysis
-\end_layout
-
-\begin_layout Itemize
-Benchmarking
-\end_layout
-
-\begin_layout Itemize
-Code verification
-\end_layout
-
 \begin_layout Standard
-Cigma can do analysis in two ways.
+There are two ways in which Cigma can help you with error analysis.
  It can take a random sampling of points inside a domain of interest and
  analyze the pointwise differences between physical fields, or it can perform
  an integration of the errors over a discretized version of the domain.
 \end_layout
 
 \begin_layout Standard
-The code is being released under the GNU General Public License.
+At its core, Cigma draws from a variety of libraries, particularly the Tetrahedr
+al Mesh Comparator (TMC) from the University of Utah (TODO: link to http://www.sc
+i.utah.edu/~bavoil/research/tetsimp/tmc/), which itself draws from the GTB
+ Graphics Toolbox library (TODO: link to http://sf.net/projects/gtb).
+ Cigma extends and generalizes the functionality therein to handle other
+ types of elements and be able to compare vector fields.
 \end_layout
 
 \begin_layout Section
@@ -248,6 +242,7 @@
 \begin_layout Standard
 Cigma development is supported by a grant from the National Science Foundation
  to CIG, managed by the California Institute of Technology.
+ The code is being released under the GNU General Public License.
 \end_layout
 
 \begin_layout Chapter
@@ -255,7 +250,7 @@
 \end_layout
 
 \begin_layout Section
-Introduction
+Installation from Source
 \end_layout
 
 \begin_layout Standard
@@ -267,19 +262,15 @@
 
 .
  After unpacking the source and installing the dependencies, issue the following
- command
+ commands
 \end_layout
 
 \begin_layout LyX-Code
 $ make
 \end_layout
 
-\begin_layout Standard
-This will create several binaries inside the 
-\family typewriter
-bin/ 
-\family default
-directory under the project root.
+\begin_layout LyX-Code
+$ sudo make install
 \end_layout
 
 \begin_layout Section
@@ -316,7 +307,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-$ ./configure --prefix=/usr/local
+$ ./configure
 \end_layout
 
 \begin_layout LyX-Code
@@ -344,15 +335,15 @@
 
 \begin_layout Standard
 To install this extension from source, download the latest stable version
- and issue the following commands
+ (currently 2.0) and issue the following commands
 \end_layout
 
 \begin_layout LyX-Code
-$ tar xvfz pytables-2.x
+$ tar xvfz pytables-2.0
 \end_layout
 
 \begin_layout LyX-Code
-$ cd pytables-2.x
+$ cd pytables-2.0
 \end_layout
 
 \begin_layout LyX-Code
@@ -439,25 +430,231 @@
 \end_layout
 
 \begin_layout Chapter
-Numerical Background
+Error Analysis
 \end_layout
 
+\begin_layout Section
+Introduction
+\end_layout
+
 \begin_layout Standard
-A field assigns a physical quantity to every point in space.
- Mathematically speaking, this quantity corresponds to a scalar, a vector,
- or even a tensor.
- Estimating errors between two arbitrarily represented fields is challenging
+When studying differential equations that represent physical systems we
+ often obtain solutions by using a variety of techniques, most of which
+ are numerical in nature.
+ In carefully designed problems one may of course obtain solutions in explicit
+ analytical form, but for the most part we will deal with approximate solutions
+ given by the Finite Element Method.
+ Without any closed-form solution available, the quality of an approximation
+ can only be assessed relative to other approximations.
+\end_layout
+
+\begin_layout Standard
+Thus, an important part of error analysis lies in the ability to calculate
+ the distance between two putative solutions.
+ Estimating the error between two arbitrarily represented fields is challenging
  due to the variety of representations that are possible.
+ For example, each field may use its own discretization of the original
+ domain, and may use a different set of shape functions.
+\end_layout
+
+\begin_layout Section
+Distance Measures
+\end_layout
+
+\begin_layout Standard
+The simplest possible quantitative measure of the difference between two
+ distinct fields you can make consists of taking the pointwise difference
+ of both fields at a common set of points.
+ While no finite sample of points can adequately represent a continuum of
+ values, valuable information can be inferred from statistics.
+\end_layout
+
+\begin_layout Standard
+Another useful distance measure can be obtained by using the 
+\begin_inset Formula $L_{2}$
+\end_inset
+
+ norm, defined by the following integral
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\varepsilon=||u-v||_{L_{2}}=\sqrt{\int_{\Omega}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This gives us a single global estimate 
+\begin_inset Formula $\varepsilon$
+\end_inset
+
+ representing the distance between the two fields 
+\begin_inset Formula $u(\vec{x})$
+\end_inset
+
+ and 
+\begin_inset Formula $v(\vec{x})$
+\end_inset
+
+.
+ Alternatively, you may think of this as the size, or norm, of the residual
+ field 
+\begin_inset Formula $\rho(\vec{x})=u(\vec{x})-v(\vec{x})$
+\end_inset
+
+.
+ If we discretize the domain 
+\begin_inset Formula $\Omega$
+\end_inset
+
+ into finite elements 
+\begin_inset Formula $\Omega_{e}$
+\end_inset
+
+, the above integral can be broken up into a sum over local contributions.
+ For efficiency, each contribution can be integrated over the corresponding
+ reference element 
+\begin_inset Formula $\hat{\Omega}_{e}$
+\end_inset
+
+.
  
 \end_layout
 
+\begin_layout Standard
+\begin_inset Formula \begin{eqnarray*}
+\varepsilon^{2} & = & \sum_{e=1}^{\mathrm{nel}}\varepsilon_{e}^{2}\\
+ & = & \sum_{e=1}^{\mathrm{nel}}\int_{\Omega_{e}}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}\\
+ & = & \sum_{e=1}^{\mathrm{nel}}\int_{\hat{\Omega}_{e}}||u(\vec{\xi})-v(\vec{\xi})||^{2}J(\vec{\xi})d\vec{\xi}\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In general, we won't be able to integrate each local contribution exactly
+ since the two fields 
+\begin_inset Formula $u$
+\end_inset
+
+ and 
+\begin_inset Formula $v$
+\end_inset
+
+ may have a representation that's incompatible with the local domain 
+\begin_inset Formula $\Omega_{e}$
+\end_inset
+
+.
+ However, we can approximate each 
+\begin_inset Formula $\varepsilon_{e}^{2}$
+\end_inset
+
+ by applying an appropriate quadrature rule with a tolerable truncation
+ error (TODO: add Encyclopedia of Cubature Formulas to bibliography, link
+ http://www.cs.kuleuven.be/~nines/research/ecf/).
+\end_layout
+
+\begin_layout Standard
+Assuming we apply the same quadrature rule, with weights 
+\begin_inset Formula $w_{q}$
+\end_inset
+
+ and integration points 
+\begin_inset Formula $\vec{\xi}_{q}$
+\end_inset
+
+ to each element,
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{eqnarray*}
+\varepsilon_{e}^{2} & = & \sum_{q=1}^{\mathrm{nq}}w_{q}||\hat{\rho}(\vec{x}_{q})||^{2}\\
+ & = & \sum_{q=1}^{\mathrm{nq}}w_{q}||u(\vec{\xi}_{q})-v(\vec{\xi}_{q})||^{2}J(\vec{\xi}_{q})\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+and thus we arrive at the final form
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \begin{eqnarray*}
+\varepsilon & = & \sqrt{\sum_{e=1}^{\mathrm{nel}}\sum_{q=1}^{\mathrm{nq}}w_{q}||u(\vec{\xi}_{q})-v(\vec{\xi}_{q})||^{2}J(\vec{\xi}_{q})}\end{eqnarray*}
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In calculating the norm of the residual field 
+\begin_inset Formula $\rho$
+\end_inset
+
+, Cigma will output of each the local contributions 
+\begin_inset Formula $\varepsilon_{e}^{2}$
+\end_inset
+
+ which by definition are cell-valued quantities over each of their corresponding
+ elements 
+\begin_inset Formula $\Omega_{e}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Chapter
+Cigma Components
+\end_layout
+
 \begin_layout Section
+Design Goals
+\end_layout
+
+\begin_layout Standard
+As mentioned in the introduction, Cigma was designed with the following
+ use cases in mind:
+\end_layout
+
+\begin_layout Description
+Error\InsetSpace ~
+Analysis To assist scientists in comparing two different codes, possibly
+ on different meshes.
+\end_layout
+
+\begin_layout Description
+Benchmarking To help the geodynamics community agree on a standard solution
+ to a specific problem.
+\end_layout
+
+\begin_layout Description
+Verification For developers to test software changes so as to ensure that
+ those changes don't affect the consistency of the results.
+\end_layout
+
+\begin_layout Section
 Mesh
 \end_layout
 
 \begin_layout Standard
-In Cigma, we define a finite element mesh simply by the coordinates of its
- degrees of freedom, and the connectivity relations among them.
+In Cigma, we define a finite element mesh simply by the coordinates, 
+\begin_inset Formula $(x_{n},y_{n},z_{n})$
+\end_inset
+
+ of its degrees of freedom, and the connectivity relations 
+\begin_inset Formula $\Omega_{e}=\{ n_{1},n_{2},\ldots\}$
+\end_inset
+
+among them which define each individual element in the corresponding discretizat
+ion.
 \end_layout
 
 \begin_layout Section
@@ -465,10 +662,16 @@
 \end_layout
 
 \begin_layout Standard
-In Cigma, a field is defined by a set of values on each of its coordinates,
- with a dimension corresponding to the rank of the physical quantity.
+A field is a function which assigns a physical quantity to every point in
+ space.
+ This quantity may correspond to a scalar, a vector, or even a tensor.
+ 
 \end_layout
 
+\begin_layout Standard
+Thus, in Cigma a field is defined by a set of values on each degree of freedom.
+\end_layout
+
 \begin_layout Section
 Elements
 \end_layout
@@ -488,6 +691,12 @@
  
 \end_layout
 
+\begin_layout Subsubsection*
+Function Space 
+\bar under
+tet4
+\end_layout
+
 \begin_layout Standard
 \noindent
 \align center
@@ -519,25 +728,22 @@
 
 \end_layout
 
-\begin_layout Subsubsection*
-tet4
-\end_layout
+\begin_layout Standard
+\begin_inset Formula \begin{eqnarray*}
+TN_{a} & = & \frac{1}{2}(-1-x-y-z)\\
+TN_{b} & = & \frac{1}{2}(1+x)\\
+TN_{c} & = & \frac{1}{2}(1+y)\\
+TN_{d} & = & \frac{1}{2}(1+z)\end{eqnarray*}
 
-\begin_layout Standard
-\begin_inset Formula $\begin{array}{c}
-a:\, TN_{0}\left(\vec{\xi}\right)=\frac{1}{2}\left(-1-\xi-\eta-\zeta\right)\\
-b:\, TN_{1}\left(\vec{\xi}\right)=\frac{1}{2}\left(1+\xi\right)\\
-c:\, TN_{2}\left(\vec{\xi}\right)=\frac{1}{2}\left(1+\eta\right)\\
-d:\, TN_{3}\left(\vec{\xi}\right)=\frac{1}{2}\left(1+\zeta\right)\end{array}$
 \end_inset
 
 
 \end_layout
 
-\begin_layout Standard
-For future reference, one can also evaluate the shape functions on a linear
- hexahedral element.
- 
+\begin_layout Subsubsection*
+Function Space 
+\bar under
+hex8
 \end_layout
 
 \begin_layout Standard
@@ -571,59 +777,28 @@
 
 \end_layout
 
-\begin_layout Subsubsection*
-hex8
-\end_layout
+\begin_layout Standard
+\begin_inset Formula \begin{eqnarray*}
+HN_{a} & = & \frac{1}{8}\left(1-x\right)\left(1-y\right)\left(1-z\right)\\
+HN_{b} & = & \frac{1}{8}\left(1+x\right)\left(1-y\right)\left(1-z\right)\\
+HN_{c} & = & \frac{1}{8}\left(1-x\right)\left(1+y\right)\left(1-z\right)\\
+HN_{d} & = & \frac{1}{8}\left(1+x\right)\left(1+y\right)\left(1-z\right)\\
+HN_{e} & = & \frac{1}{8}\left(1-x\right)\left(1-y\right)\left(1+z\right)\\
+HN_{f} & = & \frac{1}{8}\left(1+x\right)\left(1-y\right)\left(1+z\right)\\
+HN_{g} & = & \frac{1}{8}\left(1-x\right)\left(1+y\right)\left(1+z\right)\\
+HN_{h} & = & \frac{1}{8}\left(1+x\right)\left(1+y\right)\left(1+z\right)\end{eqnarray*}
 
-\begin_layout Standard
-\begin_inset Formula $\begin{array}{c}
-a:\, HN_{0}\left(\vec{\xi}\right)=\frac{1}{8}\left(1-\xi\right)\left(1-\eta\right)\left(1-\zeta\right)\\
-b:\, HN_{1}\left(\vec{\xi}\right)=\frac{1}{8}\left(1+\xi\right)\left(1-\eta\right)\left(1-\zeta\right)\\
-c:\, HN_{2}\left(\vec{\xi}\right)=\frac{1}{8}\left(1-\xi\right)\left(1+\eta\right)\left(1-\zeta\right)\\
-d:\, HN_{3}\left(\vec{\xi}\right)=\frac{1}{8}\left(1+\xi\right)\left(1+\eta\right)\left(1-\zeta\right)\\
-e:\, HN_{4}\left(\vec{\xi}\right)=\frac{1}{8}\left(1-\xi\right)\left(1-\eta\right)\left(1+\zeta\right)\\
-f:\, HN_{5}\left(\vec{\xi}\right)=\frac{1}{8}\left(1+\xi\right)\left(1-\eta\right)\left(1+\zeta\right)\\
-g:\, HN_{6}\left(\vec{\xi}\right)=\frac{1}{8}\left(1-\xi\right)\left(1+\eta\right)\left(1+\zeta\right)\\
-h:\, HN_{7}\left(\vec{\xi}\right)=\frac{1}{8}\left(1+\xi\right)\left(1+\eta\right)\left(1+\zeta\right)\end{array}$
 \end_inset
 
 
 \end_layout
 
-\begin_layout Chapter
-Software Components
-\end_layout
-
 \begin_layout Section
-Design Goals
-\end_layout
-
-\begin_layout Standard
-Cigma was designed with the following use cases in mind:
-\end_layout
-
-\begin_layout Description
-Error\InsetSpace ~
-Analysis To assist scientists in comparing two different codes, possibly
- on the same mesh
-\end_layout
-
-\begin_layout Description
-Benchmarking To help the geodynamics community agree on a standard solution
- to a specific problem
-\end_layout
-
-\begin_layout Description
-Verification For developers to test software changes so as to ensure that
- those changes don't affect the consistency of the results
-\end_layout
-
-\begin_layout Section
 Data Format
 \end_layout
 
 \begin_layout Standard
-We use HDF5 for the following reasons
+There are various reasons to use We use HDF5 for the following reasons
 \end_layout
 
 \begin_layout Enumerate
@@ -709,18 +884,28 @@
 Running Cigma
 \end_layout
 
+\begin_layout Section
+Comparing two fields
+\end_layout
+
 \begin_layout Standard
-As a command line utility, Cigma will 
+To compare two fields, use the cigma-compare (TODO: tty font) command line
+ utility.
+ The 
 \end_layout
 
-\begin_layout Section
-Comparing two fields
+\begin_layout LyX-Code
+
+\series bold
+cigma-compare --output=residuals.vtk           
+\backslash
+
 \end_layout
 
 \begin_layout LyX-Code
 
 \series bold
-cigma-compare --first=field1.h5:/path/to/displ/0  
+              --first=field1.h5:/field1/stepN  
 \backslash
 
 \end_layout
@@ -728,7 +913,7 @@
 \begin_layout LyX-Code
 
 \series bold
-              --second=field2.h5:/path/to/displ/0 
+              --second=field2.h5:/field2/stepN 
 \backslash
 
 \end_layout
@@ -736,17 +921,17 @@
 \begin_layout LyX-Code
 
 \series bold
-              --output=residuals.vtk
+              --rule=qr.h5:/path/to/rule
 \end_layout
 
-\begin_layout Subsection
-Importing data
+\begin_layout LyX-Code
+
 \end_layout
 
 \begin_layout LyX-Code
 
 \series bold
-cigma-import.py --coordinates=mesh.coord           
+cigma-compare --output=residuals.vtk           
 \backslash
 
 \end_layout
@@ -754,7 +939,7 @@
 \begin_layout LyX-Code
 
 \series bold
-                --connectivity=mesh.connect        
+              --first=field1.h5:/field1/stepN  
 \backslash
 
 \end_layout
@@ -762,7 +947,7 @@
 \begin_layout LyX-Code
 
 \series bold
-                --variable=velocity                
+              --second=field2.h5:/field2/stepN 
 \backslash
 
 \end_layout
@@ -770,7 +955,17 @@
 \begin_layout LyX-Code
 
 \series bold
-                --variable-step=step00010          
+              --samples-per-element=1
+\end_layout
+
+\begin_layout Section
+Importing data
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+cigma-import.py --output=model.h5:/model      
 \backslash
 
 \end_layout
@@ -778,7 +973,7 @@
 \begin_layout LyX-Code
 
 \series bold
-                --variable-data=velo-field.10.time 
+                --coordinates=mesh.coord      
 \backslash
 
 \end_layout
@@ -786,9 +981,29 @@
 \begin_layout LyX-Code
 
 \series bold
-                --output=model.h5
+                --connectivity=mesh.connect   
+\backslash
+
 \end_layout
 
+\begin_layout LyX-Code
+
+\series bold
+                --variable=velocity/step00010 
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+                --variable-data=velocity.10.time
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
 \begin_layout Standard
 The effect of this command is to create a file with the following structure
 \end_layout
@@ -806,11 +1021,11 @@
 \end_layout
 
 \begin_layout LyX-Code
-    |   |-- coordinates  [nno x nsd]
+    |   |-- coordinates    [nno x nsd]
 \end_layout
 
 \begin_layout LyX-Code
-    |   `-- connectivity [nel x ndof]
+    |   `-- connectivity   [nel x ndof]
 \end_layout
 
 \begin_layout LyX-Code
@@ -822,22 +1037,85 @@
 \end_layout
 
 \begin_layout LyX-Code
-            `-- step00010
+            `-- step00010  [nno x ndim]
 \end_layout
 
+\begin_layout Section
+Input and Output
+\end_layout
+
+\begin_layout Standard
+(TODO: move file formats from appendix to here)
+\end_layout
+
 \begin_layout Chapter
-Numerical Results
+Visualization
 \end_layout
 
+\begin_layout Standard
+As can be seen from Figures X and Y (TODO: insert ssng_tet4_1000m_pylith_disp_t0
+0.png and ssng_tet4_1000m_pylith_disp_t00.png), simply visualizing two different
+ solutions side by side does not give you enough insight into their actual
+ differences.
+ By using Cigma to calculate the residual field between them, you can get
+ a better idea for how the local contributions to the global error are distribut
+ed both spatially and temporally.
+\end_layout
+
 \begin_layout Section
 Benchmark cases
 \end_layout
 
+\begin_layout Standard
+Here we compare the output from two codes, PyLith-0.8 and GeoFEST-4.5, on
+ two benchmark cases defined by the CIG Short-Term Tectonics working group
+ (TODO: link to http://www.geodynamics.org/cig/workinggroups/short/workarea/benchm
+arks/).
+ They are both defined on cube domain (TODO: Figure X) with sides of length
+ of 24 km, consisting of two layers of different material types.
+ The top layer is nearly elastic while the bottom layer is viscoelastic.
+ A symmetric boundary condition is also imposed on the y=0 plane.
+\end_layout
+
+\begin_layout Standard
+(TODO: insert figures/layers.png)
+\end_layout
+
+\begin_layout Standard
+The first benchmark problem consists of a vertical right-lateral strike-slip
+ fault (TODO: insert figures/strike-slip-fault.png).
+\end_layout
+
+\begin_layout Standard
+The second benchmark problem consists of a 45 degree dipping reverse fault
+\end_layout
+
+\begin_layout Standard
+(TODO: insert figures/reverse-slip-fault.png).
+\end_layout
+
+\begin_layout Standard
+In both cases we solve for the displacement and vector fields at various
+ time steps, namely 0, 10, 50, and 100 years.
+ All plots show the distribution of the squared residual error
+\end_layout
+
 \begin_layout Subsection
-Reverse-slip with no gravity
+Strike-slip with no gravity
 \end_layout
 
 \begin_layout Standard
+Here, we show ten equally spaced isosurfaces of the displacement field residuals
+ for the strike-slip benchmark (0 and 100 years shown).
+ In Figure X (TODO), we see that the differences are very localized at t=0
+ years.
+ There is not much difference between time steps at t=10, 50 and 100 years,
+ so we only show the last time step.
+ Note that the maximum errors are localized to the interface between the
+ two layers and the symmetric boundary.
+\end_layout
+
+\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
@@ -847,16 +1125,17 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-point-isosurf-res-disp-000.png caption.
+Strike-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=0 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-000.png
+	filename figures/ssng-p0500-g0500-isosurf-disp-000.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -878,16 +1157,18 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-point-isosurf-res-disp-010.png caption.
+Strike-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=100 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-010.png
+	filename figures/ssng-p0500-g0500-isosurf-disp-100.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -900,6 +1181,15 @@
 \end_layout
 
 \begin_layout Standard
+Slightly different behavior can be observed in the velocity field residuals.
+ Shown here are ten equally spaced isosurfaces at each time step, where
+ each isosurface is displayed as a point distribution to reveal the inner
+ structure.
+ Note that after 100 years, most of the disagreement occurs inside the bottom
+ viscoelastic layer, centered around the fault's interior sharp corner.
+\end_layout
+
+\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
@@ -909,16 +1199,18 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-point-isosurf-res-disp-050.png caption.
+Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
+n mesh (t=0 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-050.png
+	filename figures/ssng-p0500-g0500-point-isosurf-velo-000.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -940,16 +1232,18 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-point-isosurf-res-disp-100.png caption.
+Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
+n mesh (t=10 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-100.png
+	filename figures/ssng-p0500-g0500-point-isosurf-velo-010.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -971,16 +1265,18 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-cell-threshold-velo-000.png caption.
+Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
+n mesh (t=50 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-000.png
+	filename figures/ssng-p0500-g0500-point-isosurf-velo-050.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -1002,16 +1298,18 @@
 status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-cell-threshold-velo-010.png caption.
+Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
+n mesh (t=100 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-010.png
+	filename figures/ssng-p0500-g0500-point-isosurf-velo-100.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -1024,25 +1322,35 @@
 \end_layout
 
 \begin_layout Standard
+Finally, here is a higher resolution comparison of the displacement residuals
+ at t=0 years, sampled over a 250m resolution mesh.
+ Displayed here are ten equally spaced isosurfaces, nine of which are very
+ near the fault.
+ In this case, the linear taper over the edges of the fault is clearly visible.
+\end_layout
+
+\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-cell-threshold-velo-050.png caption.
+Strike-slip: PyLith-GeoFEST comparison of displacement residuals on a 250m
+ resolution mesh (t=0 years).
+ 
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-050.png
+	filename figures/ssng-p0250-g0500-point-isosurf-disp-000.png
 	lyxscale 60
-	width 75page%
+	width 60page%
 
 \end_inset
 
@@ -1054,24 +1362,42 @@
 
 \end_layout
 
+\begin_layout Subsection
+Reverse-slip with no gravity
+\end_layout
+
 \begin_layout Standard
+You can also visualize the distribution of errors by plotting the residual
+ field value over the surface of each cell and applying a threshold filter
+ which eliminates cells outside an threshold interval.
+ Here, we show how velocity field residuals in the reverse-slip benchmark
+ are distributed temporally by throwing away all squared residuals lower
+ than 
+\begin_inset Formula $10^{-7}(\mathrm{m}/\mathrm{s})^{2}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need rsng-p0500-g0500-cell-threshold-velo-100.png caption.
+Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
+ resolution mesh (t=0 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-100.png
+	filename figures/rsng-p0500-g0500-cell-threshold-velo-000.png
 	lyxscale 60
 	width 75page%
 
@@ -1085,39 +1411,27 @@
 
 \end_layout
 
-\begin_layout Subsection
-Strike-slip with no gravity
-\end_layout
-
 \begin_layout Standard
-The following images depict isosurfaces of the residual field over a series
- of time steps 
-\end_layout
-
-\begin_layout Standard
-For the displacement field (0 and 100 years shown), 
-\end_layout
-
-\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0500-g0500-isosurf-disp-000.png caption
+Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
+ resolution mesh (t=10 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-isosurf-disp-000.png
+	filename figures/rsng-p0500-g0500-cell-threshold-velo-010.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1136,19 +1450,20 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Needssng-p0500-g0500-isosurf-disp-100.png caption
+Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
+ resolution mesh (t=50 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-isosurf-disp-100.png
+	filename figures/rsng-p0500-g0500-cell-threshold-velo-050.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1161,29 +1476,26 @@
 \end_layout
 
 \begin_layout Standard
-For the displacement field, p0250-g0500 (0 year shown), 
-\end_layout
-
-\begin_layout Standard
 \noindent
 \align center
 \begin_inset Float figure
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0250-g0500-point-isosurf-disp-000.png caption
+Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
+ resolution mesh (t=100 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0250-g0500-point-isosurf-disp-000.png
+	filename figures/rsng-p0500-g0500-cell-threshold-velo-100.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1196,7 +1508,10 @@
 \end_layout
 
 \begin_layout Standard
-For the velocity field (0, 10, 50 and 100 years shown),
+Finally, here we display ten equally spaced isosurfaces over the displacement
+ field residuals of the reverse-slip benchmark.
+ Note that after 10 years, most of the disagreement occurs in the bottom
+ viscoelastic layer.
 \end_layout
 
 \begin_layout Standard
@@ -1206,19 +1521,20 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0500-g0500-point-isosurf-velo-000.png caption
+Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=0 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-000.png
+	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-000.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1237,19 +1553,20 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0500-g0500-point-isosurf-velo-010.png caption
+Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=10 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-010.png
+	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-010.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1268,19 +1585,20 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0500-g0500-point-isosurf-velo-050.png caption
+Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=50 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-050.png
+	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-050.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1299,19 +1617,20 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Caption
-Need ssng-p0500-g0500-point-isosurf-velo-100.png caption
+Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
+ resolution mesh (t=100 years).
 \end_layout
 
 \begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-100.png
+	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-100.png
 	lyxscale 60
-	width 60page%
+	width 75page%
 
 \end_inset
 
@@ -1323,12 +1642,6 @@
 
 \end_layout
 
-\begin_layout Standard
-\noindent
-\align center
-
-\end_layout
-
 \begin_layout Chapter
 \start_of_appendix
 Text Input File Formats
@@ -1344,11 +1657,11 @@
  number, followed by the requisite number of columns.
  For simplicity, the maximum line size is 1024, and lines beginning with
  the '#' character are skipped.
- 
-\end_layout
+\newline
 
-\begin_layout Standard
-Mesh coordinates can be read from
+\newline
+Mesh coordinates can specified in the following
+ format
 \end_layout
 
 \begin_layout LyX-Code
@@ -1372,7 +1685,7 @@
 \end_layout
 
 \begin_layout Standard
-Mesh connectivity 
+Mesh connectivity with 
 \end_layout
 
 \begin_layout LyX-Code
@@ -1415,6 +1728,26 @@
 ...
 \end_layout
 
+\begin_layout Standard
+A quadrature rule may be explicitly specified by
+\end_layout
+
+\begin_layout LyX-Code
+nq nsd
+\end_layout
+
+\begin_layout LyX-Code
+w1 x1 y1 z1
+\end_layout
+
+\begin_layout LyX-Code
+w2 x2 y2 z2
+\end_layout
+
+\begin_layout LyX-Code
+...
+\end_layout
+
 \begin_layout Chapter
 Shape Functions
 \end_layout
@@ -1627,12 +1960,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-\begin_inset Formula \[
-\left[q\times3\right]\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,=\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\left[q\times8\right]\,\,\,\,\,\,\,\,\,\:\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\left[4\times3\right]\]
 
-\end_inset
-
-
 \end_layout
 
 \begin_layout Section
@@ -2737,5 +3065,12 @@
 157-165, doi: 10.2312/VG/VG05/157-165.
 \end_layout
 
+\begin_layout Bibliography
+
+\bibitem {key-4}
+TODO: Add Hughes book as first bibliography entry (see http://www.amazon.com/Finit
+e-Element-Method-Dynamic-Analysis/dp/0486411818 for info)
+\end_layout
+
 \end_body
 \end_document



More information about the cig-commits mailing list