[cig-commits] r9113 - in doc/cigma/manual: . figures

sue at geodynamics.org sue at geodynamics.org
Tue Jan 22 11:57:48 PST 2008


Author: sue
Date: 2008-01-22 11:57:48 -0800 (Tue, 22 Jan 2008)
New Revision: 9113

Removed:
   doc/cigma/manual/cigma-win.lyx
Modified:
   doc/cigma/manual/cigma.lyx
   doc/cigma/manual/cigma.pdf
   doc/cigma/manual/figures/cigma_cover.pdf
Log:
fixed some formatting that somehow disappeared; some typos; added TODO for Luis regarding prob w/sentence; improved figure placement and relation to captions

Deleted: doc/cigma/manual/cigma-win.lyx
===================================================================
--- doc/cigma/manual/cigma-win.lyx	2008-01-22 19:52:09 UTC (rev 9112)
+++ doc/cigma/manual/cigma-win.lyx	2008-01-22 19:57:48 UTC (rev 9113)
@@ -1,4027 +0,0 @@
-#LyX 1.5.1 created this file. For more info see http://www.lyx.org/
-\lyxformat 276
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\usepackage{hyperref}
-
-\let\myUrl\url
-\renewcommand{\url}[1]{(\myUrl{#1})}
-\end_preamble
-\language english
-\inputencoding auto
-\font_roman default
-\font_sans default
-\font_typewriter default
-\font_default_family default
-\font_sc false
-\font_osf false
-\font_sf_scale 100
-\font_tt_scale 100
-\graphics default
-\paperfontsize default
-\spacing single
-\papersize default
-\use_geometry true
-\use_amsmath 1
-\use_esint 0
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\leftmargin 1in
-\topmargin 1in
-\rightmargin 1in
-\bottommargin 1in
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language swedish
-\papercolumns 1
-\papersides 2
-\paperpagestyle headings
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\noindent
-\align center
-
-\color none
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-thispagestyle{empty}
-\end_layout
-
-\end_inset
-
-
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename figures/cigma_cover.pdf
-	display color
-	width 75page%
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-
-\color none
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-thispagestyle{empty}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Title
-Cigma
-\end_layout
-
-\begin_layout Author
-© California Institute of Technology
-\newline
-Version 0.9.5
-\end_layout
-
-\begin_layout Date
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-today
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset LatexCommand tableofcontents
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset FloatList figure
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-raggedbottom
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\newpage
-
-\end_layout
-
-\begin_layout Chapter
-Introduction
-\end_layout
-
-\begin_layout Section
-About Cigma
-\end_layout
-
-\begin_layout Standard
-The CIG Model Analyzer (Cigma) consists of a suite of tools intended to
- facilitate the comparison of numerical models.
- CIG has developed Cigma in response to demand from the short-term tectonics
- community for a simple tool that can perform rigorous error analysis on
- their FEM codes.
- The long-term goal for Cigma, however, is for it to be used for nearly
- all geodynamics modeling codes.
-\end_layout
-
-\begin_layout Standard
-In general, Cigma is intended for three types of tasks, namely (1) error
- analysis, (2) benchmarking, and (3) code verification.
- 
-\end_layout
-
-\begin_layout Standard
-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 otherwise
- perform an integration of the errors over a discretized version of the
- domain.
- This comparison can take place even when the meshes are not compatible.
-\end_layout
-
-\begin_layout Standard
-In benchmarking, Cigma can help the geodynamics community agree on a standard
- solution to specific problems by facilitating the process of comparing
- different numerical codes against each other.
-\end_layout
-
-\begin_layout Standard
-Lastly, as an automated tool, Cigma can help developers in creating regression
- tests to ensure that software changes do not affect the consistency of
- the results.
-\end_layout
-
-\begin_layout Standard
-At its core, Cigma draws from a variety of libraries, particularly the 
-\begin_inset LatexCommand htmlurl
-name "Tetrahedral Mesh Comparator (TMC)"
-target "www.sci.utah.edu/~bavoil/research/tetsimp/tmc/"
-
-\end_inset
-
- from the University of Utah, which itself draws from the 
-\begin_inset LatexCommand htmlurl
-name "GTB Graphics Toolbox library"
-target "sf.net/projects/gtb"
-
-\end_inset
-
-.
- Cigma extends and generalizes the functionality therein to handle other
- types of elements as well as adding the ability to compare vector fields.
-\end_layout
-
-\begin_layout Section
-Citation
-\end_layout
-
-\begin_layout Standard
-Computational Infrastructure for Geodynamics (CIG) is making this source
- code available to you in the hope that the software will enhance your research
- in geophysics.
- This is a brand-new code and at present no papers are published or at press
- for use as citations other than this manual, which is cited as follows:
-\end_layout
-
-\begin_layout Standard
-Armendariz, L., and S.
- Kientz.
- 
-\emph on
-Cigma User Manual.
-
-\emph default
- Pasadena, CA: Computational Infrastructure of Geodynamics, 2007.
- URL: geodynamics.org/cig/software/cs/cigma/cigma.pdf
-\end_layout
-
-\begin_layout Standard
-CIG requests that in your oral presentations and in your papers that you
- indicate your use of this code and acknowledge the author of the code and
- 
-\begin_inset LatexCommand htmlurl
-name "CIG"
-target "geodynamics.org"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Support
-\end_layout
-
-\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
-Installation and Getting Help
-\end_layout
-
-\begin_layout Section
-Getting Help
-\end_layout
-
-\begin_layout Standard
-For help, send an e-mail to the 
-\begin_inset LatexCommand url
-name "CIG Computational Science Mailing List"
-target "cig-cs at geodynamics.org"
-
-\end_inset
-
-.
- You can subscribe to the 
-\family typewriter
-cig-cs
-\family default
- mailing list and view archived discussions at the 
-\begin_inset LatexCommand htmlurl
-name "CIG Mail Lists web page"
-target "geodynamics.org/cig/lists"
-
-\end_inset
-
-.
- If you encounter any bugs or have problems installing Cigma, please submit
- a report to the 
-\begin_inset LatexCommand htmlurl
-name "CIG Bug Tracker"
-target "geodynamics.org/bugs"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Installating from Source
-\end_layout
-
-\begin_layout Standard
-To use Cigma, download the source package (in the form of a compressed tar
- file) from the 
-\begin_inset LatexCommand htmlurl
-name "CIG Cigma web page"
-target "geodynamics.org/cig/software/packages/cs/cigma"
-
-\end_inset
-
-.
- This step will require the GNU C and C++ compilers.
- After unpacking the source and installing the dependencies, issue the following
- commands
-\end_layout
-
-\begin_layout Standard
-$ make
-\end_layout
-
-\begin_layout Standard
-$ sudo make install
-\end_layout
-
-\begin_layout Subsection
-HDF5
-\end_layout
-
-\begin_layout Standard
-HDF5 is available for download from 
-\begin_inset LatexCommand htmlurl
-name "The HDF Group"
-target "hdfgroup.org/HDF5"
-
-\end_inset
-
-.
- Binaries can be obtained at 
-\begin_inset LatexCommand htmlurl
-name "hdfgroup.org/HDF5/release/obtain5.html"
-target "hdfgroup.org/HDF5/release/obtain5.html"
-
-\end_inset
-
-.
- To install from source, download the latest stable version of this library
- (currently 1.6.5) and issue the following commands
-\end_layout
-
-\begin_layout Standard
-$ tar xvfz hdf5-1.6.5
-\end_layout
-
-\begin_layout Standard
-$ cd hdf5-1.6.5
-\end_layout
-
-\begin_layout Standard
-$ ./configure
-\end_layout
-
-\begin_layout Standard
-$ make
-\end_layout
-
-\begin_layout Standard
-$ sudo make install
-\end_layout
-
-\begin_layout Subsection
-VTK
-\end_layout
-
-\begin_layout Standard
-VTK is available from 
-\begin_inset LatexCommand htmlurl
-name "Kitware, Inc."
-target "www.vtk.org/get-software.php"
-
-\end_inset
-
-.
- If you obtain the binaries from a package manager, make sure to install
- the associated development headers along with the library.
- To enable VTK support in Cigma, use the following flags in the configure
- step:
-\end_layout
-
-\begin_layout Standard
-./configure --with-vtk=/path/to/vtk
-\end_layout
-
-\begin_layout Subsection
-PyTables
-\end_layout
-
-\begin_layout Standard
-PyTables is a Python extension module that builds on top of the HDF5 library.
- It provides a convenient scripting interface to manipulate HDF5 files,
- which can be used to manipulate the input/output files created by Cigma.
- PyTables is available for download from 
-\begin_inset LatexCommand htmlurl
-name "PyTables"
-target "www.pytables.org"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-To install this extension from source, download the latest stable version
- (currently 2.0) and issue the following commands
-\end_layout
-
-\begin_layout Standard
-$ tar xvfz pytables-2.x
-\end_layout
-
-\begin_layout Standard
-$ cd pytables-2.x
-\end_layout
-
-\begin_layout Standard
-$ sudo python setup.py install
-\end_layout
-
-\begin_layout Subsection
-HDFView (optional)
-\end_layout
-
-\begin_layout Standard
-NCSA HDFView is a graphical user interface tool for accessing data in your
- HDF5 files.
- You can use it for viewing the internal file hierarchy in a tree structure,
- adding new datasets, and modifying or deleting existing datasets.
- You can download it from the 
-\begin_inset LatexCommand htmlurl
-name "HDFView home page"
-target "hdf.ncsa.uiuc.edu/hdf-java-html/hdfview"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-With HFDFView, you can view the internal file hierarchy in a tree structure,
- add new datasets, and modify or delete existing datasets.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/hdfview-bmrsnog.png
-	lyxscale 70
-	width 70page%
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Error Analysis
-\end_layout
-
-\begin_layout Section
-Introduction
-\end_layout
-
-\begin_layout Standard
-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 computationa
-lly 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 perfectly represent a continuum of
- values, valuable information can be inferred from a statistics analysis
- of the resulting residual values.
-\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
- on each element.
- For efficiency, each contribution can be integrated over a reference element
- 
-\begin_inset Formula $\hat{\Omega}_{e}$
-\end_inset
-
- defined on a standard coordinate system.
- 
-\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 
-\begin_inset LatexCommand cite
-key "Encyclopaedia of Cubature Formulas 2005"
-
-\end_inset
-
-.
-\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
-
-, on every 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
-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 each of the local contributions 
-\begin_inset Formula $\varepsilon_{e}^{2}$
-\end_inset
-
- which by definition are scalar-valued cell quantities over each of their
- corresponding elements 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Cigma Components
-\end_layout
-
-\begin_layout Section
-Mesh
-\end_layout
-
-\begin_layout Standard
-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 discretiza
-tion.
-\end_layout
-
-\begin_layout Section
-Fields
-\end_layout
-
-\begin_layout Standard
-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.
- For any given differential equation problem, a finite element approximation
- to an unknown field 
-\begin_inset Formula $\phi(\vec{x})$
-\end_inset
-
- as a weighed sum over a fixed set of localized shape functions 
-\begin_inset Formula $\phi_{n}(\vec{x})$
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\phi(\vec{x})=\sum_{n=1}^{N}d_{n}\phi_{n}(\vec{x})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Naturally, once the weights 
-\begin_inset Formula $d_{n}$
-\end_inset
-
-, or degrees of freedom as they are also called, are known to us, we can
- evaluate 
-\begin_inset Formula $\phi(\vec{x})$
-\end_inset
-
- at any point 
-\begin_inset Formula $\vec{x}$
-\end_inset
-
- we desire.
- Thus, in Cigma a field is represented simply by a list of degrees of freedom
- 
-\begin_inset Formula $d_{n}$
-\end_inset
-
-, which may be a scalar, vector or tensor quantity, depending on the nature
- of 
-\begin_inset Formula $\phi$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Elements
-\end_layout
-
-\begin_layout Standard
-This release of Cigma provides you with two built-in finite element spaces
- shown below.
- The location of each element is indexed into a spatial database in order
- to speed up the evaluation process.
-\end_layout
-
-\begin_layout Standard
-
-\newpage
-
-\end_layout
-
-\begin_layout Standard
-Function Space 
-\bar under
-tet4
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reference tetrahedral element
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/reference-tet4.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
-\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*}
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\newpage
-
-\end_layout
-
-\begin_layout Standard
-Function Space 
-\bar under
-hex8
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reference hexahedral element
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/reference-hex8.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
-\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*}
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Input Formats
-\end_layout
-
-\begin_layout Standard
-The underlying data storage format for Cigma is HDF5, although VTK files
- can also be specified as input if the VTK development libraries are installed
- when you configure and compile Cigma.
- As described in Chapter 
-\begin_inset LatexCommand ref
-reference "cha:Running-Cigma"
-
-\end_inset
-
-, you can easily examine the structure of an input file by using the 
-\family typewriter
-cigma list
-\family default
- command, which will simply reveal the names and dimensions of all datasets
- inside the specified file.
-\end_layout
-
-\begin_layout Subsection
-HDF5
-\end_layout
-
-\begin_layout Standard
-The Hierarchical Data Format (HDF) is a portable file format developed at
- the 
-\begin_inset LatexCommand htmlurl
-name "National Center for Supercomputing Applications (NCSA)"
-target "hdf.ncsa.uiuc.edu/HDF5"
-
-\end_inset
-
-.
- It is designed for storing, retrieving, analyzing, visualizing, and converting
- scientific data.
- The current and most popular version is HDF5, which stores multi-dimensional
- arrays together with ancillary data in a portable self-describing format.
- It uses a hierarchical structure that provides application programmers
- with a host of options for organizing how data is stored in HDF5 files.
-\end_layout
-
-\begin_layout Standard
-HDF5 files are organized in a hierarchical structure, similar to a UNIX
- file system.
- Two types of primary objects, groups and datasets, are stored in this structure.
- A group contains instances of zero or more groups or datasets, while a
- dataset stores a multi-dimensional array of data elements.
- Both kinds of objects are accompanied by supporting metadata known as attribute
-s.
-\end_layout
-
-\begin_layout Standard
-A dataset is physically stored in two parts: a header and a data array.
- The header contains miscellaneous metadata describing the dataset as well
- as information that is needed to interpret the array portion of the dataset.
- Essentially, it includes the name, datatype, dataspace, and storage layout
- of the dataset.
- The name is a text string identifying the dataset.
- The datatype describes the type of the data array elements.
- The dataspace defines the dimensionality of the dataset, i.e., the size and
- shape of the multi-dimensional array.
-\end_layout
-
-\begin_layout Standard
-Using HDF5 datasets in Cigma allows us to avoid having to convert between
- too many distinct formats.
- Moreover, due to the amount of disk I/O, large finite element meshes can
- be handled more efficiently in binary format.
- A typical Cigma HDF5 file has the following structure:
-\end_layout
-
-\begin_layout LyX-Code
-model.h5
-\end_layout
-
-\begin_layout LyX-Code
-
-\backslash
-__ model
-\end_layout
-
-\begin_layout LyX-Code
-    |__ mesh
-\end_layout
-
-\begin_layout LyX-Code
-    |   |__ coordinates    [nno x nsd]
-\end_layout
-
-\begin_layout LyX-Code
-    |   
-\backslash
-__ connectivity   [nel x ndof]
-\end_layout
-
-\begin_layout LyX-Code
-    
-\backslash
-__ variables
-\end_layout
-
-\begin_layout LyX-Code
-        
-\backslash
-__ velocity
-\end_layout
-
-\begin_layout LyX-Code
-            
-\backslash
-__ step00010  [nno x ndim]
-\end_layout
-
-\begin_layout Standard
-You have a certain amount of flexibility in grouping your own data.
- Generally, Cigma will only require you to specify the path to a specific
- field dataset, along with a small amount of metadata on your field and
- mesh datasets, described below:
-\end_layout
-
-\begin_layout Description
-MeshID an identifier assigned for use in linking child datasets to their
- parent mesh.
-\end_layout
-
-\begin_layout Description
-MeshLocation points to the HDF5 group which contains the appropriate coordinates
- and connectivity datasets.
-\end_layout
-
-\begin_layout Description
-FunctionSpace string identifier to determine which shape functions to use
- for interpolating values inside the element (e.g., tet4, hex8, quad4, tri3,
- ...).
-\end_layout
-
-\begin_layout Description
-DatasetType string identifier for classifying the type of data contained
- in the dataset (e.g., points, connectivity, degrees of freedom, quadrature
- rules, global quadrature points, global field values).
-\end_layout
-
-\begin_layout Subsection
-VTK Files
-\end_layout
-
-\begin_layout Standard
-The Visualization Toolkit (VTK) is a popular open source graphics library
- for scientific visualizations.
-\end_layout
-
-\begin_layout Subsection
-Text Files
-\end_layout
-
-\begin_layout Standard
-Importing and exporting data into simple text can be accomplished with the
- 
-\family typewriter
-cigma
-\family default
- 
-\family typewriter
-copy
-\family default
- command.
- The format is always in table form, with the dimensions specified in the
- first line.
- For example, mesh coordinates can be specified in the following format
-\end_layout
-
-\begin_layout LyX-Code
-nno nsd
-\end_layout
-
-\begin_layout LyX-Code
-1 x1 y1 z1
-\end_layout
-
-\begin_layout LyX-Code
-2 x2 y2 z2
-\end_layout
-
-\begin_layout LyX-Code
-3 x3 y3 z3
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-Mesh connectivity with 
-\end_layout
-
-\begin_layout LyX-Code
-nel ndofs
-\end_layout
-
-\begin_layout LyX-Code
-1 node_1 node_2 node_3 node_4 ...
-\end_layout
-
-\begin_layout LyX-Code
-2 node_1 node_2 node_3 node_4 ...
-\end_layout
-
-\begin_layout LyX-Code
-3 node_1 node_2 node_3 node_4 ...
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-A generic field with 
-\family typewriter
-ndim
-\family default
- components (i.e., scalar, vector, or tensor) is specified by
-\end_layout
-
-\begin_layout LyX-Code
-num ndim
-\end_layout
-
-\begin_layout LyX-Code
-1 f1 f2 f3 ..
-\end_layout
-
-\begin_layout LyX-Code
-2 f1 f2 f3 ..
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-In this last case, the number of rows could refer to either 
-\family typewriter
-nno
-\family default
- or 
-\family typewriter
-nel
-\family default
-, depending on whether the field is node-based or cell-based.
-\end_layout
-
-\begin_layout Chapter
-\begin_inset LatexCommand label
-name "cha:Running-Cigma"
-
-\end_inset
-
-Running Cigma
-\end_layout
-
-\begin_layout Standard
-Cigma is designed to be scriptable, and thus all operations can be specified
- as command line arguments given to a single executable called 
-\family typewriter
-cigma
-\family default
-.
- The available commands can be listed with 
-\family typewriter
-cigma --help
-\family default
-, and help on a specific command can be obtained with 
-\family typewriter
-cigma help <command>
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-Since Cigma is used for obtaining error estimates between arbitrary fields,
- its primary operation involves the 
-\family typewriter
-compare
-\family default
- command.
- You will need to provide two datasets describing each of the two fields,
- along with an integration rule and a mesh over which to integrate, although
- these last two will have reasonable defaults if they are not specified.
-\end_layout
-
-\begin_layout Standard
-Specifying the complete path to a dataset consists of the special form 
-\family typewriter
-\series bold
-filepath:dataset
-\family default
-\series default
-, a colon-delimited pair of file path and dataset path.
-\end_layout
-
-\begin_layout Section
-Listing Data
-\end_layout
-
-\begin_layout Standard
-Since Cigma relies so much on being able to specify dataset paths, we have
- provided a command called 
-\family typewriter
-list
-\family default
- for viewing the structure of input file.
- Its usage is very simple:
-\newline
-
-\end_layout
-
-\begin_layout Standard
-To view the structure of an HDF5 file:
-\end_layout
-
-\begin_layout Standard
-$ 
-\series bold
-cigma list file.h5
-\end_layout
-
-\begin_layout Standard
-/mesh/coordinates           Dataset {119827, 3}
-\end_layout
-
-\begin_layout Standard
-/mesh/connectivity          Dataset {661929, 4}
-\end_layout
-
-\begin_layout Standard
-/vars/displacement/step0    Dataset {119827, 3}
-\end_layout
-
-\begin_layout Standard
-/residuals/comparison0      Dataset {661929, 1}
-\end_layout
-
-\begin_layout Standard
-If VTK support is enabled, you can view the structure of a VTK file with:
-\end_layout
-
-\begin_layout Standard
-$ 
-\series bold
-cigma list file.vtk
-\end_layout
-
-\begin_layout Standard
-Reading file.vtk
-\end_layout
-
-\begin_layout Standard
-Points = 119827
-\end_layout
-
-\begin_layout Standard
-Cells = 661929
-\end_layout
-
-\begin_layout Standard
-PointDataArray[0] = displacements_t0 (119827 x 3)
-\end_layout
-
-\begin_layout Section
-Converting Data
-\end_layout
-
-\begin_layout Standard
-In order to easily move data into and out of the HDF5 format, you can use
- the 
-\family typewriter
-cigma copy
-\family default
- command.
- By default, it relies on the file extension to detect what format to use
- when reading or writing data.
- Various examples are given below.
-\newline
-
-\end_layout
-
-\begin_layout Standard
-Usage is typically
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy <source-path> <destination-path>
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=<path> --destination=<path>
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy -s <path> -d <path>
-\end_layout
-
-\begin_layout Standard
-To dump the mesh information into a text file:
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=file.h5:/model/mesh/coords --destination=model-coords.txt
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=file.h5:/model/mesh/connect --destination=model-connect.txt
-\end_layout
-
-\begin_layout Standard
-To import a scalar field 
-\family typewriter
-pressure0
-\family default
- from a VTK file into an HDF5 file:
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=file.vtk:pressure0 --destination=file.h5:/model/variables/pres
-sure/t0
-\end_layout
-
-\begin_layout Standard
-To import a vector field called 
-\family typewriter
-displacement15
-\family default
- from a VTK file into an HDF5 file:
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=file.vtk:displacement15 --destination=file.h5:/model/variables
-/displacement/t15
-\end_layout
-
-\begin_layout Standard
-To convert residual data into a VTK file, and then into ASCII:
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=file.h5:/model/residuals/pressure0 --destination=pressure0-re
-siduals.vtk
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma copy --source=pressure0-residuals.vtk --destination=residuals.txt
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Section
-Metadata
-\end_layout
-
-\begin_layout Standard
-As described in a previous chapter on the HDF5 input files, you can attach
- arbitrary metadata to any number of your datasets or groups.
- Cigma will make use of a few reserved attributes to determine which mesh
- and shape functions to use on a particular dataset, but in general you
- are free to assign your own.
-\end_layout
-
-\begin_layout Standard
-Usage is typically: 
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set <target-object-path> <attribute-name>[:<type>] <value>
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma get <target-object-path> [<attribute>]
-\newline
-
-\end_layout
-
-\begin_layout Standard
-For example, 
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set --target=file.h5:/model/ --attribute=AUTHOR --value='John Doe'
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set --target=file.h5:/model/vars/pressure --attribute=Units --value=MPa
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=Step:int32
- --value=10 
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=MeshID:int32
- --value=1234
-\end_layout
-
-\begin_layout Standard
-
-\size small
-cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=FunctionSpace
- --value=tet4
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Section
-Comparing Two Fields
-\end_layout
-
-\begin_layout Standard
-Comparing two arbitrary finite element fields can be accomplished with the
- 
-\family typewriter
-`cigma compare'
-\family default
- command line utility.
- By default, the comparison will take place over the elements in the mesh
- of the first field.
- Finally, the square of each of the local residual values are written to
- the specified VTK output file as cell-based scalars.
-\newline
-
-\end_layout
-
-\begin_layout Standard
-A basic comparison can be as simple as specifying the following arguments:
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --output=squared-residuals.vtk   
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --first=field1.h5:/field1/stepN  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --second=field2.h5:/field2/stepN
-\end_layout
-
-\begin_layout Subsection
-Specifying a Mesh
-\end_layout
-
-\begin_layout Standard
-To override the mesh used in the integration, you can specify an extra argument
- providing the location of the mesh:
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --mesh=mesh.h5:/model/mesh/   
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             [...]
-\end_layout
-
-\begin_layout Standard
-You can also specify the coordinates and connectivity arrays separately,
- in case they reside in separate files.
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --mesh-coordinates=file1.h5:/model/mesh/coordinates    
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --mesh-connectivity=file2.h5:/model/mesh/connectivity  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             [...]
-\end_layout
-
-\begin_layout Subsection
-Specifying a Quadrature Rule
-\end_layout
-
-\begin_layout Standard
-If you wish to specify your own quadrature rule, you will have to provide
- the quadrature weights and points in the appropriate reference element.
- This can be done with the following additional argument:
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --rule=quadrature-rules.h5:/path/to/rule  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             [...]
-\end_layout
-
-\begin_layout Standard
-You may also specify the location of the points and weights separately:
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --rule-points=file.h5:/path/to/rule/points    
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --rule-weights=file.h5:/path/to/rule/weights  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             [...]
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-Alternatively, to perform a pointwise comparison at random sample points
- inside each element in the first mesh,
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --samples-per-element=1    
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             [...]
-\end_layout
-
-\begin_layout Subsection
-Against Known Values
-\end_layout
-
-\begin_layout Standard
-A finite element description might not always be available for one of the
- fields.
- However, you can break the comparison into several steps if you have a
- means to compute that field on any of the required points.
-\end_layout
-
-\begin_layout Standard
-First, extract the global coordinates of the integration points.
- This will result in an explicit list of points over which to evaluate your
- field.
-\end_layout
-
-\begin_layout Standard
-cigma extract --mesh=field1.h5:/model/mesh/  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-              --output=points.h5:/points
-\end_layout
-
-\begin_layout Standard
-At this point, one possibility would be to dump explicit the list of points
- to a text file, generate the corresponding list of values on your own and
- import that lsit of values back into an HDF5 file that Cigma can understand.
-\end_layout
-
-\begin_layout Standard
-cigma copy --source=points.h5:/points  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-           --destination=points.txt
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-# create values.txt
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-cigma copy --source=values.txt  
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-           --destination=values.h5:/stepN_values
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-Lastly, you can provide the path to the explicit set of values with
-\end_layout
-
-\begin_layout Standard
-cigma compare --output=squared-residuals.vtk
-\end_layout
-
-\begin_layout Standard
-              --first=field1.h5:/field1/stepN
-\end_layout
-
-\begin_layout Standard
-              --second=values.h5:/stepN_values
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Subsection
-Against a Known Function
-\end_layout
-
-\begin_layout Standard
-If one of your fields is easily described by an analytic expression, then
- you also have the option to compile your analytic function into cigma,
- which will enable the 
-\family typewriter
-compare
-\family default
- command to reference your function by name:
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-cigma compare --output=squared-residuals.vtk 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --first=field1.h5:/vars/displacement/step0 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
- 
-\series bold
-             --second=
-\bar under
-disloc3d
-\series default
-\bar default
- 
-\series bold
- 
-\end_layout
-
-\begin_layout Standard
-You may also interact with your analytic function by using the 
-\family typewriter
-cigma eval
-\family default
- command, and obtain a set of values which may then be passed back to the
- compare command.
- 
-\end_layout
-
-\begin_layout Standard
-cigma eval --function=disloc3d 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-           --points=points.h5:/points 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-           --values=values.h5:/disloc3d_values
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-cigma compare --output=squared-residuals.vtk 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-              --first=field1.h5:/vars/displacement/step0 
-\backslash
-
-\end_layout
-
-\begin_layout Standard
-              --second=values.h5:/disloc3d_values
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Chapter
-Visualization
-\end_layout
-
-\begin_layout Standard
-As can be seen from the two images in Figure 
-\begin_inset LatexCommand ref
-reference "fig:PyLith-solution"
-
-\end_inset
-
-, 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 Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\align center
-\begin_inset Graphics
-	filename figures/ssng_tet4_1000m_pylith_disp_t00.png
-	lyxscale 40
-	width 40page%
-
-\end_inset
-
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/ssng_tet4_1000m_geofest_disp_t00.png
-	lyxscale 40
-	width 40page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-\noindent
-\begin_inset LatexCommand label
-name "fig:PyLith-solution"
-
-\end_inset
-
-Solution of a viscoelastic problem with a fault using two finite element
- codes: PyLith solution (left) and GeoFEST solution (right).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\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 
-\begin_inset LatexCommand htmlurl
-name "benchmark cases"
-target "geodynamics.org/cig/workinggroups/short/workarea/benchmarks"
-
-\end_inset
-
- defined by the CIG Short-Term Tectonics working group.
- They are both defined on cube domain (Figure 
-\begin_inset LatexCommand ref
-reference "fig:Cube-domain-of"
-
-\end_inset
-
-) with sides having a length of 24 km, consisting of two layers of different
- material types.
- The top layer is nearly elastic while the bottom layer follows viscoelastic
- relaxation of stresses.
- Bottom and side displacements are set to the elastic analytic solution.
- A symmetric boundary condition is also imposed on the y=0 plane.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/layers.png
-	lyxscale 25
-	width 25page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-\noindent
-\begin_inset LatexCommand label
-name "fig:Cube-domain-of"
-
-\end_inset
-
-Cube domain of 24 km length consisting of two layers of different material
- types.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The first benchmark problem (left) consists of a vertical right-lateral
- strike-slip fault.
- The second benchmark problem consists of a 45-degree dipping reverse fault.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/strike-slip-fault.png
-	lyxscale 25
-	width 25page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/reverse-slip-fault.png
-	lyxscale 25
-	width 25page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Two benchmark problems: (left) Benchmark problem consisting of a vertical
- right-lateral strike-slip fault; (right) Benchmark problem consisting of
- a 45-degree dipping reverse fault.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In both cases we solve for the displacement and vector fields at various
- time steps, namely 0, 1, 5, and 10 years.
- In the plots below, we show the distribution of the squared local residuals
- on each cell.
-\end_layout
-
-\begin_layout Subsection
-Strike-Slip with No Gravity
-\end_layout
-
-\begin_layout Standard
-In this section, we show ten equally spaced isosurfaces of the displacement
- field residuals for the strike-slip benchmark (0 and 10 years shown).
- In Figure 
-\begin_inset LatexCommand ref
-reference "fig:PyLith-solution"
-
-\end_inset
-
-, we see that the differences are very localized at t=0 years.
- There is not much difference between time steps at t=1, 5 and 10 years,
- so we are only showing the last time step.
- Note that the maximum errors are localized to the interface between the
- two layers on the symmetric boundary.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-isosurf-disp-000.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-isosurf-disp-100.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Strike-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
- resolution mesh (left: t=0 years, right: t=10 years).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\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 10 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
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-000.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-010.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
-n mesh (left: t=0 years, right: t=1 year).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-050.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/ssng-p0500-g0500-point-isosurf-velo-100.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Strike-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m resolutio
-n mesh (left: t=5 years, right: t=10 years).
- 
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\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 internal 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
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/ssng-p0250-g0500-point-isosurf-disp-000.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Strike-slip: PyLith-GeoFEST comparison of displacement residuals on a 250m
- resolution mesh (t=0 years).
- 
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\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 values over the surface of each cell and applying a threshold filter
- which eliminates cells containing values outside a 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
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-000.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-010.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
- resolution mesh (left: t=0 years, right: t=1 year).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-050.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-cell-threshold-velo-100.png
-	lyxscale 30
-	width 30page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reverse-slip: PyLith-GeoFEST comparison of velocity residuals on a 500m
- resolution mesh (left: t=5 years, right: t=10 years).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Finally, below we display ten equally spaced isosurfaces over the displacement
- field residuals of the reverse-slip benchmark.
- Note that after 1 year, most of the disagreement occurs in the bottom viscoelas
-tic layer.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-000.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-010.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
- resolution mesh (left: t=0 years, right: t=1 year).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-050.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-\InsetSpace ~
-
-\begin_inset Graphics
-	filename figures/rsng-p0500-g0500-point-isosurf-res-disp-100.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Reverse-slip: PyLith-GeoFEST comparison of displacement residuals on a 500m
- resolution mesh (left: t=5 years, right: t=10 years).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-\start_of_appendix
-Shape Functions
-\end_layout
-
-\begin_layout Section
-Linear Tetrahedral Element (tet4)
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="1" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename figures/cigma-abcd-triangle.jpg
-	lyxscale 25
-	scale 25
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\begin{array}{ccccc}
- &  &  & \phi\\
-(-1, & -1, & -1) & \mapsto & a\\
-(+1, & -1, & -1) & \mapsto & b\\
-(-1, & +1, & -1) & \mapsto & c\\
-(-1, & -1, & +1) & \mapsto & d\end{array}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-A field 
-\begin_inset Formula $\vec{\varphi}=\varphi_{x}\hat{x}+\varphi_{y}\hat{y}+\varphi_{z}\hat{z}$
-\end_inset
-
- defined over a linear tetrahedral element with vertices at 
-\begin_inset Formula $A(x_{0},y_{0},z_{0})$
-\end_inset
-
-, 
-\begin_inset Formula $B(x_{1},y_{1},z_{1})$
-\end_inset
-
-, 
-\begin_inset Formula $C(x_{2},y_{2},z_{2})$
-\end_inset
-
-, 
-\begin_inset Formula $D(x_{3},y_{3},z_{3})$
-\end_inset
-
-, has the following functional form inside the reference tetrahedral element
- shown in Figure 
-\begin_inset LatexCommand ref
-reference "fig:Cube-domain-of"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\begin{array}{c}
-\varphi_{x}(\vec{\xi})=\alpha_{0}+\alpha_{1}\xi+\alpha_{2}\eta+\alpha_{3}\zeta\\
-\varphi_{y}(\vec{\xi})=\beta_{0}+\beta_{1}\xi+\beta_{2}\eta+\beta_{3}\zeta\\
-\varphi_{z}(\vec{\xi})=\gamma_{0}+\gamma_{1}\xi+\gamma_{2}\eta+\gamma_{3}\zeta\end{array}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In particular, the map from the reference coordinates into the regular coordinat
-es vector 
-\begin_inset Formula $\vec{x}(\vec{\xi})=x\hat{(\vec{\xi})x}+y(\vec{\xi})\hat{y}+y(\vec{\xi})\hat{z}$
-\end_inset
-
- looks like
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\begin{array}{c}
-x(\vec{\xi})=\alpha_{0}+\alpha_{1}\xi+\alpha_{2}\eta+\alpha_{3}\zeta\\
-y(\vec{\xi})=\beta_{0}+\beta_{1}\xi+\beta_{2}\eta+\beta_{3}\zeta\\
-z(\vec{\xi})=\gamma_{0}+\gamma_{1}\xi+\gamma_{2}\eta+\gamma_{3}\zeta\end{array}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The following natural mappings uniquely determine the coefficients 
-\begin_inset Formula $\alpha_{k}$
-\end_inset
-
-, 
-\begin_inset Formula $\beta_{k}$
-\end_inset
-
-, 
-\begin_inset Formula $\gamma_{k}$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\vec{x}(-1,-1,-1) & \mapsto & (x_{0},y_{0},z_{0})\\
-\vec{x}(+1,-1,-1) & \mapsto & (x_{1},y_{1},z_{1})\\
-\vec{x}(-1,+1,-1) & \mapsto & (x_{2},y_{2},z_{2})\\
-\vec{x}(-1,-1,+1) & \mapsto & (x_{3},y_{3},z_{3})\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Considering only the first component 
-\begin_inset Formula $x(\vec{\xi})$
-\end_inset
-
-, we can obtain the matrix equation 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\begin{array}{c}
-a\\
-b\\
-c\\
-d\end{array}\left[\begin{array}{cccc}
-1 & (-1) & (-1) & (-1)\\
-1 & (+1) & (-1) & (-1)\\
-1 & (-1) & (+1) & (-1)\\
-1 & (-1) & (-1) & (+1)\end{array}\right]\left[\begin{array}{c}
-\alpha_{0}\\
-\alpha_{1}\\
-\alpha_{2}\\
-\alpha_{3}\end{array}\right]=\left[\begin{array}{c}
-x_{0}\\
-x_{1}\\
-x_{2}\\
-x_{3}\end{array}\right]\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Applying our desired map to the other two functions yields two other identical
- systems.
- Thus we may augment the system as follows,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\left[\begin{array}{cccc}
-1 & -1 & -1 & -1\\
-1 & +1 & -1 & -1\\
-1 & -1 & +1 & -1\\
-1 & -1 & -1 & +1\end{array}\right]\left[\begin{array}{ccc}
-\alpha_{0} & \beta_{0} & \gamma_{0}\\
-\alpha_{1} & \beta_{1} & \gamma_{1}\\
-\alpha_{2} & \beta_{2} & \gamma_{2}\\
-\alpha_{3} & \beta_{3} & \gamma_{3}\end{array}\right]=\left[\begin{array}{ccc}
-x_{0} & y_{0} & z_{0}\\
-x_{1} & y_{1} & z_{1}\\
-x_{2} & y_{2} & z_{2}\\
-x_{3} & y_{3} & z_{3}\end{array}\right]\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Now we can easily invert the square matrix on the left, yielding the values
- of the unknown coefficients,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\left[\begin{array}{ccc}
-\alpha_{0} & \beta_{0} & \gamma_{0}\\
-\alpha_{1} & \beta_{1} & \gamma_{1}\\
-\alpha_{2} & \beta_{2} & \gamma_{2}\\
-\alpha_{3} & \beta_{3} & \gamma_{3}\end{array}\right]=\frac{1}{2}\left[\begin{array}{cccc}
--1 & 1 & 1 & 1\\
--1 & 1 & 0 & 0\\
--1 & 0 & 1 & 0\\
--1 & 0 & 0 & 1\end{array}\right]\left[\begin{array}{ccc}
-x_{0} & y_{0} & z_{0}\\
-x_{1} & y_{1} & z_{1}\\
-x_{2} & y_{2} & z_{2}\\
-x_{3} & y_{3} & z_{3}\end{array}\right]\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Using the values for
-\begin_inset Formula $\alpha_{k}$
-\end_inset
-
-, we find that 
-\begin_inset Formula $x(\vec{\xi})$
-\end_inset
-
- becomes
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-x(\vec{\xi}) & = & \alpha_{0}+\alpha_{1}\xi+\alpha_{2}\eta+\alpha_{3}\zeta\\
- & = & \,\,\,\left[\frac{1}{2}\left(-x_{0}+x_{1}+x_{2}+x_{3}\right)\right]\\
- &  & +\left[\frac{1}{2}\left(-x_{0}+x_{1}\right)\right]\xi\\
- &  & +\left[\frac{1}{2}\left(-x_{0}+x_{2}\right)\right]\eta\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Rearranging terms, we get
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-x(\vec{\xi}) & = & \,\,\,\left[\frac{1}{2}\left(-1-\xi-\eta-\zeta\right)\right]x_{0}\\
- &  & +\left[\frac{1}{2}\left(1+\xi\right)\right]x_{1}\\
- &  & +\left[\frac{1}{2}\left(1+\eta\right)\right]x_{2}\\
- &  & +\left[\frac{1}{2}\left(1+\zeta\right)\right]x_{3}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-x(\vec{\xi}) & = & N_{0}(\vec{\xi})x_{0}+N_{1}(\vec{\xi})x_{1}+N_{2}(\vec{\xi})x_{2}+N_{3}(\vec{\xi})x_{3}\\
-y(\vec{\xi}) & = & N_{0}(\vec{\xi})y_{0}+N_{1}(\vec{\xi})y_{1}+N_{2}(\vec{\xi})y_{2}+N_{3}(\vec{\xi})y_{3}\\
-z(\vec{\xi}) & = & N_{0}(\vec{\xi})z_{0}+N_{1}(\vec{\xi})z_{1}+N_{2}(\vec{\xi})z_{2}+N_{3}(\vec{\xi})z_{3}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-where
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-N_{0}(\vec{\xi}) & = & \frac{1}{2}\left(-1-\xi-\eta-\zeta\right)\\
-N_{1}(\vec{\xi}) & = & \frac{1}{2}\left(1+\xi\right)\\
-N_{2}(\vec{\xi}) & = & \frac{1}{2}\left(1+\eta\right)\\
-N_{3}(\vec{\xi}) & = & \frac{1}{2}\left(1+\zeta\right)\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-
-\end_layout
-
-\begin_layout Standard
-As a final note, observe that we can streamline the evaluation process over
- any number of points, 
-\begin_inset Formula $\vec{\xi}_{0},\vec{\xi}_{1},\vec{\xi}_{2},\ldots$
-\end_inset
-
-, inside the same element via the following matrix multiplication
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\left[\begin{array}{ccc}
-x(\vec{\xi}_{0}) & y(\vec{\xi}_{0}) & z(\vec{\xi}_{0})\\
-x(\vec{\xi}_{1}) & y(\vec{\xi}_{1}) & z(\vec{\xi}_{1})\\
-x(\vec{\xi}_{2}) & y(\vec{\xi}_{2}) & z(\vec{\xi}_{2})\\
-\vdots & \vdots & \vdots\end{array}\right]=\left[\begin{array}{cccc}
-N_{0}(\vec{\xi}_{0}) & N_{1}(\vec{\xi}_{0}) & N_{2}(\vec{\xi}_{0}) & N_{3}(\vec{\xi}_{0})\\
-N_{0}(\vec{\xi}_{1}) & N_{1}(\vec{\xi}_{1}) & N_{2}(\vec{\xi}_{1}) & N_{3}(\vec{\xi}_{1})\\
-N_{0}(\vec{\xi}_{2}) & N_{1}(\vec{\xi}_{2}) & N_{2}(\vec{\xi}_{2}) & N_{3}(\vec{\xi}_{2})\\
-\vdots & \vdots & \vdots & \vdots\end{array}\right]\left[\begin{array}{ccc}
-x{}_{0} & y_{0} & z_{0}\\
-x_{1} & y_{1} & z_{1}\\
-x_{2} & y_{2} & z_{2}\\
-x_{3} & y_{3} & z_{3}\end{array}\right]\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Subsection
-Jacobian Matrix
-\end_layout
-
-\begin_layout Standard
-Recall the definition of the Jacobian matrix:
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Tabular
-<lyxtabular version="3" rows="1" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\frac{\partial\vec{x}}{\partial\vec{\xi}}=\left[\begin{array}{ccc}
-\frac{\partial x}{\partial\xi} & \frac{\partial x}{\partial\eta} & \frac{\partial x}{\partial\zeta}\\
-\frac{\partial y}{\partial\xi} & \frac{\partial y}{\partial\eta} & \frac{\partial y}{\partial\zeta}\\
-\frac{\partial z}{\partial\xi} & \frac{\partial z}{\partial\eta} & \frac{\partial z}{\partial\zeta}\end{array}\right]$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\begin{array}{c}
-x\left(\vec{\xi}\right)=\sum_{i}N_{i}\left(\vec{\xi}\right)x_{i}\\
-y\left(\vec{\xi}\right)=\sum_{i}N_{i}\left(\vec{\xi}\right)y_{i}\\
-z\left(\vec{\xi}\right)=\sum_{i}N_{i}\left(\vec{\xi}\right)z_{i}\end{array}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial x}{\partial\xi}=\sum_{i}\frac{\partial N_{i}}{\partial\xi}x_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial x}{\partial\eta}=\sum_{i}\frac{\partial N_{i}}{\partial\eta}x_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial x}{\partial\zeta}=\sum_{i}\frac{\partial N_{i}}{\partial\zeta}x_{i}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial y}{\partial\xi}=\sum_{i}\frac{\partial N_{i}}{\partial\xi}y_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial y}{\partial\eta}=\sum_{i}\frac{\partial N_{i}}{\partial\eta}y_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial y}{\partial\zeta}=\sum_{i}\frac{\partial N_{i}}{\partial\zeta}y_{i}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial z}{\partial\xi}=\sum_{i}\frac{\partial N_{i}}{\partial\xi}z_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial z}{\partial\eta}=\sum_{i}\frac{\partial N_{i}}{\partial\eta}z_{i}\,\,\,\,\,\,,\,\,\,\frac{\partial z}{\partial\zeta}=\sum_{i}\frac{\partial N_{i}}{\partial\zeta}z_{i}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-Applying these to our shape functions on a tetrahedron, we obtain
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="5">
-<features>
-<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="center" valignment="top" leftline="true" rightline="true" width="0">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $i$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $TN_{i}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\partial TN_{i}/\partial\xi$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\partial TN_{i}/\partial\eta$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\partial TN_{i}/\partial\zeta$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\frac{1}{2}\left(-1-\xi-\eta-\zeta\right)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $-\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $-\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $-\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-1
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\frac{1}{2}\left(1+\xi\right)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $+\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\frac{1}{2}\left(1+\eta\right)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $+\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\frac{1}{2}\left(1+\zeta\right)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-0
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $+\frac{1}{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial x}{\partial\xi}=\left(-\frac{1}{2}\right)x_{0}+\left(\frac{1}{2}\right)x_{1}\,\,\,,\,\,\,\frac{\partial x}{\partial\eta}=\left(-\frac{1}{2}\right)x_{0}+\left(\frac{1}{2}\right)x_{2}\,\,\,,\,\,\,\frac{\partial x}{\partial\zeta}=\left(-\frac{1}{2}\right)x_{0}+\left(\frac{1}{2}\right)x_{3}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial y}{\partial\xi}=\left(-\frac{1}{2}\right)y_{0}+\left(\frac{1}{2}\right)y_{1}\,\,\,,\,\,\,\frac{\partial y}{\partial\eta}=\left(-\frac{1}{2}\right)y_{0}+\left(\frac{1}{2}\right)y_{2}\,\,\,,\,\,\,\frac{\partial y}{\partial\zeta}=\left(-\frac{1}{2}\right)y_{0}+\left(\frac{1}{2}\right)y_{3}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\frac{\partial z}{\partial\xi}=\left(-\frac{1}{2}\right)z_{0}+\left(\frac{1}{2}\right)z_{1}\,\,\,,\,\,\,\frac{\partial z}{\partial\eta}=\left(-\frac{1}{2}\right)z_{0}+\left(\frac{1}{2}\right)z_{2}\,\,\,,\,\,\,\frac{\partial z}{\partial\zeta}=\left(-\frac{1}{2}\right)z_{0}+\left(\frac{1}{2}\right)z_{3}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\mathrm{J}=\left|\frac{\partial\vec{x}}{\partial\vec{\xi}}\right|=\left|\begin{array}{c}
-\frac{1}{2}\left(x_{1}-x_{0}\right)\,\,\frac{1}{2}\left(x_{2}-x_{0}\right)\,\,\frac{1}{2}\left(x_{3}-x_{0}\right)\\
-\frac{1}{2}\left(y_{1}-y_{0}\right)\,\,\frac{1}{2}\left(y_{2}-y_{0}\right)\,\,\frac{1}{2}\left(y_{3}-y_{0}\right)\\
-\frac{1}{2}\left(z_{1}-z_{0}\right)\,\,\frac{1}{2}\left(z_{2}-z_{0}\right)\,\,\frac{1}{2}\left(z_{3}-z_{0}\right)\end{array}\right|\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-=\frac{1}{8}\left|\begin{array}{cccc}
-1 & x_{0} & y_{0} & z_{0}\\
-1 & x_{1} & y_{1} & z_{1}\\
-1 & x_{2} & y_{2} & z_{2}\\
-1 & x_{3} & y_{3} & z_{3}\end{array}\right|\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-License 
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-\series default
- 
-\newline
-
-\series medium
-Everyone is permitted to copy and distribute verbatim copies of this license
- document, but changing it is not allowed.
-\end_layout
-
-\begin_layout Section*
-Preamble
-\end_layout
-
-\begin_layout Standard
-The licenses for most software are designed to take away your freedom to
- share and change it.
- By contrast, the GNU General Public License is intended to guarantee your
- freedom to share and change free software -- to make sure the software
- is free for all its users.
- This General Public License applies to most of the Free Software Foundation's
- software and to any other program whose authors commit to using it.
- (Some other Free Software Foundation software is covered by the GNU Library
- General Public License instead.) You can apply it to your programs, too.
-\end_layout
-
-\begin_layout Standard
-When we speak of free software, we are referring to freedom, not price.
- Our General Public Licenses are designed to make sure that you have the
- freedom to distribute copies of free software (and charge for this service
- if you wish), that you receive source code or can get it if you want it,
- that you can change the software or use pieces of it in new free programs;
- and that you know you can do these things.
-\end_layout
-
-\begin_layout Standard
-To protect your rights, we need to make restrictions that forbid anyone
- to deny you these rights or to ask you to surrender the rights.
- These restrictions translate to certain responsibilities for you if you
- distribute copies of the software, or if you modify it.
-\end_layout
-
-\begin_layout Standard
-For example, if you distribute copies of such a program, whether gratis
- or for a fee, you must give the recipients all the rights that you have.
- You must make sure that they, too, receive or can get the source code.
- And you must show them these terms so they know their rights.
-\end_layout
-
-\begin_layout Standard
-We protect your rights with two steps:
-\end_layout
-
-\begin_layout Enumerate
-Copyright the software, and 
-\end_layout
-
-\begin_layout Enumerate
-Offer you this license which gives you legal permission to copy, distribute
- and/or modify the software.
-\end_layout
-
-\begin_layout Standard
-Also, for each author's protection and ours, we want to make certain that
- everyone understands that there is no warranty for this free software.
- If the software is modified by someone else and passed on, we want its
- recipients to know that what they have is not the original, so that any
- problems introduced by others will not reflect on the original authors'
- reputations.
-\end_layout
-
-\begin_layout Standard
-Finally, any free program is threatened constantly by software patents.
- We wish to avoid the danger that redistributors of a free program will
- individually obtain patent licenses, in effect making the program proprietary.
- To prevent this, we have made it clear that any patent must be licensed
- for everyone's free use or not licensed at all.
- 
-\end_layout
-
-\begin_layout Standard
-The precise terms and conditions for copying, distribution and modification
- follow.
-\end_layout
-
-\begin_layout Section*
-GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION
- AND MODIFICATION 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-begin{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[0.]
-\end_layout
-
-\end_inset
-
-This License applies to any program or other work which contains a notice
- placed by the copyright holder saying it may be distributed under the terms
- of this General Public License.
- The "Program" below refers to any such program or work, and a "work based
- on the Program" means either the Program or any derivative work under copyright
- law: that is to say, a work containing the Program or a portion of it,
- either verbatim or with modifications and/or translated into another language.
- (Hereinafter, translation is included without limitation in the term "modificat
-ion.") Each licensee is addressed as "you."
-\newline
-
-\newline
-Activities other than copying,
- distribution and modification are not covered by this License; they are
- outside its scope.
- The act of running the Program is not restricted, and the output from the
- Program is covered only if its contents constitute a work based on the
- Program (independent of having been made by running the Program).
- Whether that is true depends on what the Program does.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-end{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Enumerate
-You may copy and distribute verbatim copies of the Program's source code
- as you receive it, in any medium, provided that you conspicuously and appropria
-tely publish on each copy an appropriate copyright notice and disclaimer
- of warranty; keep intact all the notices that refer to this License and
- to the absence of any warranty; and give any other recipients of the Program
- a copy of this License along with the Program.
- 
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-You may charge a fee for the physical act of transferring a copy, and you
- may at your option offer warranty protection in exchange for a fee.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may modify your copy or copies of the Program or any portion of it,
- thus forming a work based on the Program, and copy and distribute such
- modifications or work under the terms of Section 1 above, provided that
- you also meet all of these conditions: 
-\end_layout
-
-\begin_deeper
-\begin_layout Enumerate
-You must cause the modified files to carry prominent notices stating that
- you changed the files and the date of any change.
- 
-\end_layout
-
-\begin_layout Enumerate
-You must cause any work that you distribute or publish, that in whole or
- in part contains or is derived from the Program or any part thereof, to
- be licensed as a whole at no charge to all third parties under the terms
- of this License.
- 
-\end_layout
-
-\begin_layout Enumerate
-If the modified program normally reads commands interactively when run,
- you must cause it, when started running for such interactive use in the
- most ordinary way, to print or display an announcement including an appropriate
- copyright notice and a notice that there is no warranty (or else, saying
- that you provide a warranty) and that users may redistribute the program
- under these conditions, and telling the user how to view a copy of this
- License.
- (Exception: if the Program itself is interactive but does not normally
- print such an announcement, your work based on the Program is not required
- to print an announcement.) 
-\end_layout
-
-\begin_layout Standard
-These requirements apply to the modified work as a whole.
- If identifiable sections of that work are not derived from the Program,
- and can be reasonably considered independent and separate works in themselves,
- then this License, and its terms, do not apply to those sections when you
- distribute them as separate works.
- But when you distribute the same sections as part of a whole which is a
- work based on the Program, the distribution of the whole must be on the
- terms of this License, whose permissions for other licensees extend to
- the entire whole, and thus to each and every part regardless of who wrote
- it.
- 
-\end_layout
-
-\begin_layout Standard
-Thus, it is not the intent of this section to claim rights or contest your
- rights to work written entirely by you; rather, the intent is to exercise
- the right to control the distribution of derivative or collective works
- based on the Program.
- 
-\end_layout
-
-\begin_layout Standard
-In addition, mere aggregation of another work not based on the Program with
- the Program (or with a work based on the Program) on a volume of a storage
- or distribution medium does not bring the other work under the scope of
- this License.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may copy and distribute the Program (or a work based on it, under Section
- 2) in object code or executable form under the terms of Sections 1 and
- 2 above provided that you also do one of the following: 
-\end_layout
-
-\begin_deeper
-\begin_layout Enumerate
-Accompany it with the complete corresponding machine-readable source code,
- which must be distributed under the terms of Sections 1 and 2 above on
- a medium customarily used for software interchange; or, 
-\end_layout
-
-\begin_layout Enumerate
-Accompany it with a written offer, valid for at least three years, to give
- any third party, for a charge no more than your cost of physically performing
- source distribution, a complete machine-readable copy of the corresponding
- source code, to be distributed under the terms of Sections 1 and 2 above
- on a medium customarily used for software interchange; or, 
-\end_layout
-
-\begin_layout Enumerate
-Accompany it with the information you received as to the offer to distribute
- corresponding source code.
- (This alternative is allowed only for noncommercial distribution and only
- if you received the program in object code or executable form with such
- an offer, in accord with Subsection b above.) 
-\end_layout
-
-\begin_layout Standard
-The source code for a work means the preferred form of the work for making
- modifications to it.
- For an executable work, complete source code means all the source code
- for all modules it contains, plus any associated interface definition files,
- plus the scripts used to control compilation and installation of the executable.
- However, as a special exception, the source code distributed need not include
- anything that is normally distributed (in either source or binary form)
- with the major components (compiler, kernel, and so on) of the operating
- system on which the executable runs, unless that component itself accompanies
- the executable.
-\end_layout
-
-\begin_layout Standard
-If distribution of executable or object code is made by offering access
- to copy from a designated place, then offering equivalent access to copy
- the source code from the same place counts as distribution of the source
- code, even though third parties are not compelled to copy the source along
- with the object code.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-You may not copy, modify, sublicense, or distribute the Program except as
- expressly provided under this License.
- Any attempt otherwise to copy, modify, sublicense or distribute the Program
- is void, and will automatically terminate your rights under this License.
- However, parties who have received copies, or rights, from you under this
- License will not have their licenses terminated so long as such parties
- remain in full compliance.
- 
-\end_layout
-
-\begin_layout Enumerate
-You are not required to accept this License, since you have not signed it.
- However, nothing else grants you permission to modify or distribute the
- Program or its derivative works.
- These actions are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Program (or any work based
- on the Program), you indicate your acceptance of this License to do so,
- and all its terms and conditions for copying, distributing or modifying
- the Program or works based on it.
- 
-\end_layout
-
-\begin_layout Enumerate
-Each time you redistribute the Program (or any work based on the Program),
- the recipient automatically receives a license from the original licensor
- to copy, distribute or modify the Program subject to these terms and conditions.
- You may not impose any further restrictions on the recipients' exercise
- of the rights granted herein.
- You are not responsible for enforcing compliance by third parties to this
- License.
- 
-\end_layout
-
-\begin_layout Enumerate
-If, as a consequence of a court judgment or allegation of patent infringement
- or for any other reason (not limited to patent issues), conditions are
- imposed on you (whether by court order, agreement or otherwise) that contradict
- the conditions of this License, they do not excuse you from the conditions
- of this License.
- If you cannot distribute so as to satisfy simultaneously your obligations
- under this License and any other pertinent obligations, then as a consequence
- you may not distribute the Program at all.
- For example, if a patent license would not permit royalty-free redistribution
- of the Program by all those who receive copies directly or indirectly through
- you, then the only way you could satisfy both it and this License would
- be to refrain entirely from distribution of the Program.
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-If any portion of this section is held invalid or unenforceable under any
- particular circumstance, the balance of the section is intended to apply
- and the section as a whole is intended to apply in other circumstances.
-\end_layout
-
-\begin_layout Standard
-It is not the purpose of this section to induce you to infringe any patents
- or other property right claims or to contest validity of any such claims;
- this section has the sole purpose of protecting the integrity of the free
- software distribution system, which is implemented by public license practices.
- Many people have made generous contributions to the wide range of software
- distributed through that system in reliance on consistent application of
- that system; it is up to the author/donor to decide if he or she is willing
- to distribute software through any other system and a licensee cannot impose
- that choice.
- 
-\end_layout
-
-\begin_layout Standard
-This section is intended to make thoroughly clear what is believed to be
- a consequence of the rest of this License.
- 
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-If the distribution and/or use of the Program is restricted in certain countries
- either by patents or by copyrighted interfaces, the original copyright
- holder who places the Program under this License may add an explicit geographic
-al distribution limitation excluding those countries, so that distribution
- is permitted only in or among countries not thus excluded.
- In such case, this License incorporates the limitation as if written in
- the body of this License.
- 
-\end_layout
-
-\begin_layout Enumerate
-The Free Software Foundation may publish revised and/or new versions of
- the General Public License from time to time.
- Such new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
- 
-\end_layout
-
-\begin_deeper
-\begin_layout Standard
-Each version is given a distinguishing version number.
- If the Program specifies a version number of this License which applies
- to it and "any later version," you have the option of following the terms
- and conditions either of that version or of any later version published
- by the Free Software Foundation.
- If the Program does not specify a version number of this License, you may
- choose any version ever published by the Free Software Foundation.
-\end_layout
-
-\end_deeper
-\begin_layout Enumerate
-If you wish to incorporate parts of the Program into other free programs
- whose distribution conditions are different, write to the author to ask
- for permission.
- For software which is copyrighted by the Free Software Foundation, write
- to the Free Software Foundation; we sometimes make exceptions for this.
- Our decision will be guided by the two goals of preserving the free status
- of all derivatives of our free software and of promoting the sharing and
- reuse of software generally.
- 
-\end_layout
-
-\begin_layout Section*
-NO WARRANTY 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-begin{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[11.]
-\end_layout
-
-\end_inset
-
-BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
- THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
- EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
- PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
- EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
- YOU.
- SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-item[12.]
-\end_layout
-
-\end_inset
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
- ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
- THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
- ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
- THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
- OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
- THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
- EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY
- OF SUCH DAMAGES.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-end{itemize}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-END OF TERMS AND CONDITIONS 
-\end_layout
-
-\begin_layout Standard
-How to Apply These Terms to Your New Programs
-\end_layout
-
-\begin_layout Standard
-If you develop a new program, and you want it to be of the greatest possible
- use to the public, the best way to achieve this is to make it free software
- which everyone can redistribute and change under these terms.
- 
-\end_layout
-
-\begin_layout Standard
-To do so, attach the following notices to the program.
- It is safest to attach them to the start of each source file to most effectivel
-y convey the exclusion of warranty; and each file should have at least the
- "copyright" line and a pointer to where the full notice is found.
- For example:
-\end_layout
-
-\begin_layout Standard
-One line to give the program's name and a brief idea of what it does.
- Copyright 
-\size footnotesize
-© (
-\size default
-year) (name of author) 
-\end_layout
-
-\begin_layout Standard
-This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
- 
-\end_layout
-
-\begin_layout Standard
-This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE.
- See the GNU General Public License for more details.
- 
-\end_layout
-
-\begin_layout Standard
-You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
-\end_layout
-
-\begin_layout Standard
-Also add information on how to contact you by electronic and paper mail.
- 
-\end_layout
-
-\begin_layout Standard
-If the program is interactive, make it output a short notice like this when
- it starts in an interactive mode: 
-\end_layout
-
-\begin_layout Standard
-Gnomovision version 69, Copyright © year name of author Gnomovision comes
- with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it under certain
- conditions; type `show c' for details.
- 
-\end_layout
-
-\begin_layout Standard
-The hypothetical commands `show w' and `show c' should show the appropriate
- parts of the General Public License.
- Of course, the commands you use may be called something other than `show
- w' and `show c'; they could even be mouse-clicks or menu items -- whatever
- suits your program.
- 
-\end_layout
-
-\begin_layout Standard
-You should also get your employer (if you work as a programmer) or your
- school, if any, to sign a "copyright disclaimer" for the program, if necessary.
- Here is a sample; alter the names: 
-\end_layout
-
-\begin_layout Standard
-Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovisi
-on' (which makes passes at compilers) written by James Hacker.
- 
-\end_layout
-
-\begin_layout Standard
-(signature of Ty Coon)
-\newline
-1 April 1989 
-\newline
-Ty Coon, President of Vice 
-\end_layout
-
-\begin_layout Standard
-This General Public License does not permit incorporating your program into
- proprietary programs.
- If your program is a subroutine library, you may consider it more useful
- to permit linking proprietary applications with the library.
- If this is what you want to do, use the GNU Library General Public License
- instead of this License.
-\end_layout
-
-\begin_layout Bibliography
-\begin_inset LatexCommand bibitem
-label "1"
-key "Akin 2005"
-
-\end_inset
-
-Akin, J.E.
- (2005), 
-\emph on
-Finite Element Analysis with Error Estimators,
-\emph default
- Butterworth-Heinemann, Oxford, 447 pp.
- 
-\end_layout
-
-\begin_layout Bibliography
-\begin_inset LatexCommand bibitem
-label "2"
-key "Encyclopaedia of Cubature Formulas 2005"
-
-\end_inset
-
-Encyclopaedia of Cubature Formulas (1998-2005), Katholieke Universiteit
- Leuven, Dept.
- Computerwetenschappen, www.cs.kuleuven.be/~nines/research/ecf/
-\end_layout
-
-\begin_layout Bibliography
-\begin_inset LatexCommand bibitem
-label "3"
-key "Hughes 2000"
-
-\end_inset
-
-Hughes, Thomas J.R.
- (2000), 
-\emph on
-The Finite Element Method: Linear Static and Dynamic Finite Element Analysis
-\emph default
-, Dover, 672 pp.
-\end_layout
-
-\begin_layout Bibliography
-\begin_inset LatexCommand bibitem
-label "4"
-key "KarniadakisSherwin2005"
-
-\end_inset
-
-Karniadakis, George E.
- and Spencer J.
- Sherwin (2005), 
-\emph on
-Spectral/
-\emph default
-hp 
-\emph on
-Element Methods for Computational Fluid Dynamics, Second Edition
-\emph default
-, Numerical Mathematics and Scientific Computation, Oxford, 657 pp.
-\end_layout
-
-\begin_layout Bibliography
-\begin_inset LatexCommand bibitem
-label "5"
-key "Uesu-etal2005"
-
-\end_inset
-
-Uesu, D., L.
- Bavoil, S.
- Fleishman, J.
- Shepherd, and C.
- Silva (2005), Simplification of Unstructured Tetrahedral Meshes by Point-Sampli
-ng, 
-\emph on
-Proceedings of the 2005 International Workshop on Volume Graphics,
-\emph default
- 157-165, doi: 10.2312/VG/VG05/157-165.
-\end_layout
-
-\end_body
-\end_document

Modified: doc/cigma/manual/cigma.lyx
===================================================================
--- doc/cigma/manual/cigma.lyx	2008-01-22 19:52:09 UTC (rev 9112)
+++ doc/cigma/manual/cigma.lyx	2008-01-22 19:57:48 UTC (rev 9113)
@@ -250,7 +250,7 @@
  for use as citations other than this manual, which is cited as follows:
 \end_layout
 
-\begin_layout Standard
+\begin_layout Itemize
 Armendariz, L., and S.
  Kientz.
  
@@ -344,11 +344,11 @@
  commands
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ make
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ sudo make install
 \end_layout
 
@@ -377,23 +377,23 @@
  (currently 1.6.5) and issue the following commands
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ tar xvfz hdf5-1.6.5
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ cd hdf5-1.6.5
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ ./configure
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ make
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ sudo make install
 \end_layout
 
@@ -416,7 +416,7 @@
  step:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 ./configure --with-vtk=/path/to/vtk
 \end_layout
 
@@ -443,15 +443,15 @@
  (currently 2.0) and issue the following commands
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ tar xvfz pytables-2.x
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ cd pytables-2.x
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ sudo python setup.py install
 \end_layout
 
@@ -484,19 +484,6 @@
 status collapsed
 
 \begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-With HFDFView, you can view the internal file hierarchy in a tree structure,
- add new datasets, and modify or delete existing datasets.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
 \noindent
 \align center
 \begin_inset Graphics
@@ -509,9 +496,22 @@
 
 \end_layout
 
+\begin_layout Standard
+\begin_inset Caption
+
+\begin_layout Standard
+With HFDFView, you can view the internal file hierarchy in a tree structure,
+ add new datasets, and modify or delete existing datasets
+\end_layout
+
 \end_inset
 
+ 
+\end_layout
 
+\end_inset
+
+
 \end_layout
 
 \begin_layout Chapter
@@ -703,7 +703,7 @@
 .
 \end_layout
 
-\begin_layout Standard
+\begin_layout Chapter
 Cigma Components
 \end_layout
 
@@ -812,9 +812,22 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Standard
+\noindent
+\align center
+\begin_inset Graphics
+	filename figures/reference-tet4.png
+	lyxscale 35
+	width 35page%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
 \begin_inset Caption
 
 \begin_layout Standard
@@ -827,16 +840,6 @@
 \end_layout
 
 \begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/reference-tet4.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
 \begin_inset Formula \begin{eqnarray*}
 TN_{a} & = & \frac{1}{2}(-1-x-y-z)\\
 TN_{b} & = & \frac{1}{2}(1+x)\\
@@ -872,9 +875,22 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Standard
+\noindent
+\align center
+\begin_inset Graphics
+	filename figures/reference-hex8.png
+	lyxscale 35
+	width 35page%
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
 \begin_inset Caption
 
 \begin_layout Standard
@@ -887,16 +903,6 @@
 \end_layout
 
 \begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/reference-hex8.png
-	lyxscale 35
-	width 35page%
-
-\end_inset
-
-
 \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)\\
@@ -1230,64 +1236,67 @@
 \family typewriter
 list
 \family default
- for viewing the structure of input file.
- Its usage is very simple:
-\newline
-
+ for viewing the structure of the input file.
+ Its usage is very simple.
+ 
 \end_layout
 
 \begin_layout Standard
 To view the structure of an HDF5 file:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ 
 \series bold
 cigma list file.h5
 \end_layout
 
-\begin_layout Standard
+\begin_deeper
+\begin_layout LyX-Code
 /mesh/coordinates           Dataset {119827, 3}
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 /mesh/connectivity          Dataset {661929, 4}
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 /vars/displacement/step0    Dataset {119827, 3}
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 /residuals/comparison0      Dataset {661929, 1}
 \end_layout
 
+\end_deeper
 \begin_layout Standard
 If VTK support is enabled, you can view the structure of a VTK file with:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 $ 
 \series bold
 cigma list file.vtk
 \end_layout
 
-\begin_layout Standard
+\begin_deeper
+\begin_layout LyX-Code
 Reading file.vtk
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 Points = 119827
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 Cells = 661929
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 PointDataArray[0] = displacements_t0 (119827 x 3)
 \end_layout
 
+\end_deeper
 \begin_layout Section
 Converting Data
 \end_layout
@@ -1302,27 +1311,25 @@
  By default, it relies on the file extension to detect what format to use
  when reading or writing data.
  Various examples are given below.
-\newline
-
 \end_layout
 
 \begin_layout Standard
 Usage is typically
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy <source-path> <destination-path>
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=<path> --destination=<path>
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy -s <path> -d <path>
@@ -1332,13 +1339,13 @@
 To dump the mesh information into a text file:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=file.h5:/model/mesh/coords --destination=model-coords.txt
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=file.h5:/model/mesh/connect --destination=model-connect.txt
@@ -1352,7 +1359,7 @@
  from a VTK file into an HDF5 file:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=file.vtk:pressure0 --destination=file.h5:/model/variables/pres
@@ -1367,7 +1374,7 @@
  from a VTK file into an HDF5 file:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=file.vtk:displacement15 --destination=file.h5:/model/variables
@@ -1378,23 +1385,19 @@
 To convert residual data into a VTK file, and then into ASCII:
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=file.h5:/model/residuals/pressure0 --destination=pressure0-re
 siduals.vtk
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma copy --source=pressure0-residuals.vtk --destination=residuals.txt
 \end_layout
 
-\begin_layout Standard
-
-\end_layout
-
 \begin_layout Section
 Metadata
 \end_layout
@@ -1411,13 +1414,13 @@
 Usage is typically: 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set <target-object-path> <attribute-name>[:<type>] <value>
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma get <target-object-path> [<attribute>]
@@ -1429,33 +1432,33 @@
 For example, 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set --target=file.h5:/model/ --attribute=AUTHOR --value='John Doe'
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set --target=file.h5:/model/vars/pressure --attribute=Units --value=MPa
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=Step:int32
  --value=10 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=MeshID:int32
  --value=1234
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \size small
 cigma set --target=file.h5:/model/vars/pressure/t10 --attribute=FunctionSpace
@@ -1474,7 +1477,7 @@
 Comparing two arbitrary finite element fields can be accomplished with the
  
 \family typewriter
-`cigma compare'
+cigma compare
 \family default
  command line utility.
  By default, the comparison will take place over the elements in the mesh
@@ -1489,25 +1492,27 @@
 A basic comparison can be as simple as specifying the following arguments:
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --output=squared-residuals.vtk   
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --first=field1.h5:/field1/stepN  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --second=field2.h5:/field2/stepN
 \end_layout
 
@@ -1520,17 +1525,17 @@
  providing the location of the mesh:
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --mesh=mesh.h5:/model/mesh/   
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              [...]
 \end_layout
 
@@ -1539,25 +1544,27 @@
  in case they reside in separate files.
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --mesh-coordinates=file1.h5:/model/mesh/coordinates    
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --mesh-connectivity=file2.h5:/model/mesh/connectivity  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              [...]
 \end_layout
 
@@ -1571,17 +1578,17 @@
  This can be done with the following additional argument:
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --rule=quadrature-rules.h5:/path/to/rule  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              [...]
 \end_layout
 
@@ -1589,48 +1596,46 @@
 You may also specify the location of the points and weights separately:
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --rule-points=file.h5:/path/to/rule/points    
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --rule-weights=file.h5:/path/to/rule/weights  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              [...]
 \end_layout
 
 \begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
 Alternatively, to perform a pointwise comparison at random sample points
  inside each element in the first mesh,
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --samples-per-element=1    
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              [...]
 \end_layout
 
@@ -1651,51 +1656,60 @@
  field.
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma extract --mesh=field1.h5:/model/mesh/  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
               --output=points.h5:/points
 \end_layout
 
 \begin_layout Standard
-At this point, one possibility would be to dump explicit the list of points
- to a text file, generate the corresponding list of values on your own and
- import that lsit of values back into an HDF5 file that Cigma can understand.
+[TODO: Luis, word 
+\begin_inset Quotes sld
+\end_inset
+
+explicit
+\begin_inset Quotes srd
+\end_inset
+
+ here seems misplaced.] At this point, one possibility would be to dump explicit
+ the list of points to a text file, generate the corresponding list of values
+ on your own and import that list of values back into an HDF5 file that
+ Cigma can understand.
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma copy --source=points.h5:/points  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
            --destination=points.txt
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 # create values.txt
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma copy --source=values.txt  
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
            --destination=values.h5:/stepN_values
 \end_layout
 
@@ -1707,15 +1721,15 @@
 Lastly, you can provide the path to the explicit set of values with
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma compare --output=squared-residuals.vtk
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
               --first=field1.h5:/field1/stepN
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
               --second=values.h5:/stepN_values
 \end_layout
 
@@ -1729,7 +1743,7 @@
 
 \begin_layout Standard
 If one of your fields is easily described by an analytic expression, then
- you also have the option to compile your analytic function into cigma,
+ you also have the option to compile your analytic function into Cigma,
  which will enable the 
 \family typewriter
 compare
@@ -1737,82 +1751,92 @@
  command to reference your function by name:
 \end_layout
 
-\begin_layout Standard
-
-\series bold
+\begin_layout LyX-Code
 cigma compare --output=squared-residuals.vtk 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --first=field1.h5:/vars/displacement/step0 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
+
+\series bold
  
-\series bold
+\series default
              --second=
 \bar under
 disloc3d
-\series default
+\series bold
 \bar default
  
-\series bold
+\series default
  
 \end_layout
 
 \begin_layout Standard
 You may also interact with your analytic function by using the 
 \family typewriter
-cigma eval
+cigma
 \family default
+ 
+\family typewriter
+eval
+\family default
  command, and obtain a set of values which may then be passed back to the
- compare command.
  
+\family typewriter
+compare
+\family default
+ command.
+ 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma eval --function=disloc3d 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
            --points=points.h5:/points 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
            --values=values.h5:/disloc3d_values
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 cigma compare --output=squared-residuals.vtk 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
               --first=field1.h5:/vars/displacement/step0 
 \backslash
 
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
               --second=values.h5:/disloc3d_values
 \end_layout
 
-\begin_layout Standard
+\begin_layout LyX-Code
 
 \end_layout
 
@@ -1846,8 +1870,8 @@
 , 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.
+ a better idea of how the local contributions to the global error are distribute
+d both spatially and temporally.
 \end_layout
 
 \begin_layout Standard
@@ -1857,7 +1881,7 @@
 placement H
 wide false
 sideways false
-status collapsed
+status open
 
 \begin_layout Standard
 \align center
@@ -2973,6 +2997,7 @@
 \end_layout
 
 \begin_layout Standard
+\align center
 \begin_inset Tabular
 <lyxtabular version="3" rows="5" columns="5">
 <features>

Modified: doc/cigma/manual/cigma.pdf
===================================================================
(Binary files differ)


Property changes on: doc/cigma/manual/figures/cigma_cover.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream



More information about the cig-commits mailing list