[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