[cig-commits] r7115 - cs/cigma/trunk/doc/manual
luis at geodynamics.org
luis at geodynamics.org
Fri Jun 8 16:03:39 PDT 2007
Author: luis
Date: 2007-06-08 16:03:38 -0700 (Fri, 08 Jun 2007)
New Revision: 7115
Modified:
cs/cigma/trunk/doc/manual/cigma.lyx
Log:
Added chapter on command-line usage.
Modified: cs/cigma/trunk/doc/manual/cigma.lyx
===================================================================
--- cs/cigma/trunk/doc/manual/cigma.lyx 2007-06-08 22:53:00 UTC (rev 7114)
+++ cs/cigma/trunk/doc/manual/cigma.lyx 2007-06-08 23:03:38 UTC (rev 7115)
@@ -1,4 +1,4 @@
-#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
+#LyX 1.4.4 created this file. For more info see http://www.lyx.org/
\lyxformat 245
\begin_document
\begin_header
@@ -134,9 +134,11 @@
\end_layout
\begin_layout Standard
-The CIG Model Analyzer (CIGMA) is a suite of tools intended to simplify
- the process of comparing numerical solutions.
- CIG has developed CIGMA in response to community demand by __???___.
+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, who desired for a simple tool for performing rigorous error
+ analysis on their FEM codes.
The code is being released under the GNU General Public License.
\end_layout
@@ -145,43 +147,11 @@
\end_layout
\begin_layout Standard
-TODO: Should we adapt the following or remove it altogether?
-\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.
- A number of individuals have contributed a significant portion of their
- careers toward the development of Gale.
- It is essential that you recognize these individuals in the normal scientific
- practice by making appropriate acknowledgements.
-
-\end_layout
-
-\begin_layout Standard
-The code is based on the method described in
-\end_layout
-
-\begin_layout Itemize
-Moresi, L.N., F.
- Dufour, and H.-B.
- Mühlhaus (2003), A Lagrangian integration point finite element method for
- large deformation modeling of viscoelastic geomaterials,
-\emph on
-J.
- Comp.
- Phys., 184
-\series bold
-,
-\series default
-\emph default
- 476-497.
-
-\end_layout
-
-\begin_layout Standard
-CIG requests that in your oral presentations and in your papers that you
+ (TODO: Use this manual for the citation?).
+ CIG requests that in your oral presentations and in your papers that you
indicate your use of this code and acknowledge the authors of the code
and
\begin_inset LatexCommand \htmlurl[CIG]{www.geodynamics.org}
@@ -198,296 +168,246 @@
\begin_layout Standard
CIGMA development is supported by a grant from the National Science Foundation
to CIG, managed by the California Institute of Technology.
-
\end_layout
\begin_layout Chapter
-Numerical Methods
+Installation and Getting Help
\end_layout
-\begin_layout Chapter
-Implementation
-\end_layout
-
-\begin_layout Chapter
-Components
-\end_layout
-
\begin_layout Section
-Design Goals
+Introduction
\end_layout
\begin_layout Standard
-CIGMA was developed with the following design goals in mind:
+(TODO: this chapter is short.
+ merge chapters 1 & 2?)
\end_layout
\begin_layout Standard
-TODO
+To use CIGMA, download the source package (in the form of a compressed tar
+ file) from the Geodynamics Software Packages web page (geodynamics.org/cig/softw
+are/packages).
+ After unpacking the source, use the following commands
\end_layout
-\begin_layout Section
-Object Registry
+\begin_layout LyX-Code
+$ ./configure
\end_layout
-\begin_layout Standard
-To reduce the number of command-line options you need to specify, CIGMA
- will remember objects you have referenced in the past.
- This information will be kept in the following database
+\begin_layout LyX-Code
+$ make
\end_layout
\begin_layout LyX-Code
-$HOME/.cigma/registry.db
+$ make install
\end_layout
-\begin_layout Standard
-If this file does not exist, it will be created whenever you attempt to
- register a particular object.
+\begin_layout Section
+Getting Help
\end_layout
\begin_layout Standard
-The following objects can be registered in the database
+For help, send an e-mail to the CIG Computational Science Mailing List (cig-cs at g
+eodynamics.org).
+ You can subscribe to the Mailing List and view archived discussions at
+ the Geodynamics Mail Lists web page (www.geodynamics.org/cig/lists).
+ If you encounter any bugs, or have any problems installing CIGMA, please
+ consider submitting a report to the Geodynamics Issue Tracker located at
+ (www.geodynamics.org/bugs).
\end_layout
-\begin_layout Itemize
-models
+\begin_layout Chapter
+Numerical Background
\end_layout
-\begin_layout Itemize
-meshes
+\begin_layout Standard
+A field assigns a physical quantity to every point in space.
+ This physical quantity is described mathematically as a scalar, a vector,
+ or even a tensor.
+
\end_layout
-\begin_layout Itemize
-rules
+\begin_layout Standard
+Estimating errors between two arbitrarily represented fields is be challenging
+ due to the variety of representations that are possible.
+ With ...
\end_layout
-\begin_layout Itemize
-fields
+\begin_layout Standard
+(TODO: move some of the images/material from appendix into this section)
\end_layout
-\begin_layout Itemize
-elements
-\end_layout
-
-\begin_layout Section
-Model Metadata
-\end_layout
-
\begin_layout Standard
-Each model keeps a certain amount of metadata.
- The following HDF5 attributes are defined:
+(TODO: discussion of error aliasing that arises from undersampling the integrand
+)
\end_layout
-\begin_layout Itemize
-uuid - unique id for
+\begin_layout Chapter
+Software Components
\end_layout
-\begin_layout Itemize
-mesh_id
-\end_layout
-
\begin_layout Section
-FE Metadata
+Design Goals
\end_layout
\begin_layout Standard
-In order to accept a general finite element space,
+CIGMA was developed with the following use cases in mind
\end_layout
-\begin_layout LyX-Code
-struct fe_space {
+\begin_layout Itemize
+...
\end_layout
-\begin_layout LyX-Code
-int nsd;
+\begin_layout Section
+Components
\end_layout
-\begin_layout LyX-Code
-int ndim;
+\begin_layout Itemize
+models
\end_layout
-\begin_layout LyX-Code
-int ndof;
+\begin_layout Itemize
+meshes
\end_layout
-\begin_layout LyX-Code
-shape_fn *N;
+\begin_layout Itemize
+rules
\end_layout
-\begin_layout LyX-Code
-shape_fn *dN;
+\begin_layout Itemize
+fields
\end_layout
-\begin_layout LyX-Code
-};
+\begin_layout Itemize
+points
\end_layout
-\begin_layout LyX-Code
-
+\begin_layout Section
+Data Format
\end_layout
-\begin_layout LyX-Code
-void fe_init();
-\end_layout
-
-\begin_layout LyX-Code
-void fe_jacobian(fe_space *fe, double *x, double *xi, double *J);
-\end_layout
-
-\begin_layout LyX-Code
-void fe_tabulate(fe_space *fe, double *xs, double npts, double *tab);
-\end_layout
-
-\begin_layout LyX-Code
-void fe_eval(fe_space *fe, double *dof, double *xi, double *val);
-\end_layout
-
-\begin_layout LyX-Code
-void fe_batch_eval(fe_space *fe, double *dof, double *tab, int npts, double
- *vals);
-\end_layout
-
\begin_layout Standard
-There are two builtin finite element spaces called tet4 and hex8.
- The rest can be loaded dynamically from the following directories
+We use HDF5 for the following reasons
\end_layout
-\begin_layout LyX-Code
-$HOME/.cigma/fe/
+\begin_layout Enumerate
+A common format is necessary for comparisons in order to avoid having to
+ convert between formats
\end_layout
-\begin_layout LyX-Code
-/etc/cigma/fe/
+\begin_layout Enumerate
+In order to support large finite element meshes efficiently
\end_layout
\begin_layout Standard
-If you specify a function space called foo, cigma will search for libfoo.so
- in the above directories, and call foo_init() to initialize any required
- parameters
+(TODO: yank part of intro-to-hdf5 chapter from CitcomS manual)
\end_layout
\begin_layout Section
-Analytic Solutions
+Model Metadata
\end_layout
-\begin_layout LyX-Code
-struct fn_space {
+\begin_layout Standard
+Each model keeps a certain amount of metadata.
+ The following HDF5 attributes are defined:
\end_layout
-\begin_layout LyX-Code
- int nsd;
+\begin_layout Itemize
+uuid - unique id for
\end_layout
-\begin_layout LyX-Code
- int ndim;
+\begin_layout Itemize
+mesh_id
\end_layout
-\begin_layout LyX-Code
- eval_t *call;
+\begin_layout Itemize
+...
\end_layout
-\begin_layout LyX-Code
- eval_t *batch_call;
+\begin_layout Chapter
+Running CIGMA
\end_layout
-\begin_layout LyX-Code
-};
+\begin_layout Standard
+The data flow in CIGMA is decoupled to the extent.
+
\end_layout
-\begin_layout LyX-Code
-
+\begin_layout Section
+Internal Object Registry
\end_layout
-\begin_layout LyX-Code
-void fn_init();
+\begin_layout Standard
+In order to reduce the number of command-line options you need to specify,
+ CIGMA will remember any objects you have already referenced.
+ This information is kept in the following database
\end_layout
\begin_layout LyX-Code
-void fn_eval(fn_space *fn, double *x, double *val);
+$HOME/.cigma/registry.db
\end_layout
-\begin_layout LyX-Code
-void fn_batch_eval(fn_space *fn, double *xs, int npts, double *vals);
+\begin_layout Standard
+If this file does not exist, it will be created whenever you attempt to
+ access a particular object.
+
\end_layout
-\begin_layout LyX-Code
-void fn_fini();
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Function
-\end_layout
-
\begin_layout Section
Available Commands
\end_layout
-\begin_layout Subsection
+\begin_layout Subsubsection*
Principal Commands
\end_layout
\begin_layout Description
-create -
+create - Creates an empty model
\end_layout
\begin_layout Description
-import -
+import - Imports datasets into model
\end_layout
\begin_layout Description
-extract -
+extract - Extracts a common set of points for comparison
\end_layout
\begin_layout Description
-eval -
+eval - Evaluates field over a set of points
\end_layout
\begin_layout Description
-diff -
+project - Transforms one field into another field
\end_layout
\begin_layout Description
-project -
+compare - Compares two fields
\end_layout
-\begin_layout Subsection
+\begin_layout Subsubsection*
Auxiliary Commands
\end_layout
\begin_layout Description
-cube - simple discretization of the unit cube
+cube - Provides a simple discretization of the unit cube, for testing
\end_layout
\begin_layout Description
-rule - rules
+rules - Queries internal database for known quadrature rules
\end_layout
\begin_layout Description
-mesh - querying the database
+meshes - Queries internal database for known mesh objects
\end_layout
-\begin_layout Description
-index - updating index
-\end_layout
-
-\begin_layout Description
-shell - shell
-\end_layout
-
-\begin_layout Section
-Command Line Usage
-\end_layout
-
\begin_layout Subsection
Creating a new model
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
+\series bold
cigma create model.h5:/model
\end_layout
@@ -513,7 +433,7 @@
\end_layout
\begin_layout LyX-Code
- `-- variables
+ `-- variables
\end_layout
\begin_layout Standard
@@ -521,15 +441,31 @@
\end_layout
\begin_layout Subsection
-Importing the node coordinates
+Importing node coordinates
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma import --coordinates --input=file --output=model.h5:/model
+\series bold
+cigma import --coordinates
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --input=file
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=model.h5:/model
+\end_layout
+
\begin_layout Standard
The effect of this command is to create the following dataset
\end_layout
@@ -551,15 +487,31 @@
\end_layout
\begin_layout Subsection
-Importing the node connectivity
+Importing node connectivity information
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma import --connectivity --input=file --output=model.h5:/model
+\series bold
+cigma import --connectivity
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --input=file
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=model.h5:/model
+\end_layout
+
\begin_layout Standard
The effect of this command is to create the following dataset
\end_layout
@@ -584,12 +536,28 @@
Importing field data
\end_layout
-\begin_layout Paragraph
+\begin_layout LyX-Code
-\family typewriter
-cigma import --variable=velocity/0 --input=file --output=model.h5:/model
+\series bold
+cigma import --variable=velocity/0
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --input=file
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=model.h5:/model
+\end_layout
+
\begin_layout Standard
The above command reads the input file and creates the following groups
and datasets
@@ -628,40 +596,127 @@
\end_layout
\begin_layout Subsection
-Extracting integration points
+Creating a sample mesh
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma extract --rule=qr.h5:/path/to/rule --input=model.h5:/model --output=points.h5
-:/points --elements=10000
+\series bold
+cigma cube [ -t | -h ] file.h5
\end_layout
\begin_layout Standard
+The above command can create two kinds of meshes inside the file.h5, each
+ representing two different discretizations of the unit cube.
+\end_layout
+
+\begin_layout LyX-Code
+file.h5
+\end_layout
+
+\begin_layout LyX-Code
+|-- <cube-coordinates> [nno x 3]
+\end_layout
+
+\begin_layout LyX-Code
+|-- tetmodel
+\end_layout
+
+\begin_layout LyX-Code
+| `-- mesh
+\end_layout
+
+\begin_layout LyX-Code
+| |-- coordinates (symlink)
+\end_layout
+
+\begin_layout LyX-Code
+| `-- connectivity [nel x 4]
+\end_layout
+
+\begin_layout LyX-Code
+`-- hexmodel
+\end_layout
+
+\begin_layout LyX-Code
+ `-- mesh
+\end_layout
+
+\begin_layout LyX-Code
+ |-- coordinates (symlink)
+\end_layout
+
+\begin_layout LyX-Code
+ `-- connectivity [nel x 8]
+\end_layout
+
+\begin_layout Standard
+Note that the field information is still missing from this model.
+\end_layout
+
+\begin_layout Subsection
+Extracting set of integration points
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+cigma extract --rule=qr.h5:/path/to/rule
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --input=model.h5:/model
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=points.h5:/points
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --elements=10000
+\end_layout
+
+\begin_layout Standard
Given a quadrature rule and a mesh, we can map the quadrature points on
each reference element onto the actual domain and use these as a set of
common points on which to perform future comparisons.
\end_layout
\begin_layout Standard
-Memory usage can be controlled by using the --elements argument.
+Memory usage can be controlled by providing an appropriate argument to the
+ --elements command line option.
\end_layout
\begin_layout Subsection
-Extracting random set of points
+Extracting a random set of points
\end_layout
\begin_layout LyX-Code
\series bold
-cigma extract --random
+cigma extract --random
+\backslash
+
\end_layout
\begin_layout LyX-Code
\series bold
- --input=/path/to/model.h5:/model
+ --input=/path/to/model.h5:/model
+\backslash
+
\end_layout
\begin_layout LyX-Code
@@ -679,13 +734,28 @@
Evaluating a field on its quadrature points
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma eval --field=model.h5:/model/variables/velocity/0 --rule=qr.h5:/rule
- --output=values.h5
+\series bold
+cigma eval --field=model.h5:/model/variables/velocity/0
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --rule=qr.h5:/rule
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=values.h5
+\end_layout
+
\begin_layout Standard
Given a finite element field and a quadrature rule, this command extracts
the required quadrature
@@ -699,119 +769,383 @@
Evaluating a field on a given set of points
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma eval --field=model.h5:/model/variables/velocity/0 --input=points.h5:/points
- --output=values.h5
+\series bold
+cigma eval --field=model.h5:/model/variables/velocity/0
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --input=points.h5:/points
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=values.h5
+\end_layout
+
\begin_layout Standard
Given a finite element field and a common set of points,
\end_layout
\begin_layout Subsection
-Evalutating an external function on a set of points
+Evalutating an external field on given set of points
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma eval --field=/path/to/libfoo.so --input=model.h5:/model --output=file.h5
+\series bold
+cigma eval --field=/path/to/libfoo.so
+\backslash
+
\end_layout
+\begin_layout LyX-Code
+
+\series bold
+ --input=model.h5:/model
+\backslash
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\series bold
+ --output=values.h5
+\end_layout
+
\begin_layout Standard
If we know that our field has an analytic function representation,
\end_layout
\begin_layout Subsection
-Compare two fields
+Comparing two fields
\end_layout
\begin_layout LyX-Code
-cigma diff --first=field1.h5:/displacement/0 --second=field2.h5:/displacement/0
+
+\series bold
+cigma compare --first=values1.h5
+\backslash
+
\end_layout
\begin_layout LyX-Code
+\series bold
+ --second=values2.h5
+\backslash
+
\end_layout
\begin_layout LyX-Code
-cigma diff --first=model1.h5:/model/variables/velocity/0 --second=model2.h5:/model
-/variables/velocity/0
+
+\series bold
+ --output=errors.h5
\end_layout
-\begin_layout Subsection
-Create a sample mesh
+\begin_layout LyX-Code
+
\end_layout
-\begin_layout Paragraph*
+\begin_layout LyX-Code
-\family typewriter
-cigma cube file.h5
+\series bold
+cigma compare --first=field1.h5:/displ/0
+\backslash
+
\end_layout
-\begin_layout Standard
-Creates two models inside the file.h5
+\begin_layout LyX-Code
+
+\series bold
+ --second=field2.h5:/displ/0
+\backslash
+
\end_layout
\begin_layout LyX-Code
-file.h5
+
+\series bold
+ --output=errors.h5
\end_layout
\begin_layout LyX-Code
-|-- <cube-coordinates> [nno x 3]
+
\end_layout
\begin_layout LyX-Code
-|-- tetmodel
+
+\series bold
+cigma compare --first=field1.h5:/field/3
+\backslash
+
\end_layout
\begin_layout LyX-Code
-| `-- mesh
+
+\series bold
+ --second=/lib/libfoo.so
+\backslash
+
\end_layout
\begin_layout LyX-Code
-| |-- coordinates (symlink)
+
+\series bold
+ --output=errors.h5
\end_layout
\begin_layout LyX-Code
-| `-- connectivity [nel x 4]
+
\end_layout
\begin_layout LyX-Code
-`-- hexmodel
+
+\series bold
+cigma compare --first=model1.h5:/model/variables/velo/0
+\backslash
+
\end_layout
\begin_layout LyX-Code
- `-- mesh
+
+\series bold
+ --second=model2.h5:/model/variables/velo/0
+\backslash
+
\end_layout
\begin_layout LyX-Code
- |-- coordinates (symlink)
+
+\series bold
+ --output=errors.h5
\end_layout
\begin_layout LyX-Code
- `-- connectivity [nel x 8]
+
\end_layout
+\begin_layout Standard
+Finally, the compare command can take a variety of representations.
+ Based on the metadata defined by each object, we ...
+\end_layout
+
+\begin_layout Section
+Data Flow
+\end_layout
+
+\begin_layout Standard
+(TODO: Insert cigma-meshA-diagram.jpg here)
+\end_layout
+
\begin_layout Chapter
Numerical Results
\end_layout
\begin_layout Section
-Unit Cube and Verification
+Refinement Study on Unit Cube
\end_layout
+\begin_layout Standard
+Two studies:
+\end_layout
+
+\begin_layout Standard
+(Compare h-refinement vs.
+ p-refinement on discretized cube)
+\end_layout
+
+\begin_layout Standard
+(Deduce order of convergence from sequence of global errors)
+\end_layout
+
\begin_layout Section
-Complex Geometries
+Benchmark Study
\end_layout
+\begin_layout Standard
+(Description: Here, include comparison of two different models -- PyLith
+ vs.
+ GeoFEST on different element types)
+\end_layout
+
\begin_layout Section
+Okada Analytic Code
+\end_layout
+
+\begin_layout Standard
+(Description: Here, include comparison a field against the okada benchmark
+ code in the svn repository)
+\end_layout
+
+\begin_layout Section
Performance
\end_layout
+\begin_layout Standard
+(Description: analysis of time-complexity for a given resolution mesh.
+ provide measurements of space-complexity as well.
+ Mention spatial databases here? i.e., the need to index the location of each
+ element in order to speed up spatial queries)
+\end_layout
+
\begin_layout Chapter
+C Library API
+\end_layout
+
+\begin_layout Section
+Using Higher Order Shape Functions
+\end_layout
+
+\begin_layout Standard
+In order to accept a general finite element space,
+\end_layout
+
+\begin_layout LyX-Code
+struct fe_space {
+\end_layout
+
+\begin_layout LyX-Code
+int nsd;
+\end_layout
+
+\begin_layout LyX-Code
+int ndim;
+\end_layout
+
+\begin_layout LyX-Code
+int ndof;
+\end_layout
+
+\begin_layout LyX-Code
+shape_fn *N;
+\end_layout
+
+\begin_layout LyX-Code
+shape_fn *dN;
+\end_layout
+
+\begin_layout LyX-Code
+};
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+void fe_init();
+\end_layout
+
+\begin_layout LyX-Code
+void fe_jacobian(fe_space *fe, double *x, double *xi, double *J);
+\end_layout
+
+\begin_layout LyX-Code
+void fe_tabulate(fe_space *fe, double *xs, double npts, double *tab);
+\end_layout
+
+\begin_layout LyX-Code
+void fe_eval(fe_space *fe, double *dof, double *xi, double *val);
+\end_layout
+
+\begin_layout LyX-Code
+void fe_batch_eval(fe_space *fe, double *dof, double *tab, int npts, double
+ *vals);
+\end_layout
+
+\begin_layout Standard
+There are two builtin finite element spaces called tet4 and hex8.
+ The rest can be loaded dynamically from the following directories
+\end_layout
+
+\begin_layout LyX-Code
+$HOME/.cigma/fe/
+\end_layout
+
+\begin_layout LyX-Code
+/etc/cigma/fe/
+\end_layout
+
+\begin_layout Standard
+If you specify a function space called foo, cigma will search for libfoo.so
+ in the above directories, and call foo_init() to initialize any required
+ parameters
+\end_layout
+
+\begin_layout Section
+Comparing against an Analytic Solution
+\end_layout
+
+\begin_layout LyX-Code
+struct fn_space {
+\end_layout
+
+\begin_layout LyX-Code
+ int nsd;
+\end_layout
+
+\begin_layout LyX-Code
+ int ndim;
+\end_layout
+
+\begin_layout LyX-Code
+ eval_t *call;
+\end_layout
+
+\begin_layout LyX-Code
+ eval_t *batch_call;
+\end_layout
+
+\begin_layout LyX-Code
+};
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+The following functions are defined
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+void fn_init();
+\end_layout
+
+\begin_layout LyX-Code
+void fn_eval(fn_space *fn, double *x, double *val);
+\end_layout
+
+\begin_layout LyX-Code
+void fn_batch_eval(fn_space *fn, double *xs, int npts, double *vals);
+\end_layout
+
+\begin_layout LyX-Code
+void fn_fini();
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Chapter
\start_of_appendix
Text Input File Formats
\end_layout
@@ -909,7 +1243,7 @@
status open
\begin_layout Caption
-deal.II
+Linear Hexahedral Element
\end_layout
\begin_layout Standard
@@ -2549,16 +2883,115 @@
\end_layout
\begin_layout Chapter
-\begin_inset Formula $ $
+Quadrature Rules
+\end_layout
+
+\begin_layout Standard
+\noindent
+\begin_inset Graphics
+ filename quadrature-rule-diagram.jpg
+ lyxscale 25
+ scale 25
+ rotateOrigin leftBottom
+
\end_inset
+
+\begin_inset Formula \[
+\varphi_{K}^{e}\left(\vec{x}\left(\vec{\xi}\right)\right)\]
+
+\end_inset
+
+set of points
+\begin_inset Formula $\vec{q}_{i}$
+\end_inset
+
+ \InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+\InsetSpace ~
+
+\begin_inset Formula $Q=\left\{ 1,\,\ldots\,,\left|Q\right|\right\} $
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\noindent
+set of weights
+\begin_inset Formula $w_{1}$
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\noindent
+quadrature rule of degree
+\begin_inset Formula $\left|Q\right|$
+\end_inset
+
+ \InsetSpace ~
+(
+\begin_inset Formula $\left|Q\right|^{d}$
+\end_inset
+
+ points and weights)
+\end_layout
+
+\begin_layout LyX-Code
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+F\left(\xi\right),\rightarrow\int_{K_{ref}}\,\, F\left(\vec{\xi}\right)d\vec{\xi}=\begin{array}{c}
+\intop\intop\intop\\
+K_{ref}\end{array}\, F\left(\xi_{1},\xi_{2}\,,\xi_{3}\right)d\xi,\, d\xi_{2},\, d\xi_{3}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+=\sum_{i\epsilon Q}\, F\left(\vec{q}_{i}\right)\cdot w_{i}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+\int_{K_{e}}f\left(\vec{x}\right)d\vec{x}=\int_{K_{ref}}f\left(\vec{\xi}\right)\cdot\left|\mathrm{J^{-1}}\left(\vec{\xi}\right)\right|d\vec{\xi}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Formula \[
+=\sum_{i\epsilon Q}\left(f\left(\vec{q}_{i}\right)\left|\mathrm{J^{-1}\left(\vec{q}_{i}\right)}\right|\right)\cdot w_{i}\]
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Chapter
Benchmarks
\end_layout
\begin_layout Standard
-CIG has worked with Susanne Buiter at NGU to improve the benchmak specifications.
- Gale has been tested with relaxation of topography, extension, shortening,
- and subduction models.
+CIG has worked with
\end_layout
\begin_layout Chapter
More information about the cig-commits
mailing list