[cig-commits] r14794 - doc/cigma/manual

luis at geodynamics.org luis at geodynamics.org
Mon Apr 27 11:29:01 PDT 2009


Author: luis
Date: 2009-04-27 11:29:00 -0700 (Mon, 27 Apr 2009)
New Revision: 14794

Removed:
   doc/cigma/manual/appendix.lyx
   doc/cigma/manual/error_analysis.lyx
   doc/cigma/manual/examples.lyx
   doc/cigma/manual/formats.lyx
   doc/cigma/manual/installation.lyx
   doc/cigma/manual/integration.lyx
   doc/cigma/manual/interpolation.lyx
   doc/cigma/manual/introduction.lyx
   doc/cigma/manual/main2.lyx15
   doc/cigma/manual/nocover.lyx
   doc/cigma/manual/running.lyx
   doc/cigma/manual/workfile1.lyx
   doc/cigma/manual/workfile2.lyx
Log:
Remove old files.

Deleted: doc/cigma/manual/appendix.lyx
===================================================================
--- doc/cigma/manual/appendix.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/appendix.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,2263 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-Data Formats
-\end_layout
-
-\begin_layout Standard
-Earlier in Chapter 6, we discussed the file formats that Cigma understands.
- Here, we summarize for your convenience the dimensions of all the major
- data structures used in Cigma.
- How you access the data might change depending on the type of input or
- output file where you store the data values.
- The actual layout for each file format is discussed in Chapter 6.
- Currently recognized file extensions include 
-\family typewriter
-(*.dat)
-\family default
- for simple text files, 
-\family typewriter
-(*.h5)
-\family default
- for HDF5 files, 
-\family typewriter
-(*.vtk)
-\family default
- for legacy VTK files, 
-\family typewriter
-(*.vtu, *.vts, *.vtr)
-\family default
- for XML VTK files, and 
-\family typewriter
-(*.pvtu, *.pvts, *.pvtr)
-\family default
- for Parallel XML VTK files.
-\end_layout
-
-\begin_layout Section
-Notation
-\end_layout
-
-\begin_layout Standard
-Throughout this appendix we will refer to 
-\end_layout
-
-\begin_layout Section
-Mesh Coordinates
-\end_layout
-
-\begin_layout Standard
-On a mesh with 
-\begin_inset Formula $n_{no}$
-\end_inset
-
- node coordinates, which are specified on a global coordinate system, we
- have
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "100col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{no},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{no}},y_{n_{no}},z_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{no},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{no}},y_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Mesh Connectivity
-\end_layout
-
-\begin_layout Standard
-Mesh connectivity is specified at the element-block level.
- On a given block, we only consider a single element type, which allows
- us to store the global node ids into a contiguous array of integers.
- In general, if our block contains 
-\begin_inset Formula $k$
-\end_inset
-
- elements with 
-\begin_inset Formula $m$
-\end_inset
-
--degrees of freedom each, then the connectivity array defining our element
- block has the form
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(k,m)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Connectivity Data
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{11},n_{12},\ldots,n_{1m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{21},n_{22},\ldots,n_{2m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{k1},n_{k2},\ldots,n_{km}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For the element types defined in Cigma, the values for 
-\begin_inset Formula $m$
-\end_inset
-
- are as follows.
- Note that the total number of degrees of freedom depends on the rank of
- the specific function being represented.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tet4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-12
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-24
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tet10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-30
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-60
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-24
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-48
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-60
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-120
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-81
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-162
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Similarly for the 2-D elements, we have
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="3" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tri3
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-6
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-9
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-quad4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-12
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Field Variables
-\end_layout
-
-\begin_layout Standard
-A finite element solution basically corresponds to a list of values for
- each degree of freedom in each element.
- Since the shared nodes among adjacent elements have the same value, these
- 
-\end_layout
-
-\begin_layout Section
-Integration Rule
-\end_layout
-
-\begin_layout Standard
-As described in Chapter 4, an integration rule is specified by using the
- natural coordinate system of the reference element.
- 
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="5">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Weights: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Points: 
-\begin_inset Formula $(Q,n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Points: 
-\begin_inset Formula $(Q,2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Points: 
-\begin_inset Formula $(Q,3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Rule Definition
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{1}$
-\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 Plain Layout
-\begin_inset Formula $\vec{\xi}_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{1},\eta_{1}$
-\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 Plain Layout
-\begin_inset Formula $\xi_{1},\eta_{1},\zeta_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{\xi}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{2},\eta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{2},\eta_{2},\zeta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{\xi}_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{Q},\eta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{Q},\eta_{Q},\zeta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Shape Function Values
-\end_layout
-
-\begin_layout Standard
-As discussed in Chapter 7, in certain circumstances you may be able to provide
- your custom reference element by simply providing the appropriate 
-\begin_inset Formula $n$
-\end_inset
-
- shape function values at the expected integration points.
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="3">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Shape Function Values: 
-\begin_inset Formula $(n,Q)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Jacobian Determinant: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 1
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{1}),N_{2}(\vec{\xi}_{1}),\ldots,N_{n}(\vec{\xi}_{1})$
-\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 Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{1})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{2}),N_{2}(\vec{\xi}_{2}),\ldots,N_{n}(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 
-\begin_inset Formula $Q$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{Q}),N_{2}(\vec{\xi}_{Q}),\ldots,N_{n}(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Integration Points
-\end_layout
-
-\begin_layout Standard
-Given a mesh and an integration rule, we can map the integration points
- on each element into a possibly large set of global points.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Points: 
-\begin_inset Formula $(n_{pts},n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Points: 
-\begin_inset Formula $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Points: 
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1}$
-\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 Plain Layout
-\begin_inset Formula $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{pts}}y_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{pts}},y_{n_{pts}},z_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Function Values at Integration Points
-\end_layout
-
-\begin_layout Standard
-The result of an evaluation will depend on the rank of the function being
- evaluated, as indicated in the table below.
- Note that the fastest varying dimension of the array contains the values
- of the function at each point.
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Evaluated Quantity
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Resulting Array Shape
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Tensor
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Tensor
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},6)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Comparison Residuals
-\end_layout
-
-\begin_layout Standard
-Since our norm reduces integrals over cells to a single scalar value, the
- result of a comparison will result in a simple scalar array for each element
- block examined.
- The element blocks used belong to the integration mesh, which may differ
- from the associated mesh belonging to either function.
- Thus, for each element block containing 
-\begin_inset Formula $k$
-\end_inset
-
- cells, we have the output array
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(k,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Residual Value
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{k}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-These local residual values may be combined in the following form: 
-\begin_inset Formula \[
-\varepsilon_{block}=\sqrt{\varepsilon_{1}^{2}+\varepsilon_{2}^{2}+\cdots+\varepsilon_{k}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The final global residual may be obtained by simply summing over each element
- block in the integration mesh:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\varepsilon_{global}=\sqrt{\sum_{block}\varepsilon_{block}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Numerical Integration
-\end_layout
-
-\begin_layout Standard
-In order to calculate the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm integral from Chapter 3, we must resort to numerical integration.
- If we integrate over a mesh which does not match the underlying discretization
- of the functions being compared, you may need to increase the accuracy
- of the integration.
- In this chapter we give a brief overview of the quadrature rules available,
- and how you may create your own.
-\end_layout
-
-\begin_layout Standard
-In general, we may define an integration rule as a set of points with associated
- weights for which we may approximate an integration procedure by a simple
- weighed sum
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega}\ F(\vec{x})\ d\vec{x}=\sum_{q=1}^{Q}w_{q}F(\vec{x}_{q})+R\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-It is possible to integrate, but the remainder 
-\begin_inset Formula $R$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Gaussian Quadrature
-\end_layout
-
-\begin_layout Standard
-The general Gaussian quadrature rule with 
-\begin_inset Formula $Q$
-\end_inset
-
- integration points is given in Hughes, page 143,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}F(\xi)\ d\xi=\sum_{q=1}^{Q}w_{q}F(\xi_{q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-w_{i} & = & \frac{2}{(1-\xi_{i}^{2})P_{Q}'(\xi_{i})^{2}}\\
-R & = & \frac{2^{2Q+1}(Q!)^{4}}{(2Q+1)[(2Q)!]^{3}}F^{(2Q)}(\bar{\xi})\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-where 
-\begin_inset Formula $\xi_{i}$
-\end_inset
-
- is the 
-\begin_inset Formula $i$
-\end_inset
-
--th zero of the Legendre Polynomial 
-\begin_inset Formula $P_{Q}(\xi)$
-\end_inset
-
-, and 
-\begin_inset Formula $P_{Q}^{'}$
-\end_inset
-
- denotes the derivative of 
-\begin_inset Formula $P_{Q}$
-\end_inset
-
-.
- The Legendre polynomials are defined by
-\begin_inset Formula \[
-P_{Q}(\xi)=\frac{1}{2^{Q}Q!}\frac{d^{Q}}{d\xi^{Q}}(\xi^{2}-1)^{Q}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In multiple dimensions, we simply use a different one-dimensional Gaussian
- rule on each direction.
- For two dimensions, this becomes
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}\int_{-1}^{1}\ F(\xi,\eta)\ d\xi d\eta\cong\sum_{q_{1}=1}^{Q_{1}}\sum_{q_{2}=1}^{Q_{2}}w_{q_{1}}w_{q_{2}}F(\xi_{q_{1}},\eta_{q_{2}})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-and similarly for three dimensions
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}\int_{-1}^{1}\int_{-1}^{1}\ F(\xi,\eta,\zeta)\ d\xi d\eta d\zeta\cong\sum_{q_{1}=1}^{Q_{1}}\sum_{q_{2}=1}^{Q_{2}}\sum_{q_{3}=1}^{Q_{3}}w_{q_{1}}w_{q_{2}}w_{q_{3}}F(\xi_{q_{1}},\eta_{q_{2}},\zeta_{q_{3}})\]
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/error_analysis.lyx
===================================================================
--- doc/cigma/manual/error_analysis.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/error_analysis.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,962 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-\begin_inset CommandInset label
-LatexCommand label
-name "cha:Error-Analysis"
-
-\end_inset
-
-Error Analysis
-\end_layout
-
-\begin_layout Standard
-When solving differential equations representing physical systems of interest,
- we are often able to obtain a family of solutions by applying a variety
- of solution techniques.
- Sometimes an analytic method can be found, but most of the time we end
- up resorting to a numerical algorithm, such as the finite element method.
- Assessing the quality of these solutions is an important task, so we would
- like to develop a quantitative measure for indicating just how close our
- solutions approach the exact answer.
-\end_layout
-
-\begin_layout Standard
-The simplest possible quantitative measure of the difference between two
- distinct functions consists of taking the pointwise difference 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 the statistics of the
- resulting set of differences.
- However, the functions we want to compare may not be defined at a common
- set of points.
- Unless we are able to interpolate the two functions on an intermediate
- set of points, this simple pointwise measure becomes inapplicable.
-\end_layout
-
-\begin_layout Standard
-A very useful distance measure we can use is the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm, defined by the following integral
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\varepsilon=||u-v||_{L_{2}}=\sqrt{\int_{\Omega}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}}\end{equation}
-
-\end_inset
-
-where 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- are the two functions defined on a global coordinate system.
- This gives us a single global estimate 
-\begin_inset Formula $\varepsilon$
-\end_inset
-
- representing the distance between the two functions 
-\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 
-\series bold
-\emph on
-residual field
-\series default
-\emph default
- 
-\begin_inset Formula $\rho(\vec{x})=u(\vec{x})-v(\vec{x})$
-\end_inset
-
-.
- This measure is useful because it is well known that solutions obtained
- with the finite element method converge only in a weak sense, as an average
- over a geometric region.
- In the rest of this chapter we will discuss the details involved in evaluating
- the above integral.
-\end_layout
-
-\begin_layout Standard
-Another quantitative measure, which we won't discuss in this version of
- Cigma, is the energy norm.
- This norm is typically employed in 
-\emph on
-a posteriori
-\emph default
- error analysis and is problem dependent.
- In general, the residual field used under this norm is defined in terms
- of the linearized equation from which the solution was obtained.
- Yet another interesting possibility would be to 
-\end_layout
-
-\begin_layout Section
-Functions
-\end_layout
-
-\begin_layout Standard
-The functions that we discuss in this manual are assumed to be defined in
- a common region of space denoted by 
-\begin_inset Formula $\Omega$
-\end_inset
-
-.
- Elements of 
-\begin_inset Formula $\Omega$
-\end_inset
-
- are written as 
-\begin_inset Formula $\vec{x}$
-\end_inset
-
-, and the number of components in the corresponding value of 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
-, is said to be the 
-\series bold
-\emph on
-rank
-\series default
-\emph default
- of the function 
-\begin_inset Formula $f$
-\end_inset
-
-.
- Thus, 
-\emph on
-scalar functions
-\emph default
- have a rank of 1, 
-\emph on
-vector functions
-\emph default
- would have a rank of 2 or 3, and 
-\emph on
-tensor functions
-\emph default
- would have a rank of 6 or 9.
-\end_layout
-
-\begin_layout Section
-Integral Approximations
-\end_layout
-
-\begin_layout Standard
-In order to evaluate the integral for our 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm, we will need to define an integration mesh which partitions the common
- domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
- on which our two functions are defined.
- We can then use a numerical approximation, or 
-\series bold
-\emph on
-integration rule
-\series default
-\emph default
-, on each of the discrete cell elements 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
- of our partition.
- Each of these cell integrals of the continuous residual norm 
-\begin_inset Formula $||\rho(\vec{x})||^{2}$
-\end_inset
-
- can then be replaced by a weighed sum evaluated at a finite set of points.
- This integral will be valid up to a certain accuracy.
- In Chapter 5, we discuss in more detail how choose the location and values
- for the integration points and weights which give optimal accuracy.
-\end_layout
-
-\begin_layout Standard
-Thus, in general, an integration rule with 
-\begin_inset Formula $Q$
-\end_inset
-
- points and weights that allows us to integrate the scalar function 
-\begin_inset Formula $F(\vec{x})$
-\end_inset
-
- is given by the equation
-\begin_inset Formula \begin{equation}
-\int_{\Omega_{i}}\ F(\vec{x})\ d\vec{x}\approx\sum_{q=1}^{Q}F(\vec{X_{q}})W_{q}\end{equation}
-
-\end_inset
-
-where the integration points 
-\begin_inset Formula $\vec{X}_{q}$
-\end_inset
-
- and integration weights 
-\begin_inset Formula $W_{q}$
-\end_inset
-
- depend on the integration region 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-.
- As we will see in Chapter 7, one possibility is to pre-calculate these
- points and weights explicitly on a specific discretization.
- Thus, as discussed in more detail in Chapters 4 and 5, we will generally
- want to define a reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- which acts as a template for cells with the same geometric shape.
- We can achieve this by defining a 
-\series bold
-\emph on
-reference map
-\series default
-\emph default
- 
-\begin_inset Formula $\chi_{i}:\hat{\Omega}\to\Omega_{i}$
-\end_inset
-
- that describes how points in a specific cell 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
- originate from the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- In this sense, the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- is said to define a 
-\series bold
-\emph on
-local coordinate system
-\series default
-\emph default
- for the 
-\begin_inset Formula $i$
-\end_inset
-
--th cell 
-\begin_inset Formula $\Omega_{i}.$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Note that a given discretization may contain cells of different shapes,
- which would require us to define an appropriate number of reference cells
- for each type of cell.
- However, for the purposes of this manual we may restrict the discussions
- in this manuals, without any loss of generality, to discretizations consisting
- of a single geometric shape.
- (XXX: reword this last sentence)
-\end_layout
-
-\begin_layout Standard
-The advantage of this approach is readily apparent when one realizes that
- the integration points and weights can be calculated once and for all on
- the reference cell, and then reused for the other cells through the application
- of the corresponding reference map.
- In other words,
-\begin_inset Formula \begin{eqnarray*}
-\vec{X}_{q} & = & \chi_{i}(\vec{\xi}_{q})\\
-W_{q} & = & w_{q}J_{i}(\vec{\xi}_{q})\end{eqnarray*}
-
-\end_inset
-
-where 
-\begin_inset Formula $\vec{\xi}_{q}$
-\end_inset
-
- and 
-\begin_inset Formula $w_{q}$
-\end_inset
-
- are the optimal integration points and weights for the integration rule
- defined on the reference domain 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- Here, the factor 
-\begin_inset Formula $J_{i}(\vec{\xi})=\det\ \left|\frac{d\chi_{i}}{d\vec{\xi}}\right|$
-\end_inset
-
- is the Jacobian determinant of the transformation 
-\begin_inset Formula $\chi_{i}$
-\end_inset
-
-.
- Recall that the index 
-\begin_inset Formula $i$
-\end_inset
-
- corresponds to the 
-\begin_inset Formula $i$
-\end_inset
-
--th cell 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-, and the index 
-\begin_inset Formula $q$
-\end_inset
-
- ranges over the usual 
-\begin_inset Formula $q=1,\ldots,Q$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Interpolation Functions
-\end_layout
-
-\begin_layout Standard
-Our two functions 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
- and 
-\begin_inset Formula $v(\vec{x})$
-\end_inset
-
- are given in terms of the point
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
-, and are said to be defined on a 
-\series bold
-\emph on
-global coordinate system
-\series default
-\emph default
-.
- Based on our discussion in Section 3.1, we see that we only need to know
- the values of 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- at a finite set of global points in order to calculate an approximation
- to the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm of the residual field 
-\begin_inset Formula $\rho=u-v$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Specifically, given a function 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
- we must be able to calculate its values at exactly those integration points.
- If we know a formula or algorithm for 
-\begin_inset Formula $f$
-\end_inset
-
-, then our task is easy.
- Alternatively, these values can be given explicitly as a finite list.
- In all other cases, we will need an interpolation scheme that allows us
- to calculate 
-\begin_inset Formula $f$
-\end_inset
-
- on any intermediate points.
- This ability is also important because we may want to increase the accuracy
- of our norm by using more integration points, and thus we will need to
- be able to evaluate our function 
-\begin_inset Formula $f$
-\end_inset
-
- at the new points.
-\end_layout
-
-\begin_layout Standard
-In general, an interpolation scheme involves a set of known functions 
-\begin_inset Formula $\phi_{j}(\vec{x})$
-\end_inset
-
- that we can compute anywhere and a set of parameters 
-\begin_inset Formula $c_{j}$
-\end_inset
-
- that define how these known functions are combined.
- Usually, the relation between the parameters and the known functions is
- a linear combination, 
-\begin_inset Formula \begin{equation}
-f(\vec{x})=d_{1}\phi_{1}(\vec{x})+d_{2}\phi_{2}(\vec{x})+\cdots+d_{m}\phi_{m}(\vec{x})\end{equation}
-
-\end_inset
-
-where the parameters 
-\begin_inset Formula $d_{j}$
-\end_inset
-
-, with 
-\begin_inset Formula $j=1,\ldots,m$
-\end_inset
-
-, are also sometimes referred to as the 
-\series bold
-\emph on
-degrees of freedom
-\series default
-\emph default
- of the function 
-\begin_inset Formula $f$
-\end_inset
-
-.
- As described in Chapter 4, the functions 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
-, also known as 
-\series bold
-\emph on
-shape functions
-\series default
-\emph default
-, must satisfy a number of conditions.
- Because the choice of shape functions affects how well the true solution
- is represented, the convergence of the numerical method used to obtain
- the solution, the optimal choice of shape functions is very problem dependent.
-\end_layout
-
-\begin_layout Standard
-If we know the shape functions 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
- directly in terms of the global points 
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
-, they are said to form a 
-\series bold
-\emph on
-global interpolation scheme
-\series default
-\emph default
-, and we may use Eq X directly to find the values of 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
-, and we may refer to the 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
-as 
-\emph on
-global shape functions
-\emph default
-.
- Note that since we are working in the global coordinate system, we don't
- need the discretization of the domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
-.
- Examples of global shape functions include spherical harmonics, and ...
-\end_layout
-
-\begin_layout Standard
-Perhaps a more typical case is when 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
- is defined piecewise, on each discretization element 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-.
- Because these cells partition the original domain by definition, a given
- point in our domain will be found in one and only one cell, which will
- have a local definition.
- That is, for a particular 
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
- we will be able to find a unique cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-, for some index 
-\begin_inset Formula $e$
-\end_inset
-
-.
- We can refer to this as a 
-\series bold
-\emph on
-local interpolation scheme
-\series default
-\emph default
-.
-\end_layout
-
-\begin_layout Standard
-See Chapter 5, for more details on the specific interpolation schemes available
- in Cigma.
-\end_layout
-
-\begin_layout Section
-Global Error Measure
-\end_layout
-
-\begin_layout Standard
-In this section we show the formula used by Cigma to compute the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm of the residual field 
-\begin_inset Formula $\rho$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Suppose the domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
- into an appropriate set of cells 
-\begin_inset Formula $\Omega_{1},\Omega_{2},\ldots,\Omega_{n_{el}}$
-\end_inset
-
-, we can compute the global error 
-\begin_inset Formula $\varepsilon^{2}$
-\end_inset
-
- as a sum over localized cell contributions, 
-\begin_inset Formula $\varepsilon^{2}=\sum_{e}\varepsilon_{e}^{2}$
-\end_inset
-
-, where each cell residual 
-\begin_inset Formula $\varepsilon_{e}^{2}$
-\end_inset
-
- is given by
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{e}^{2} & = & \int_{\Omega_{e}}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In general, we won't be able to integrate each cell residual 
-\begin_inset Formula $\varepsilon_{e}^{2}$
-\end_inset
-
- exactly since either of the functions 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- may have an incompatible representation relative to the finite element
- space on each domain 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-.
- However, we can still calculate an approximation of each cell residual
- by applying an appropriate quadrature rule with a tolerable truncation
- error 
-\begin_inset CommandInset citation
-LatexCommand cite
-key "Encyclopaedia of Cubature Formulas 2005"
-
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Standard
-To obtain an approximation to the integral of a function 
-\begin_inset Formula $F(\vec{x})$
-\end_inset
-
- over a cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-, we simply apply the quadrature rule with weights 
-\begin_inset Formula $w_{e,1},w_{e,2},\ldots,w_{e,n_{Q}}$
-\end_inset
-
- and integration points 
-\begin_inset Formula $\vec{x}_{e,1},\vec{x}_{e,2},\ldots,\vec{x}_{e,n_{Q}}$
-\end_inset
-
- appropriate for the physical element 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega_{e}}\ F(\vec{x})\ d\vec{x}=\sum_{q=1}^{n_{Q}}w_{e,q}F(\vec{x}_{e,q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Applying this quadrature rule directly over the entire physical domain 
-\begin_inset Formula $\Omega=\cup\Omega_{e}$
-\end_inset
-
- gives us 
-\begin_inset Formula \[
-\int_{\Omega}\ F(\vec{x})\ d\vec{x}=\sum_{e=1}^{n_{el}}\sum_{q=1}^{n_{Q}}w_{e,q}F(\vec{x}_{e,q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For efficiency reasons, it is undesirable in finite element applications
- to perform calculations in a global coordinate system.
- To avoid duplication of work, shape function evaluations may be performed
- once on a reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- and then transformed back into the corresponding physical cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- as needed.
-\end_layout
-
-\begin_layout Standard
-To compute integrals of 
-\begin_inset Formula $F$
-\end_inset
-
- in a reference coordinate system, we need to apply a change of variables:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega_{e}}\ F(\vec{x})\ d\vec{x}=\int_{\hat{\Omega}}\ F(\vec{x}_{e}(\vec{\xi}))J_{e}(\vec{\xi})\ d\vec{\xi}\]
-
-\end_inset
-
-where 
-\color none
-the additional factor 
-\begin_inset Formula $J_{e}(\vec{\xi})=\det\left[\frac{d\vec{x}_{e}}{d\vec{\xi}}\right]$
-\end_inset
-
- is the Jacobian determinant of the reference map 
-\begin_inset Formula $\vec{x}_{e}(\vec{\xi}):\hat{\Omega}\to\Omega_{e}$
-\end_inset
-
-.
- This map describes how the physical points 
-\begin_inset Formula $\vec{x}\in\Omega_{e}$
-\end_inset
-
- are transformed from the reference points 
-\begin_inset Formula $\vec{\xi}\in\hat{\Omega}$
-\end_inset
-
-.
- Put another way, the inverse reference map 
-\color inherit
-
-\begin_inset Formula $\vec{\xi}=\vec{x}_{e}^{-1}(\vec{x})$
-\end_inset
-
- tells us how the physical domain 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- maps into the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-At this point, we can assume without loss of generality that every physical
- cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- can be derived from a single reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-, so that our quadrature rule becomes simply a set of weights 
-\begin_inset Formula $w_{1},\ldots,w_{n_{Q}}$
-\end_inset
-
- and points 
-\begin_inset Formula $\vec{\xi}_{1},\ldots,\vec{\xi}_{n_{Q}}$
-\end_inset
-
- over 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- After changing variables, we end up with the final form of the quadrature
- rule that we can use to integrate the global residual field:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\hat{\Omega}}\ F(\vec{x}_{e}(\vec{\xi}))J_{e}(\vec{\xi})\ d\vec{\xi}=\sum_{q=1}^{n_{Q}}w_{q}F(\vec{x}_{e}(\vec{\xi}_{q}))J_{e}(\vec{\xi}_{q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-If we let 
-\begin_inset Formula $F(\vec{x})=||u(\vec{x})-v(\vec{x})||^{2}$
-\end_inset
-
- in the above expression, we can find the cell residual contribution over
- 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- from
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{e}^{2} & = & \int_{\Omega_{e}}\ ||u(\vec{x})-v(\vec{x})||^{2}\ d\vec{x}\\
- & = & \int_{\hat{\Omega}}\ ||u(\vec{x}_{e}(\vec{\xi}))-v(\vec{x}_{e}(\vec{\xi}))||^{2}J_{e}(\vec{\xi})\ d\vec{\xi}\\
- & = & \sum_{q=1}^{\mathrm{n_{Q}}}w_{q}||u(\vec{x}_{e}(\vec{\xi}_{q}))-v(\vec{x}_{e}(\vec{\xi}_{q}))||^{2}J_{e}(\vec{\xi}_{q})\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The global error 
-\begin_inset Formula $\varepsilon=\sqrt{\sum_{e}\varepsilon_{e}^{2}}$
-\end_inset
-
- is then approximated by the expression
-\end_layout
-
-\begin_layout Standard
-\begin_inset Box Boxed
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "100text%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon & = & \sqrt{\sum_{e=1}^{\mathrm{n_{el}}}\sum_{q=1}^{\mathrm{n_{Q}}}w_{q}||u(\vec{x}_{e}(\vec{\xi}_{q}))-v(\vec{x}_{e}(\vec{\xi}_{q}))||^{2}J_{e}(\vec{\xi}_{q})}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-We use this final form to calculate the global and localized errors on arbitrary
- discretizations.
-\end_layout
-
-\begin_layout Section
-Comparing Residuals
-\end_layout
-
-\begin_layout Standard
-For comparing errors of different solutions, you can normalize the global
- error by the norm of the exact solution.
- For a family of solutions 
-\begin_inset Formula $u_{h}(\vec{x})$
-\end_inset
-
-, parametrized by the the maximum element size 
-\begin_inset Formula $h$
-\end_inset
-
- of the underlying discretization, and an exact solution 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
-, this normalized error is given by
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{rel} & = & \frac{||u-u_{h}||_{L_{2}}}{||u||_{L_{2}}}\\
- & = & \frac{\int_{\Omega}||u(\vec{x})-u_{h}(\vec{x})||^{2}d\vec{x}}{\int_{\Omega}||u(\vec{x})||^{2}d\vec{x}}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This normalized error can be interpreted as the average error in the physical
- quantity being evaluated, so that a value of 0.01 corresponds to a 1% averaged
- error.
-\end_layout
-
-\begin_layout Standard
-Even if the exact solution is not currently known, this normalized error
- may be used to test the accuracy between two or more numerical solutions,
- defined on successively refined meshes.
-\end_layout
-
-\begin_layout Section
-Convergence Rates
-\end_layout
-
-\begin_layout Standard
-Even if the exact solution 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
- is not known, but we have calculated a family of solutions 
-\begin_inset Formula $u_{h}(\vec{x})$
-\end_inset
-
- on discrete meshes, we may calculate a convergence rate by using the standard
- error estimate 
-\begin_inset Formula $||u-u_{h}||_{p}\leq Ch^{\alpha},$
-\end_inset
-
-where 
-\begin_inset Formula $C$
-\end_inset
-
- is independent of both 
-\begin_inset Formula $h$
-\end_inset
-
- and 
-\begin_inset Formula $u$
-\end_inset
-
-.
- This error bound holds problems
-\end_layout
-
-\begin_layout Section
-Uses in Benchmarking
-\end_layout
-
-\begin_layout Standard
-As we saw in Section 3.5, it is easier to calculate the convergence rate
- on a sequence of meshes if we have access to the exact solution.
- 
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/examples.lyx
===================================================================
--- doc/cigma/manual/examples.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/examples.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,487 +0,0 @@
-#LyX 1.5.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 276
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[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 false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-mynote{
-\end_layout
-
-\begin_layout Standard
-
-Here are the examples discussed in this section and the intended motivation
- for introducing them
-\end_layout
-
-\begin_layout Standard
-
-  * Strikeslip Benchmark (without gravity)
-\end_layout
-
-\begin_layout Standard
-
-    - PyLith vs PyLith (hex8, tet4 elts...higher order available?)
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate convergence order using sequence of meshes -- generated
- using cubit
-\end_layout
-
-\begin_layout Standard
-
-    - Analytic (okada) vs Pylith -- initial timestep
-\end_layout
-
-\begin_layout Standard
-
-    - Variables compared: displacement, velocity
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate vtk visualization techniques - cell-to-point filter, then
- isosurface
-\end_layout
-
-\begin_layout Standard
-
-    - Same case but with gravity?
-\end_layout
-
-\begin_layout Standard
-
-    - http://www.geodynamics.org/cig/workinggroups/short/workarea/benchmarks/
-\end_layout
-
-\begin_layout Standard
-
-  * Poisson solution on unit cube
-\end_layout
-
-\begin_layout Standard
-
-    - Analytic vs deal.II vs libMesh
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of quadratic elements vs.
- linear
-\end_layout
-
-\begin_layout Standard
-
-    - tet{4,10} convergence, hex{8,20,27} convergence -- where possible
-\end_layout
-
-\begin_layout Standard
-
-    - take a planar slice and plot differences there
-\end_layout
-
-\begin_layout Standard
-
-    - inter-element solution comparisons (tet4 vs hex8, tet10 vs.
- hex8)
-\end_layout
-
-\begin_layout Standard
-
-  * Cylinder viscoelastic extension
-\end_layout
-
-\begin_layout Standard
-
-    - Analytic (cylinder_extension.*.*) vs.
- GeoFEST(tet4) vs.
- PyLith (tet4,hex8)
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of predefined function
-\end_layout
-
-\begin_layout Standard
-
-    - Maxwell material (cylinder_extension.maxwell.{displacement,velocity,stress})
-\end_layout
-
-\begin_layout Standard
-
-    - Non-newtonian material (cylinder_extension.non_newtonian.{displacement,veloc
-ity,stress})
-\end_layout
-
-\begin_layout Standard
-
-  * Cylinder viscoelastic relaxation
-\end_layout
-
-\begin_layout Standard
-
-    - Analytic (cylinder_relaxation.*.*) vs.
- GeoFEST (tet4) vs.
- PyLith (tet4,hex8)
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of extract/eval -- on integration mesh
-\end_layout
-
-\begin_layout Standard
-
-    - Effect of varying the integration order
-\end_layout
-
-\begin_layout Standard
-
-    - Maxwell material (cylinder_relaxation.maxwell.{displacement,velocity,stress}
-)
-\end_layout
-
-\begin_layout Standard
-
-    - Non-newtonian material (cylinder_relaxation.non_newtonian.{displacement,velo
-city,stress})
-\end_layout
-
-\begin_layout Standard
-
-  * Gale Circular Inclusion benchmark
-\end_layout
-
-\begin_layout Standard
-
-    - Analytic (circular_inclusion.pressure) vs.
- Gale
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of the Parallel VTK Format (PVTS structured grid)
-\end_layout
-
-\begin_layout Standard
-
-    - limitations of FEM description (discontinuity near boundary of circle)
-\end_layout
-
-\begin_layout Standard
-
-    - need discontinuous elements, perhaps?
-\end_layout
-
-\begin_layout Standard
-
-  * Mantle Convection -- Cartesian
-\end_layout
-
-\begin_layout Standard
-
-    - CitcomCU convergence order
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of Parallel VTK Format (PVTR files)
-\end_layout
-
-\begin_layout Standard
-
-    - http://www.geodynamics.org/cig/workinggroups/mc/workarea/benchmark/
-\end_layout
-
-\begin_layout Standard
-
-  * Mantle Convection -- Spherical
-\end_layout
-
-\begin_layout Standard
-
-    - CitcomS vs HC
-\end_layout
-
-\begin_layout Standard
-
-    - Demonstrate use of global basis functions (spherical harmonics)
-\end_layout
-
-\begin_layout Standard
-
-  * MADDS
-\end_layout
-
-\begin_layout Standard
-
-    - Run SpecRidge example
-\end_layout
-
-\begin_layout Standard
-
-    - Compare spectral solution against higher order elements
-\end_layout
-
-\begin_layout Standard
-
-    - http://www.geodynamics.org/cig/workinggroups/magma/workarea/benchmark/
-\end_layout
-
-\begin_layout Standard
-
-}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-The core concept for this chapter is to show-case specific use cases for
- cigma.
-\end_layout
-
-\begin_layout Standard
-All the necessary data should be available in the 
-\family typewriter
-examples/
-\family default
- directory.
-\newline
-
-\end_layout
-
-\begin_layout Standard
-The following points should be emphasized for each example:
-\end_layout
-
-\begin_layout Enumerate
-Problem definition and method used to obtain the solutions.
-\end_layout
-
-\begin_layout Enumerate
-Pre-processing step for preparing the data
-\end_layout
-
-\begin_layout Enumerate
-Cigma command line usage
-\end_layout
-
-\begin_layout Enumerate
-Post-processing step for visualizing the resulting residuals, or for calculating
- the required convergence rate.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Examples
-\end_layout
-
-\begin_layout Section
-Strikeslip Benchmark
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Standard
-Reference: Taken from pylith.pdf page 123.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This benchmark problem computes the viscoelastic (Maxwell) relaxation of
- stresses from a single, finite, strike-slip earthquake in 3D without gravity.
- Dirichlet boundary conditions equal to the analytical elastic solution
- are imposed on the sides of a cube with sides of length 24 km.
- Anti-plane strain boundary conditions are imposed at 
-\begin_inset Formula $y=0$
-\end_inset
-
-, so the solution is equivalent to that for a domain with a 48 km length
- in the 
-\begin_inset Formula $y$
-\end_inset
-
- direction.
- In the initial time-step, we can use the analytical solution both to apply
- the boundary conditions, and to compare against the numerically-computed
- elastic solution.
-\end_layout
-
-\begin_layout Subsection
-Problem Description
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-Do we need a subsection? Try this, but use a single section for the rest
- of examples.
- Settle into whichever style you like better.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Figure 8.X refers to the 
-\end_layout
-
-\begin_layout Section
-Cylinder Extension
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-Purpose: Compares solutions from physical problem obtained using two different
- codes, and checked against actual analytical solution.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This benchmark problem computes the viscoelastic displacements and velocities
- resulting from extending a unit cylinder.
- 
-\end_layout
-
-\begin_layout Section
-Cylinder Relaxation
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-Purpose: Compares solutions from physical problem obtained using two different
- codes, and checked against known analytical solution
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This problem is similar to the one in the previous section, where we have
- taken.
-\end_layout
-
-\begin_layout Section
-Circular Inclusion
-\end_layout
-
-\begin_layout Standard
-Description from gale
-\end_layout
-
-\begin_layout Section
-Mantle Convection on Rectangular Box
-\end_layout
-
-\begin_layout Standard
-Given the benchmark files in /examples/mc1/
-\end_layout
-
-\begin_layout Section
-Mantle Convection on a Sphere
-\end_layout
-
-\begin_layout Standard
-Here we use the output from CitcomS and the spherical.
-\end_layout
-
-\begin_layout Section
-Waves
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Standard
-Example of a 1-D comparison.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/formats.lyx
===================================================================
--- doc/cigma/manual/formats.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/formats.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,2689 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-Data and File Formats
-\end_layout
-
-\begin_layout Standard
-As we've seen in the previous chapters, there are a number of data objects
- involved in making any particular comparison.
- Here, we discuss the variety of formats available, as well as the layout
- within the corresponding data file.
-\end_layout
-
-\begin_layout Section
-Data Formats
-\end_layout
-
-\begin_layout Standard
-The basic data structure is a two-dimensional array of values, stored in
- a contiguous format as shown below 
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(m,n)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Data
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $a_{11},a_{12},\ldots,a_{1n}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $a_{21},a_{22},\ldots,a_{2n}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\cdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $a_{m1},a_{m2},\ldots,a_{mn}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-The second index in this array varies the fastest, so that data often referenced
- together remains together in memory as well.
-\end_layout
-
-\begin_layout Subsection
-Node Coordinates
-\end_layout
-
-\begin_layout Standard
-One of the more efficient
-\end_layout
-
-\begin_layout Standard
-On a mesh with 
-\begin_inset Formula $n_{no}$
-\end_inset
-
- node coordinates, which are specified on a global coordinate system, we
- have.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "100col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{no},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{no}},y_{n_{no}},z_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Plain Layout
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{no},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{no}},y_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Element Connectivity
-\end_layout
-
-\begin_layout Standard
-Mesh connectivity is specified at the element-block level.
- On a given block, we only consider a single element type, which allows
- us to store the global node ids into a contiguous array of integers.
- Multiple blocks are specified separately, and they all reference the same
- node ids into the node coordinates table.
-\end_layout
-
-\begin_layout Standard
-In general, if our block contains 
-\begin_inset Formula $k$
-\end_inset
-
- elements with 
-\begin_inset Formula $m$
-\end_inset
-
--degrees of freedom each, then the connectivity array defining our element
- block has the form
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(k,m)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Connectivity Data
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{11},n_{12},\ldots,n_{1m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{21},n_{22},\ldots,n_{2m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $n_{k1},n_{k2},\ldots,n_{km}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For the element types defined in Cigma, the values for 
-\begin_inset Formula $m$
-\end_inset
-
- are as follows.
- Note that the total number of degrees of freedom depends on the rank of
- the specific function being represented.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tet4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-12
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-24
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tet10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-30
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-60
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-24
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-48
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-60
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-120
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-hex27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-81
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-162
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Similarly for the 2-D elements, we have
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="3" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-tri3
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-6
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-9
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-quad4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-12
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Field Variables
-\end_layout
-
-\begin_layout Standard
-A field variable represents one of the functions that we can evaluate, and
- is typically stored over a series of timesteps.
- The data for a field variable consists of snapshots through time, which
- are stored as separate arrays.
- A value for each degree of freedom is provided on the global list of nodes
- in the mesh.
-\end_layout
-
-\begin_layout Subsection
-Shape Function Values
-\end_layout
-
-\begin_layout Standard
-In certain circumstances you may be able to provide your custom reference
- element by simply providing the appropriate 
-\begin_inset Formula $n$
-\end_inset
-
- shape function values to be used at the expected integration points.
- This is most useful when you are using the same mesh for both the integration
- mesh and the array.
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="3">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Shape Function Values: 
-\begin_inset Formula $(n,Q)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Jacobian Determinant: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 1
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{1}),N_{2}(\vec{\xi}_{1}),\ldots,N_{n}(\vec{\xi}_{1})$
-\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 Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{1})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{2}),N_{2}(\vec{\xi}_{2}),\ldots,N_{n}(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Integration Point 
-\begin_inset Formula $Q$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $N_{1}(\vec{\xi}_{Q}),N_{2}(\vec{\xi}_{Q}),\ldots,N_{n}(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $J(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Integration Rule
-\end_layout
-
-\begin_layout Standard
-As described in Chapter 4, an integration rule is specified by a list of
- points and associated weights.
- The points are given on natural coordinate system of the reference element.
- 
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="5">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Weights: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Points: 
-\begin_inset Formula $(Q,n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Points: 
-\begin_inset Formula $(Q,2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Points: 
-\begin_inset Formula $(Q,3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Rule Definition
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{1}$
-\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 Plain Layout
-\begin_inset Formula $\vec{\xi}_{1}$
-\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 Plain Layout
-\begin_inset Formula $\xi_{1},\eta_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{1},\eta_{1},\zeta_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{\xi}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{2},\eta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{2},\eta_{2},\zeta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $w_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{\xi}_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{Q},\eta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\xi_{Q},\eta_{Q},\zeta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Integration Points and Values
-\end_layout
-
-\begin_layout Standard
-Given a mesh and an integration rule, we can map the integration points
- on each element into a possibly large set of global points.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<column alignment="center" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Points: 
-\begin_inset Formula $(n_{pts},n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Points: 
-\begin_inset Formula $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Points: 
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Coordinates
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{1},y_{1}$
-\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 Plain Layout
-\begin_inset Formula $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vec{x}_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{pts}}y_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $x_{n_{pts}},y_{n_{pts}},z_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-The result of an evaluation will depend on the rank of the function being
- evaluated, as indicated in the table below.
- Note that the fastest varying dimension of the array contains the components
- of the function value at each point.
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Evaluated Quantity
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Resulting Array Shape
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-2-D Tensor
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-3-D Tensor
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(n_{pts},6)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Comparison Residuals
-\end_layout
-
-\begin_layout Standard
-Since our norm reduces integrals over cells to a single scalar value, the
- result of a comparison will result in a simple scalar array for each element
- block examined.
- Note that element blocks used in the integration process belong to the
- integration mesh, which may differ from the associated mesh to either function.
-\end_layout
-
-\begin_layout Standard
-Thus, for each element block containing 
-\begin_inset Formula $k$
-\end_inset
-
- cells, we have the output array
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $(k,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Residual Value
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-\begin_inset Formula $\varepsilon_{k}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-These residual values may be combined in the following form: 
-\begin_inset Formula \[
-\varepsilon_{block}=\sqrt{\varepsilon_{1}^{2}+\varepsilon_{2}^{2}+\cdots+\varepsilon_{k}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The final global residual norm maybe obtained by simply summing over all
- element blocks that partition the domain of interest:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\varepsilon_{global}=\sqrt{\sum_{block}\varepsilon_{block}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-File Formats
-\end_layout
-
-\begin_layout Standard
-A number of file formats are supported for storing and retrieving the above
- data structures to and from disk.
- The following file extensions are used for these purposes:
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" 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" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-File Format
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Recognized Extensions
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-HDF5
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-*.h5
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-VTK
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-*.vtk
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-XML VTK
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-*.vtu, *.vts, *.vtr
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Parallel XML VTK
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-*.pvtu, *.pvts, *.pvtr
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Text
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-*.txt, *.dat
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Input Files
-\end_layout
-
-\begin_layout Standard
-In Section 1.1, we examined what kinds of objects we will be accessing, so
- now let's discuss the actual layout in the files in which these objects
- will be stored.
-\end_layout
-
-\begin_layout Subsection
-HDF5
-\end_layout
-
-\begin_layout Standard
-HDF5 files are binary files encoded in a data format designed to store large
- amounts of scientific data in a portable and self-describing way.
-\end_layout
-
-\begin_layout Standard
-The internal organization of a typical HDF5 file consists of a hierarchical
- structure similar to a UNIX file system.
- Two types of primary objects, 
-\emph on
-groups
-\emph default
- and 
-\emph on
-datasets
-\emph default
-, 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.
- In a sense, datasets are analogous to files in a traditional filesystem,
- and groups are analagous to folders.
- One important difference, however, is that you can attach supporting metadata
- to both kinds of objects.
- The metadata objects are called 
-\emph on
-attribute
-\emph default
-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
-In Cigma you may always provide an explicit path to every dataset, so you
- have a fair amount of flexibility for how you organize your datasets inside
- HDF5 files.
- For example, a typical Cigma HDF5 file could have 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
-        |__ temperature
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00000  [nno x 1]
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00010  [nno x 1]
-\end_layout
-
-\begin_layout LyX-Code
-        |   
-\backslash
-...
-\end_layout
-
-\begin_layout LyX-Code
-        |__ displacement
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00000  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00010  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-        |   
-\backslash
-...
-\end_layout
-
-\begin_layout LyX-Code
-        
-\backslash
-__ velocity
-\end_layout
-
-\begin_layout LyX-Code
-            |__ step00000  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-            |__ step00010  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-            
-\backslash
-...
-\end_layout
-
-\begin_layout Standard
-Generally, Cigma will only require you to specify the path to a specific
- field dataset.
- If a small amount of metadata is present in your field dataset, the rest
- of the required information, such as which mesh and finite elements to
- use, will be deduced from that metadata.
-\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
-\end_layout
-
-\begin_layout Standard
-Note that while you typically provide a path (or name) for every dataset,
- this is not necessary when specifying a VTK mesh, since this data is taken
- from the special Points and Cells arrays, which you cannot rename.
- However, you will still need to provide a name when referring to the field
- coefficients, which are assumed to be stored as Point Data in the input
- VTK file.
-\end_layout
-
-\begin_layout Standard
-For more information, you may want to refer to Visualization ToolKit's File
- Formats 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.vtk.org/pdf/file-formats.pdf
-\end_layout
-
-\end_inset
-
- document.
- 
-\end_layout
-
-\begin_layout Subsection
-Text
-\end_layout
-
-\begin_layout Standard
-The text files we use in Cigma consist of a simple list of numbers in ASCII
- format whose layout corresponds exactly to the simple array layout discussed
- earlier in Section 1.1.
- The first line of the file contains the dimensions of the array, just two
- integers separated by whitespace.
- The rest of the file, describing the array data, must contain as many numbers
- as the product of the two dimensions given in the first line.
- These numbers are formatted as integer or floating point, depending on
- context, and are all separated by whitespace.
-\end_layout
-
-\begin_layout Standard
-Some restrictions apply when providing data in text format, mostly because
- you can only specify a single element block in a text file containing connectiv
-ity information.
- Operations involving a larger number of blocks must use data in the format
- described in Section 1.3.1.
-\end_layout
-
-\begin_layout Standard
-Another point worthy of mention is that arrays must be two-dimensional,
- so two integers are always expected in the first line.
- When specifying a one-dimensional array, such as a list of weights correspondin
-g to an integration rule, one of the array dimensions must be 1.
-\end_layout
-
-\begin_layout Section
-Output Files
-\end_layout
-
-\begin_layout Standard
-Depending on the particular operation you perform, there are three different
- kinds of output files.
- The output format for residuals consists simply of a list of scalars for
- each element in the discretization, stored using the legacy VTK file format
- in the Cell Data section of the output file.
- Note that this output consists of the squared values of the local residuals,
- so further post-processing will be necessary.
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/installation.lyx
===================================================================
--- doc/cigma/manual/installation.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/installation.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,595 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\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 CIG Computational Science Mailing List 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-cig-cs at geodynamics.org
-\end_layout
-
-\end_inset
-
-.
- You can subscribe to the 
-\family typewriter
-cig-cs
-\family default
- mailing list and view archived discussions at the CIG Mail Lists web page
- 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-geodynamics.org/cig/lists
-\end_layout
-
-\end_inset
-
-.
- If you encounter any bugs or have problems installing Cigma, please submit
- a report to the CIG Bug Tracker 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-geodynamics.org/bugs
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Installing from Source
-\end_layout
-
-\begin_layout Standard
-To install Cigma, download the source package from the CIG Cigma web page
- 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-geodynamics.org/cig/software/packages/cs/cigma
-\end_layout
-
-\end_inset
-
-.
- You will need the GNU C++ compiler for this step.
- The Boost, HDF5, and VTK libraries, described later in this section, are
- also required components.
-\end_layout
-
-\begin_layout Standard
-After installing the necessary dependencies, simply unpack the source tar
- file and issue the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz cigma-1.0.0.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd cigma-1.0.0
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --with-boost=$BOOST_PREFIX
-\end_layout
-
-\begin_layout LyX-Code
-              --with-hdf5=$HDF5_PREFIX 
-\end_layout
-
-\begin_layout LyX-Code
-              --with-vtk=$VTK_PREFIX 
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-Both HDF5 and VTK prefixes are required if you have installed these libraries
- in a custom location.
- After these steps are complete, you should be able to run the 
-\family typewriter
-cigma
-\family default
- binary.
-\end_layout
-
-\begin_layout Subsection
-Boost
-\end_layout
-
-\begin_layout Standard
-The Boost C++ libraries are used in Cigma for parsing command-line options,
- ensuring cross-platform access to the filesystem, and providing Python
- bindings to certain Cigma C++ functions and classes.
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz boost_1_35_0.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd boost_1_35_0
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-Without a custom installation prefix, Boost will target your 
-\family typewriter
-/usr/local
-\family default
- directory.
-\end_layout
-
-\begin_layout Subsection
-HDF5
-\end_layout
-
-\begin_layout Standard
-The Hierarchical Data Format (HDF5) library is available for download from
- The HDF Group 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-hdfgroup.org/HDF5
-\end_layout
-
-\end_inset
-
-.
- Binaries can be obtained at 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-hdfgroup.org/HDF5/release/obtain5.html
-\end_layout
-
-\end_inset
-
-.
- To install from source, download the latest stable 1.6 version of this library
- (1.6.7, for example) and issue the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz hdf5-1.6.7.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd hdf5-1.6.7
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/hdf5/1.6.7
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-Without the custom prefix, this installation procedure will target your
- 
-\family typewriter
-/usr
-\family default
- directory.
-\end_layout
-
-\begin_layout Subsection
-VTK
-\end_layout
-
-\begin_layout Standard
-The Visualization Toolkit (VTK) library is a popular open source graphics
- library for scientific visualizations.
- We recommend that you obtain the binaries from a package manager, making
- sure to install the associated development headers along with the library.
- The source for the VTK library is available from Kitware, Inc.
- 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.vtk.org/get-software.php
-\end_layout
-
-\end_inset
-
-.
- If you decide to compile VTK from source, you will also need the CMake
- build environment, available from CMake 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-cmake.org
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-After downloading the source package, you can issue the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz vtk-5.0.4.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd VTK
-\end_layout
-
-\begin_layout LyX-Code
-$ mkdir build
-\end_layout
-
-\begin_layout LyX-Code
-$ cd build
-\end_layout
-
-\begin_layout LyX-Code
-$ ccmake ..
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-You can set the installation prefix during the 
-\family typewriter
-ccmake
-\family default
- step above, which defaults to your 
-\family typewriter
-/usr/local
-\family default
- directory.
-\end_layout
-
-\begin_layout Section
-Additional Software (optional)
-\end_layout
-
-\begin_layout Standard
-The following software packages are not strictly required, but are listed
- here for completeness since they are used by various utility scripts included
- in the Cigma source tree.
- These utilities are meant for creating and manipulating Cigma input/output
- files.
- We include a short description for how we use these software packages in
- our utility scripts and how they depend on each other, so that you can
- decide which of these to install.
- You should be able to find binary packages for each of these Python modules
- in the respective project home pages.
- Note that you will need a C and Fortran compiler to install these from
- source, as well as the appropriate libraries and development headers.
-\end_layout
-
-\begin_layout Subsection
-NumPy
-\end_layout
-
-\begin_layout Standard
-NumPy is a Python module which adds support for large multi-dimensional
- arrays and matrices, and is available for download from the NumPy Home
- Page 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-numpy.scipy.org 
-\end_layout
-
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Standard
-To install this extension module from source, download it and issue the
- following command in the NumPy source directory
-\end_layout
-
-\begin_layout LyX-Code
-$ python setup.py install
-\end_layout
-
-\begin_layout Standard
-To verify the installation, the command `
-\family typewriter
-import numpy
-\family default
-' should run successfully from within your standard Python interpreter shell.
-\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 files needed by Cigma.
- PyTables is available for download from PyTables 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.pytables.org
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-To install this extension from source, download the latest stable version
- (currently 2.0.2) and issue the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz pytables-2.0.2
-\end_layout
-
-\begin_layout LyX-Code
-$ cd pytables-2.0.2
-\end_layout
-
-\begin_layout LyX-Code
-$ python setup.py install
-\end_layout
-
-\begin_layout Standard
-To verify the installation, the command `
-\family typewriter
-import tables
-\family default
-' should run successfully from within your standard Python interpreter shell.
-\end_layout
-
-\begin_layout Subsection
-ScientificPython
-\end_layout
-
-\begin_layout Standard
-The ScientificPython module is a Python library for common tasks in scientific
- computing.
- Primarily, we use it to convert the ExodusII mesh files generated by the
- Sandia National Laboratories CUBIT package.
- Prior to installing this Python module, you must also install the NetCDF
- development libraries and headers in order for the Scientific.IO.NetCDF module
- to work properly.
-\end_layout
-
-\begin_layout Standard
-ScientificPython is available for download from 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-dirac.cnrs-orleans.fr/plone/software/scientificpython
-\end_layout
-
-\end_inset
-
-.
- To install this extension from source, download the latest version and
- proceed as follows:
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz ScientificPython-2.x.y.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd ScientificPython-2.x.y
-\end_layout
-
-\begin_layout LyX-Code
-$ python setup.py install
-\end_layout
-
-\begin_layout Standard
-To test whether the Scientific.IO.NetCDF module was installed correctly, you
- can run `
-\family typewriter
-import Scientific.IO.NetCDF
-\family default
-' from within your standard Python interpreter shell.
-\end_layout
-
-\begin_layout Subsection
-SciPy
-\end_layout
-
-\begin_layout Standard
-SciPy is a Python module for use in mathematics, science, and engineering.
- It contains algorithms for optimization, linear algebra, and other common
- scientific tasks.
- SciPy is available for download from 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-scipy.org
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsection
-FIAT
-\end_layout
-
-\begin_layout Standard
-The Finite Element Automatic Tabulator (FIAT) Python module supports generation
- of arbitrary order instances of the Lagrange elements, as well as arbitrary
- order instances of the Jacobi-type quadrature rules on the same element
- shapes.
- We can also use it to evaluate the shape function values at the required
- integration points.
-\end_layout
-
-\begin_layout Standard
-FIAT is available from The FEniCS Project 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.fenics.org/wiki/FIAT
-\end_layout
-
-\end_inset
-
-.
- To install this module, download it and issue the following command inside
- the FIAT source directory:
-\end_layout
-
-\begin_layout LyX-Code
-$ python setup.py install
-\end_layout
-
-\begin_layout Standard
-You should now be able to run `
-\family typewriter
-import FIAT
-\family default
-' from within your standard Python interpreter shell.
-\end_layout
-
-\begin_layout Subsection
-HDFView
-\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 group hierarchy, adding new datasets,
- and modifying or deleting existing datasets, or altering metadata on groups
- and datasets.
- You can download it from the HDFView home page 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-hdf.ncsa.uiuc.edu/hdf-java-html/hdfview
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/integration.lyx
===================================================================
--- doc/cigma/manual/integration.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/integration.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,393 +0,0 @@
-#LyX 1.5.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 276
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[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 false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-mynote{
-\end_layout
-
-\begin_layout Standard
-
-Go over numerical integration in 2d and 3d.
-\end_layout
-
-\begin_layout Standard
-
-Required order of numerical integration.
-\end_layout
-
-\begin_layout Standard
-
-Give references to defining your own points here.
- Explain how to use the scripts here.
-\end_layout
-
-\begin_layout Standard
-
-For each element, give the default quadrature rule employed and its order
- of accuracy.
-\end_layout
-
-\begin_layout Standard
-
-Give more examples of quadrature rules.
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-Mention tabulation of shape function values here.
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-
-References to mention here:
-\end_layout
-
-\begin_layout Standard
-
-  FIAT homepage
-\end_layout
-
-\begin_layout Standard
-
-  FILIPPA mathematica notebooks
-\end_layout
-
-\begin_layout Standard
-
-  Encyclopedia of Cubature Formulas (url?)
-\end_layout
-
-\begin_layout Standard
-
-}
-\end_layout
-
-\end_inset
-
-
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-The core concepts to get across in this chapter are the following:
-\end_layout
-
-\begin_layout Enumerate
-Each element in Cigma is assigned a default quadrature rule
-\end_layout
-
-\begin_layout Enumerate
-Explain briefly how quadrature rules are obtained (product rules)
-\end_layout
-
-\begin_layout Enumerate
-Error bound on integration (dependent on the discretization size h, and
- the order of integration q).
-\end_layout
-
-\begin_layout Enumerate
-How to obtain more quadrature rules (encyclopedia website, FIAT, mathematica
- scripts -- don't forget to mention caveat about using rules that use different
- reference cells -- points transform according to map, while weights are
- multiplied by the appropriate jacobian factor).
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Numerical Integration
-\end_layout
-
-\begin_layout Standard
-In order to calculate the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm integral from Chapter 3, we must resort to numerical integration.
- If we integrate over a mesh which does not match the underlying discretization
- of the functions being compared, you may need to increase the accuracy
- of the integration.
- In this chapter we give a brief overview of the quadrature rules available,
- and how you may create your own.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-Define integration rule.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In general, we may define an integration rule as a set of points with associated
- weights for which we may approximate an integration procedure by a simple
- weighed sum
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega}\ F(\vec{x})\ d\vec{x}=\sum_{q=1}^{Q}w_{q}F(\vec{x}_{q})+R\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-It is possible to integrate, but the remainder 
-\begin_inset Formula $R$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Gaussian Quadrature
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Standard
-Hughes, pg 143
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The general Gaussian quadrature rule with 
-\begin_inset Formula $Q$
-\end_inset
-
- integration points is given in Hughes, page 143,
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}F(\xi)\ d\xi=\sum_{q=1}^{Q}w_{q}F(\xi_{q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-w_{i} & = & \frac{2}{(1-\xi_{i}^{2})P_{Q}'(\xi_{i})^{2}}\\
-R & = & \frac{2^{2Q+1}(Q!)^{4}}{(2Q+1)[(2Q)!]^{3}}F^{(2Q)}(\bar{\xi})\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-where 
-\begin_inset Formula $\xi_{i}$
-\end_inset
-
- is the 
-\begin_inset Formula $i$
-\end_inset
-
--th zero of the Legendre Polynomial 
-\begin_inset Formula $P_{Q}(\xi)$
-\end_inset
-
-, and 
-\begin_inset Formula $P_{Q}^{'}$
-\end_inset
-
- denotes the derivative of 
-\begin_inset Formula $P_{Q}$
-\end_inset
-
-.
- The Legendre polynomials are defined by
-\begin_inset Formula \[
-P_{Q}(\xi)=\frac{1}{2^{Q}Q!}\frac{d^{Q}}{d\xi^{Q}}(\xi^{2}-1)^{Q}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In multiple dimensions, we simply use a different one-dimensional Gaussian
- rule on each direction.
- For two dimensions, this becomes
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}\int_{-1}^{1}\ F(\xi,\eta)\ d\xi d\eta\cong\sum_{q_{1}=1}^{Q_{1}}\sum_{q_{2}=1}^{Q_{2}}w_{q_{1}}w_{q_{2}}F(\xi_{q_{1}},\eta_{q_{2}})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-and similarly for three dimensions
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{-1}^{1}\int_{-1}^{1}\int_{-1}^{1}\ F(\xi,\eta,\zeta)\ d\xi d\eta d\zeta\cong\sum_{q_{1}=1}^{Q_{1}}\sum_{q_{2}=1}^{Q_{2}}\sum_{q_{3}=1}^{Q_{3}}w_{q_{1}}w_{q_{2}}w_{q_{3}}F(\xi_{q_{1}},\eta_{q_{2}},\zeta_{q_{3}})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Quadrilaterals and Hexahedra
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Standard
-Since these two are very similar, keep them together.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For the reference quadrilateral and hexahedral elements, we can use the
- 
-\end_layout
-
-\begin_layout Standard
-For quadrilaterals, we use the same reference region 
-\begin_inset Formula $[-1,1]\times[-1,1]$
-\end_inset
-
- as in Section 4.X.
-\end_layout
-
-\begin_layout Standard
-The reference region for this geometry is 
-\begin_inset Formula $[-1,1]\times[-1,1]\times[-1,1]$
-\end_inset
-
-, as in Section 4.X.
- 
-\end_layout
-
-\begin_layout Section
-Triangles and Tetrahedra
-\end_layout
-
-\begin_layout Standard
-To easily obtain high order accuracy quadrature rules for triangles, we
- can re-use the same rules for quadrilaterals by collapsing two of the nodes
- of the quadrilateral.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status open
-
-\begin_layout Standard
-Fig.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Other Integration Rules
-\end_layout
-
-\begin_layout Standard
-The integration points given in this section were obtained by using the
- FIAT Python module.
- 
-\end_layout
-
-\begin_layout Standard
-(XXX: here, insert and explain the example script 
-\family typewriter
-src/fiat_rules.py
-\family default
-)
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/interpolation.lyx
===================================================================
--- doc/cigma/manual/interpolation.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/interpolation.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,660 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Plain Layout
-
-
-\backslash
-mynote{
-\end_layout
-
-\begin_layout Plain Layout
-
-TODO:
-\end_layout
-
-\begin_layout Plain Layout
-
-  * Move discussion from error_analysis.lyx and running.lyx here (done)
-\end_layout
-
-\begin_layout Plain Layout
-
-  * Rename document to interpolation.lyx (done)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-Note that we place the interpolation chapter before the integration chapter
- because we wish to define the isoparametric elements in here (interpolation.lyx)
-, and simply refer back to them in integration.lyx (for listing the integration
- rules)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-Random Notes: 
-\end_layout
-
-\begin_layout Plain Layout
-
-For parametrizing the predefined functions we would need to use boost::regex
- when initializing the function from a user specified source string
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-Give list of predefined functions here
-\end_layout
-
-\begin_layout Plain Layout
-
-  - basic:
-\end_layout
-
-\begin_layout Plain Layout
-
-     * zero
-\end_layout
-
-\begin_layout Plain Layout
-
-     * scalar.one
-\end_layout
-
-\begin_layout Plain Layout
-
-  - benchmarks:
-\end_layout
-
-\begin_layout Plain Layout
-
-     * strikeslip.okada.disloc3d
-\end_layout
-
-\begin_layout Plain Layout
-
-     * cylinder_extension.{maxwell,non_newtonian}.{displacement,velocity,stress}
-\end_layout
-
-\begin_layout Plain Layout
-
-     * cylinder_relaxation.{maxwell,non_newtonian}.{displacement,velocity,stress}
-\end_layout
-
-\begin_layout Plain Layout
-
-     * circular_inclusion.pressure
-\end_layout
-
-\begin_layout Plain Layout
-
-     * test.{cube,sphere,square,circle}
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Explain what is needed to define own function
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-Important things to discuss:
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Natural coordinates
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Restricting discussion to isoparametric elements
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Available elements: tet4, tet10, hex8, hex20, hex27, tri3, quad4
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Node orderings for each element type (use figures to illustrate)
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Shape functions
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Shape function derivatives
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Calculation of Jacobian
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Calculation of Volumes
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Deciding if a given point is contained in element
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Default integration rule for each element type
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Mesh Locator for finding element given an arbitrary point -- returns
- list of likely elements
-\end_layout
-
-\begin_layout Plain Layout
-
-  - Deciding if a given global point is contained in element (need inverse
- reference map)
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-}
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Chapter
-Interpolation Functions
-\end_layout
-
-\begin_layout Standard
-As noted in Chapter 3, we will often need to evaluate a function 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
- at arbitrary points on a global coordinate system.
-\end_layout
-
-\begin_layout Section
-Local Functions
-\end_layout
-
-\begin_layout Standard
-Typically, as a result of numerical simulations, your function will be defined
- locally on a discretization of the domain of interest.
- Each discretization element defines a local coordinate system.
- Since the integration points are defined on a global coordinate system,
- we might have to invert the appropriate reference map after running a search
- through each discretization cell, followed by a newton-iteration to convert
- into the local coordinates, followed by an interior test.
- (XXX: Insert workfile1.lyx in this section)
-\end_layout
-
-\begin_layout Subsection
-Domain Discretization
-\end_layout
-
-\begin_layout Standard
-A typical discretization will partition the domain of interest into a large
- number of cells.
- 
-\end_layout
-
-\begin_layout Standard
-A set of cells which partition the domain.
- These cells are defined geometrically by a number of node points, which
- together with a set of connectivity rules.
- This set of node points will have a number of degrees of freedom associated
- with them.
- An interpolation
-\end_layout
-
-\begin_layout Subsection
-Interpolation Step
-\end_layout
-
-\begin_layout Standard
-Once we arrive at a solution on a cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-, we can define an interpolant function that will give us the value of our
- function on any point in the interior of the cell.
-\end_layout
-
-\begin_layout Subsection
-Available Elements
-\end_layout
-
-\begin_layout Subsection
-Triangles and Tetrahedra
-\end_layout
-
-\begin_layout Subsection
-Quadrilateral and Hexahedral Elements
-\end_layout
-
-\begin_layout Section
-Global Functions
-\end_layout
-
-\begin_layout Standard
-These functions are given explicitly on a domain.
- They may be defined explicitly, in the source code, or may also be defined
- by a global set of basis functions (such as spherical harmonics).
- Either way, they will be associated with a callback function that Cigma
- will evaluate whenever necessary.
-\end_layout
-
-\begin_layout Subsection
-Available Global Functions
-\end_layout
-
-\begin_layout Standard
-By default, we compile a number of functions into Cigma.
- We subdivide these into three categories.
- The first class contains only two functions, zero and one.
- The second class of functions consists of test functions intended to verify
- the operation of Cigma.
- Finally, the third class of functions consists of example benchmark cases
- that you may use as a base for defining your own functions.
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-There are two basic functions that are available, listed in the table below.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="2" columns="2">
-<features>
-<column alignment="left" valignment="top" width="0">
-<column alignment="left" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-zero
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Always evaluates to 0.
- Compatible with scalar, vector, and tensor functions.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-one
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Always evaluates to 1.
- Only compatible with scalar functions.
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-The following functions have short definitions and are available for internal
- testing purposes.
- Mainly, these are used to make sure Cigma returns consistent results 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="4" columns="2">
-<features>
-<column alignment="left" valignment="top" width="0">
-<column alignment="left" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-test.cube
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar field in 3-dimensions
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-test.sphere
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector field in 3-dimensions
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-test.square
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Scalar field in 2-dimensions
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-test.circle
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-Vector field in 2-dimensions
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-We can also calculate the initial step of the strike-slip benchmark (no
- gravity) discussed in Chapter X.
- This is based on the Okada (1992) dislocation code[?].
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="3" columns="1">
-<features>
-<column alignment="left" valignment="top" width="0">
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-strikeslip.disloc3d.displacement
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-strikeslip.disloc3d.velocity
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Plain Layout
-
-\family typewriter
-strikeslip.disloc3d.stress
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-
-\begin_inset Newline newline
-\end_inset
-
-The full list of all pre-defined functions which are available by name are
- given in the appendix.
-\end_layout
-
-\begin_layout Subsection
-Defining Your Own Global Function
-\end_layout
-
-\begin_layout Standard
-There are three things you need to do in order to register a new function.
- These are the steps you need to follow in order to let Cigma know about
- your function.
-\end_layout
-
-\begin_layout Enumerate
-Drop the definition of your global function in a subdirectory of the 
-\family typewriter
-src/core/functions/
-\family default
- directory, and define an appropriate subclass of 
-\family typewriter
-cigma::Function
-\family default
- which interfaces to your function.
-\end_layout
-
-\begin_layout Enumerate
-Add the new source and header files into the 
-\family typewriter
-libcigma_a_SOURCES
-\family default
- variable in 
-\family typewriter
-src/Makefile.am
-\family default
-, following the examples given in the section that refers to the 
-\family typewriter
-ZeroFunction.h
-\family default
- and 
-\family typewriter
-ZeroFunction.cpp
-\family default
- files.
-\end_layout
-
-\begin_layout Enumerate
-Instantiate your function and insert it into the appropriate map object
- in 
-\family typewriter
-src/core/functions/FunctionRegistry.cpp
-\family default
-, again following the examples already in the file.
- It is in this file where you will give a unique name to your function,
- for use in the command line.
-\end_layout
-
-\begin_layout Standard
-Other examples to examine are located at 
-\family typewriter
-TestFunctions.cpp
-\family default
- and in 
-\family typewriter
-StrikeslipFunctions.cpp
-\family default
- in the 
-\family typewriter
-src/core/functions/
-\family default
- directory.
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/introduction.lyx
===================================================================
--- doc/cigma/manual/introduction.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/introduction.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,182 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\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 for comparing
- numerical models.
-\end_layout
-
-\begin_layout Standard
-The current version of Cigma is intended for the calculation of 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- residuals in finite element models, but can be extended to compare arbitrary
- functions.
- This software was designed for performing the following three main tasks:
- (1) error analysis, (2) benchmarking, and (3) code verification.
- In error analysis, Cigma can calculate a global measure of the differences
- between two solutions by performing an integration over a discretized version
- of the common domain.
- This comparison can take place even when the underlying discretizations
- do not overlap.
- 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.
- Lastly, as an automated tool, Cigma can help application developers create
- regression tests to ensure that software changes do not affect the consistency
- of the results.
-\end_layout
-
-\begin_layout Standard
-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 finite element codes.
- The long-term goal for Cigma, however, is for it to be used for nearly
- all geodynamics modeling codes.
- Cigma relies on a number of libraries.
- The FInite element Automatic Tabulator (FIAT) 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.fenics.org/wiki/FIAT
-\end_layout
-
-\end_inset
-
- Python Library supports generation of arbitrary order instances of the
- Lagrange elements on lines, triangles, and tetrahedra.
- It can also generate higher order instances of Jacobi-type quadrature rules
- on the same element shapes.
- The Approximate Nearest Neighbor (ANN) 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-www.cs.umd.edu/~mount/ANN/
-\end_layout
-
-\end_inset
-
- Library, written in C++, supports data structures and algorithms for both
- exact and nearest-neighbor searching in arbitrarily high dimensions.
-\end_layout
-
-\begin_layout Standard
-Both of these libraries extend and generalize Cigma's functionality so it
- can handle other types of elements, and provide 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 press.
- Please cite this manual as follows:
-\end_layout
-
-\begin_layout Itemize
-Armendariz, L., and S.
- Kientz.
- 
-\emph on
-Cigma User Manual.
-
-\emph default
- Pasadena, CA: Computational Infrastructure of Geodynamics, 2008.
- 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
- CIG 
-\begin_inset Flex URL
-status collapsed
-
-\begin_layout Plain Layout
-
-geodynamics.org
-\end_layout
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Support
-\end_layout
-
-\begin_layout Standard
-Cigma development is based upon work supported by the National Science Foundatio
-n under Grant No.
- EAR-0406751.
- Any opinions, findings, and conclusions or recommendations expressed in
- this material are those of the authors and do not necessarily reflect the
- views of the National Science Foundation.
- The code is being released under the GNU General Public License.
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/main2.lyx15
===================================================================
--- doc/cigma/manual/main2.lyx15	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/main2.lyx15	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,6276 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 276
-\begin_document
-\begin_header
-\textclass book
-\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 false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author ""
-\author ""
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-Introduction
-\end_layout
-
-\begin_layout Section
-About Cigma
-\end_layout
-
-\begin_layout Standard
-The CIG Model Analyzer (Cigma) consists of a general suite of tools for
- comparing numerical models.
- In particular, this program is intended for the calculation of 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- residuals for finite element models.
-\end_layout
-
-\begin_layout Standard
-CIG has developed Cigma in response to demand from the short-term tectonics
- community for an automated tool that can perform rigorous error analysos
- on their finite element codes.
- In the long term, Cigma aims to be general enough for use in other geodynamics
- modeling codes.
-\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 press.
- Please cite this manual as follows:
-\end_layout
-
-\begin_layout Itemize
-Armendariz, L., and S.
- Kientz.
- 
-\emph on
-Cigma User Manual.
-
-\emph default
- Pasadena, CA: Computational Infrastructure of Geodynamics, 2008.
- 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
- CIG 
-\begin_inset LatexCommand url
-target "geodynamics.org"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Support
-\end_layout
-
-\begin_layout Standard
-Cigma development is based upon work supported by the National Science Foundatio
-n under Grant No.
- EAR-0406751.
- Any opinions, findings, and conclusions or recommendations expressed in
- this material are those of the authors and do not necessarily reflect the
- views of the National Science Foundation.
- 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 and Reporting Bugs
-\end_layout
-
-\begin_layout Standard
-For help, send an e-mail to the CIG Computational Science Mailing List 
-\begin_inset LatexCommand url
-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 CIG Mail Lists web page
- 
-\begin_inset LatexCommand url
-target "geodynamics.org/cig/lists"
-
-\end_inset
-
-.
- If you encounter any bugs or have problems installing Cigma, please submit
- a report to the CIG Bug Tracker 
-\begin_inset LatexCommand url
-target "geodynamics.org/bugs"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Installing from Source
-\end_layout
-
-\begin_layout Standard
-In this section we discuss how to install each of the software libraries
- necessary for building Cigma.
- We recommend that you obtain binaries for these dpendencies from your package
- manager of choice, or from the corresponding website.
- When using a package manager, make sure to install the associated development
- headers along with the library, as these tend to be distributed separately
- from the library package itself.
-\end_layout
-
-\begin_layout Subsection
-Quick Summary
-\end_layout
-
-\begin_layout Standard
-After installing the necessary dependencies described below, download the
- source package from the CIG Cigma web page 
-\begin_inset LatexCommand url
-target "geodynamics.org/cig/software/packages/cs/cigma"
-
-\end_inset
-
-.
- You will need the GNU C++ compiler for this step.
- Unpack the source tar file and issue the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz cigma-1.0.0.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd cigma-1.0.0
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-boost=$BOOST_PREFIX      
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-hdf5=$HDF5_PREFIX        
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-netcdf=$NETCDF_PREFIX    
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-vtk=$VTK_PREFIX          
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-vtk-version=$VTK_VERSION 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-    --with-cppunit-prefix=$CPPUNIT_PREFIX
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-The Boost and HDF5 libraries are the only required components for this step.
- The installation prefixes should be used if you have installed the correspondin
-g library in a custom location.
- In the instructions below, we use a subdirectory of 
-\family typewriter
-$HOME/opt
-\family default
- as the installation prefix, but you may change it to something else.
- After all these steps are complete, you should be able to run the 
-\family typewriter
-cigma
-\family default
- binary and start comparing arbitrary functions.
-\end_layout
-
-\begin_layout Subsection
-Boost library
-\end_layout
-
-\begin_layout Standard
-The Boost C++ libraries are a collection of peer-reviewed and open source
- libraries that extend the functionality of C++.
- Cigma uses Boost for its smart pointer facilities, lexical conversions,
- as well as for parsing command-line options, and for providing cross-platform
- filesystem operations.
- In order to build Boost with the necessary components used in Cigma, you
- can use the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz boost_1_37_0.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd boost_1_37_0
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/boost 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-              --with-libraries=system,filesystem,program_options
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-Other components of Boost that need to be built can be chosen from the list
- generated by the command
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --show-libraries
-\end_layout
-
-\begin_layout Standard
-and modifying the comma-delimited list passed to the 
-\family typewriter
---with-libraries
-\family default
- option when repeating the build procedure above.
- The next version of Cigma will include a Python extension module that will
- need the python component of Boost, but is currently not necessary.
-\end_layout
-
-\begin_layout Subsection
-HDF5 library
-\end_layout
-
-\begin_layout Standard
-The Hierarchical Data Format is a library and multi-object file format for
- the transfer of numerical data between computers.
- Cigma depends on the C++ API of the HDF5 library, so it is important to
- enable it when running the configure script below.
- You can obtain the latest source from The HDF Group 
-\begin_inset LatexCommand url
-target "hdfgroup.org/HDF5"
-
-\end_inset
-
-, and use the following sequence of commands to build the library.
- 
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz hdf5-1.8.2.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd hdf5-1.8.2
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/hdf5-1.8.2 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-              --with-zlib=$ZLIB_PREFIX      
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-              --enable-cxx
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-If it is not already available on your system, you must build the zlib compressi
-on library before building HDF5 above 
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz zlib-1.2.3.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd zlib-1.2.3
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/hdf5-1.8.2
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-In practice, you only need to do this if your system is missing the zlib
- development headers and you are unable to install them otherwise.
-\end_layout
-
-\begin_layout Standard
-Alternatively, compiled binaries for the HDF5 library can be obtained at
- 
-\begin_inset LatexCommand url
-target "hdfgroup.org/HDF5/release/obtain5.html"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Subsection
-NetCDF library
-\end_layout
-
-\begin_layout Standard
-NetCDF (Network Common Data Form) is a set of software libraries and machine-ind
-ependent data formats that support the creation, access, and sharing of
- array-oriented scientific data.
- The source for NetCDF can be obtained from Unidata 
-\begin_inset LatexCommand url
-target "www.unidata.ucar.edu/software/netcdf/"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz netcdf-4.0
-\end_layout
-
-\begin_layout LyX-Code
-$ cd netcdf-4.0
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/netcdf-4.0    
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-              --with-hdf5=$HOME/opt/hdf5-1.8.2 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-              --enable-netcdf-4
-\end_layout
-
-\begin_layout LyX-Code
-              
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-This library is optional, and recommended if you plan to use meshes created
- by the CUBIT mesh generator.
-\end_layout
-
-\begin_layout Subsection
-VTK library
-\end_layout
-
-\begin_layout Standard
-The Visualization Toolkit (VTK) library is a popular open source graphics
- library for scientific visualizations.
- Cigma will need to be configured with the VTK library if you plan to directly
- specify your functions by using the VTK file format.
- The source for the VTK library is available from Kitware, Inc.
- 
-\begin_inset LatexCommand url
-target "www.vtk.org/get-software.php"
-
-\end_inset
-
-.
- You will also need the CMake build environment, available from CMake 
-\begin_inset LatexCommand url
-target "cmake.org"
-
-\end_inset
-
-.
- After downloading the source package for the VTK library, you can issue
- the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz vtk-5.2.0.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd VTK
-\end_layout
-
-\begin_layout LyX-Code
-$ mkdir build
-\end_layout
-
-\begin_layout LyX-Code
-$ cd build
-\end_layout
-
-\begin_layout LyX-Code
-$ ccmake ..
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-The installation prefix and other settings can be changed during the 
-\family typewriter
-ccmake
-\family default
- step above.
- By default, the installation prefix will point to the 
-\family typewriter
-/usr/local
-\family default
- directory, but you may want to change it to a location like 
-\family typewriter
-$HOME/opt/vtk-5.2
-\family default
- in case you would like to manage multiple versions of the VTK library in
- the same system.
-\end_layout
-
-\begin_layout Subsection
-CppUnit library
-\end_layout
-
-\begin_layout Standard
-CppUnit is a C++ unit testing framework used by Cigma for automatically
- running various internal consistency checks during every build.
- You will need this library if you want to modify the Cigma source and want
- to make certain guarantees about your additions to the code.
- After obtaining the obtaining the latest source release, you may build
- CppUnit by using the following sequence of steps.
-\end_layout
-
-\begin_layout LyX-Code
-$ tar xvfz cppunit-1.21.1.tar.gz
-\end_layout
-
-\begin_layout LyX-Code
-$ cd cppunit-1.21.1
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/opt/cppunit-1.21.1
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
-CppUnit is available for download from 
-\begin_inset LatexCommand url
-target "sourceforge.net/projects/cppunit/"
-
-\end_inset
-
-.
- 
-\end_layout
-
-\begin_layout Section
-Installing from the Software Repository
-\end_layout
-
-\begin_layout Standard
-The Cigma source code is available via the CIG Subversion Repository 
-\begin_inset LatexCommand url
-target "geodynamics.org/cig/software/Repository"
-
-\end_inset
-
-.
- For this section, you will need an Subversion client, as well as the GNU
- tools Autoconf, Automake, and Libtool.
- To check if you have a Subversion client installed, type 
-\family typewriter
-svn
-\family default
- and look for a usage message
-\end_layout
-
-\begin_layout LyX-Code
-$ svn
-\end_layout
-
-\begin_layout LyX-Code
-Type 'svn help' for usage.
-\end_layout
-
-\begin_layout Standard
-To check for the presence of the GNU Autotools, use the following commands
-\end_layout
-
-\begin_layout LyX-Code
-$ autoconf --version
-\end_layout
-
-\begin_layout LyX-Code
-$ automake --version
-\end_layout
-
-\begin_layout LyX-Code
-$ libtoolize --version
-\end_layout
-
-\begin_layout Standard
-Using the source repository directly is recommended for users who want to
- extend Cigma 
-\end_layout
-
-\begin_layout Subsection
-Downloading the Cigma Source
-\end_layout
-
-\begin_layout Standard
-You may check out the latest version of Cigma by using the 
-\family typewriter
-svn checkout
-\family default
- command:
-\end_layout
-
-\begin_layout LyX-Code
-$ svn checkout http://geodynamics.org/svn/cig/cs/cigma/trunk cigma
-\end_layout
-
-\begin_layout Standard
-This will create the local directory 
-\family typewriter
-cigma
-\family default
- and fill it with the latest Cigma source from the CIG software repository.
- This new directory is called a 
-\emph on
-working copy
-\emph default
-.
- To merge the latest changes on your working copy, use the 
-\family typewriter
-svn update
-\family default
- command:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd cigma
-\end_layout
-
-\begin_layout LyX-Code
-$ svn update
-\end_layout
-
-\begin_layout Standard
-This will preserve any local changes you have made to your working copy.
-\end_layout
-
-\begin_layout Subsection
-Using the GNU Build System
-\end_layout
-
-\begin_layout Standard
-Once you have obtained a working copy of the Cigma source, you will need
- to use the GNU Autotools to generate the appropriate build files.
- This can be accomplished by running the command 
-\family typewriter
-autoreconf -fi
-\family default
-:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd cigma
-\end_layout
-
-\begin_layout LyX-Code
-$ autoreconf -fi
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure <
-\emph on
-necessary-flags-here
-\emph default
->
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout Standard
-The 
-\family typewriter
-autoreconf
-\family default
- tool generates the 
-\family typewriter
-configure
-\family default
- script from the 
-\family typewriter
-configure.ac
-\family default
- file.
- It also runs Automake to generate 
-\family typewriter
-Makefile.in
-\family default
- from 
-\family typewriter
-Makefile.am
-\family default
- in each source directory.
- After running 
-\family typewriter
-autoreconf
-\family default
-, you may install Cigma as described in Section 2.2 earlier in this Chapter.
-\end_layout
-
-\begin_layout Chapter
-Error Analysis
-\end_layout
-
-\begin_layout Section
-\begin_inset LatexCommand label
-name "cha:Error-Analysis"
-
-\end_inset
-
-Error Analysis
-\end_layout
-
-\begin_layout Standard
-When solving differential equations representing physical systems of interest,
- we are often able to obtain a family of solutions by applying a variety
- of solution techniques.
- Sometimes an analytic method can be found, but most of the time we end
- up resorting to a numerical algorithm, such as the finite element method.
- Assessing the quality of these solutions is an important task, so we would
- like to develop a quantitative measure for indicating just how close our
- solutions approach the exact answer.
-\end_layout
-
-\begin_layout Standard
-The simplest possible quantitative measure of the difference between two
- distinct functions consists of taking the pointwise difference 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 the statistics of the
- resulting set of differences.
- However, the functions we want to compare may not be defined at a common
- set of points.
- Unless we are able to interpolate the two functions on an intermediate
- set of points, this simple pointwise measure becomes inapplicable.
-\end_layout
-
-\begin_layout Standard
-A very useful distance measure we can use is the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm, defined by the following integral
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\varepsilon=||u-v||_{L_{2}}=\sqrt{\int_{\Omega}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}}\end{equation}
-
-\end_inset
-
-where 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- are the two functions defined on a global coordinate system.
- This gives us a single global estimate 
-\begin_inset Formula $\varepsilon$
-\end_inset
-
- representing the distance between the two functions 
-\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 
-\series bold
-\emph on
-residual field
-\series default
-\emph default
- 
-\begin_inset Formula $\rho(\vec{x})=u(\vec{x})-v(\vec{x})$
-\end_inset
-
-.
- This measure is useful because it is well known that solutions obtained
- with the finite element method converge only in a weak sense, as an average
- over a geometric region.
- In the rest of this chapter we will discuss the details involved in evaluating
- the above integral.
-\end_layout
-
-\begin_layout Standard
-Another quantitative measure, which we won't discuss in this version of
- Cigma, is the energy norm.
- This norm is typically employed in 
-\emph on
-a posteriori
-\emph default
- error analysis and is problem dependent.
- In general, the residual field used under this norm is defined in terms
- of the linearized equation from which the solution was obtained.
- The rest of this chapter will discuss how to evaluate.
-\end_layout
-
-\begin_layout Section
-Functions
-\end_layout
-
-\begin_layout Standard
-The functions that we discuss in this manual are assumed to be defined in
- a common region of space denoted by 
-\begin_inset Formula $\Omega$
-\end_inset
-
-.
- Elements of 
-\begin_inset Formula $\Omega$
-\end_inset
-
- are written as 
-\begin_inset Formula $\vec{x}$
-\end_inset
-
-, and the number of components in the corresponding value of 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
-, is said to be the 
-\series bold
-\emph on
-rank
-\series default
-\emph default
- of the function 
-\begin_inset Formula $f$
-\end_inset
-
-.
- Thus, 
-\emph on
-scalar functions
-\emph default
- have a rank of 1, 
-\emph on
-vector functions
-\emph default
- would have a rank of either 2 or 3.
-\end_layout
-
-\begin_layout Section
-Integral Approximations
-\end_layout
-
-\begin_layout Standard
-In order to evaluate the integral for our 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm, we will need to define an integration mesh which partitions the common
- domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
- on which our two functions are defined.
- We can then use a numerical approximation, or 
-\series bold
-\emph on
-integration rule
-\series default
-\emph default
-, on each of the discrete cell elements 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
- of our partition.
- Each of these cell integrals of the continuous residual norm 
-\begin_inset Formula $||\rho(\vec{x})||^{2}$
-\end_inset
-
- can then be replaced by a weighed sum evaluated at a finite set of points.
- This integral will be valid up to a certain accuracy.
- In Chapter 5, we discuss in more detail how choose the location and values
- for the integration points and weights which give optimal accuracy.
-\end_layout
-
-\begin_layout Standard
-Thus, in general, an integration rule with 
-\begin_inset Formula $Q$
-\end_inset
-
- points and weights that allows us to integrate the scalar function 
-\begin_inset Formula $F(\vec{x})$
-\end_inset
-
- is given by the equation
-\begin_inset Formula \begin{equation}
-\int_{\Omega_{i}}\ F(\vec{x})\ d\vec{x}\approx\sum_{q=1}^{Q}F(\vec{X_{q}})W_{q}\end{equation}
-
-\end_inset
-
-where the integration points 
-\begin_inset Formula $\vec{X}_{q}$
-\end_inset
-
- and integration weights 
-\begin_inset Formula $W_{q}$
-\end_inset
-
- depend on the integration region 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-.
- As we will see in Chapter 7, one possibility is to pre-calculate these
- points and weights explicitly on a specific discretization.
- Thus, as discussed in more detail in Chapters 4 and 5, we will generally
- want to define a reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- which acts as a template for cells with the same geometric shape.
- We can achieve this by defining a 
-\series bold
-\emph on
-reference map
-\series default
-\emph default
- 
-\begin_inset Formula $\chi_{i}:\hat{\Omega}\to\Omega_{i}$
-\end_inset
-
- that describes how points in a specific cell 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
- originate from the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- In this sense, the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- is said to define a 
-\series bold
-\emph on
-local coordinate system
-\series default
-\emph default
- for the 
-\begin_inset Formula $i$
-\end_inset
-
--th cell 
-\begin_inset Formula $\Omega_{i}.$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Note that a given discretization may contain cells of different shapes,
- which would require us to define an appropriate number of reference cells
- for each type of cell.
- However, we may restrict the discussions in this manual to discretizations
- consisting of a single geometric shape without any loss of generality.
-\end_layout
-
-\begin_layout Standard
-The advantage of this approach is readily apparent when one realizes that
- the integration points and weights can be calculated once and for all on
- the reference cell, and then reused for the other cells through the application
- of the corresponding reference map.
- In other words,
-\begin_inset Formula \begin{eqnarray*}
-\vec{X}_{q} & = & \chi_{i}(\vec{\xi}_{q})\\
-W_{q} & = & w_{q}J_{i}(\vec{\xi}_{q})\end{eqnarray*}
-
-\end_inset
-
-where 
-\begin_inset Formula $\vec{\xi}_{q}$
-\end_inset
-
- and 
-\begin_inset Formula $w_{q}$
-\end_inset
-
- are the optimal integration points and weights for the integration rule
- defined on the reference domain 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- Here, the factor 
-\begin_inset Formula $J_{i}(\vec{\xi})=\det\ \left|\frac{d\chi_{i}}{d\vec{\xi}}\right|$
-\end_inset
-
- is the Jacobian determinant of the transformation 
-\begin_inset Formula $\chi_{i}$
-\end_inset
-
-.
- Recall that the index 
-\begin_inset Formula $i$
-\end_inset
-
- corresponds to the 
-\begin_inset Formula $i$
-\end_inset
-
--th cell 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-, and the index 
-\begin_inset Formula $q$
-\end_inset
-
- ranges over the usual 
-\begin_inset Formula $q=1,\ldots,Q$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Section
-Interpolation Functions
-\end_layout
-
-\begin_layout Standard
-Our two functions 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
- and 
-\begin_inset Formula $v(\vec{x})$
-\end_inset
-
- are given in terms of the point 
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
-, and are said to be defined on a 
-\series bold
-\emph on
-global coordinate system
-\series default
-\emph default
-.
- Based on our discussion in Section 3.1, we see that we only need to know
- the values of 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- at a finite set of global points in order to calculate an approximation
- to the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm of the residual field 
-\begin_inset Formula $\rho=u-v$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Specifically, given a function 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
- we must be able to calculate its values at exactly those integration points.
- If we know a formula or algorithm for 
-\begin_inset Formula $f$
-\end_inset
-
-, then our task is easy.
- Alternatively, these values can be given explicitly as a finite list.
- In all other cases, we will need an interpolation scheme that allows us
- to calculate 
-\begin_inset Formula $f$
-\end_inset
-
- on any intermediate points.
- This ability is also important because we may want to increase the accuracy
- of our norm by using more integration points, and thus we will need to
- be able to evaluate our function 
-\begin_inset Formula $f$
-\end_inset
-
- at the new points.
-\end_layout
-
-\begin_layout Standard
-In general, an interpolation scheme involves a set of known functions 
-\begin_inset Formula $\phi_{j}(\vec{x})$
-\end_inset
-
- that we can compute anywhere and a set of parameters 
-\begin_inset Formula $c_{j}$
-\end_inset
-
- that define how these known functions are combined.
- Usually, the relation between the parameters and the known functions is
- a linear combination, 
-\begin_inset Formula \begin{equation}
-f(\vec{x})=d_{1}\phi_{1}(\vec{x})+d_{2}\phi_{2}(\vec{x})+\cdots+d_{m}\phi_{m}(\vec{x})\end{equation}
-
-\end_inset
-
-where the parameters 
-\begin_inset Formula $d_{j}$
-\end_inset
-
-, with 
-\begin_inset Formula $j=1,\ldots,m$
-\end_inset
-
-, are also sometimes referred to as the 
-\series bold
-\emph on
-degrees of freedom
-\series default
-\emph default
- of the function 
-\begin_inset Formula $f$
-\end_inset
-
-.
- As described in Chapter 4, the functions 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
-, also known as 
-\series bold
-\emph on
-shape functions
-\series default
-\emph default
-, must satisfy a number of conditions.
- Because the choice of shape functions affects how well the true solution
- is represented, the convergence of the numerical method used to obtain
- the solution, the optimal choice of shape functions is very problem dependent.
-\end_layout
-
-\begin_layout Standard
-If we know the shape functions 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
- directly in terms of the global points 
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
-, they are said to form a 
-\series bold
-\emph on
-global interpolation scheme
-\series default
-\emph default
-, and we may use Eq 3 directly to find the values of 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
-, and we may refer to the 
-\begin_inset Formula $\phi_{j}$
-\end_inset
-
-as 
-\emph on
-global shape functions
-\emph default
-.
- Note that since we are working in the global coordinate system, we don't
- need the discretization of the domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
-.
- An example of global shape functions would be the spherical harmonic functions.
-\end_layout
-
-\begin_layout Standard
-Perhaps a more typical case is when 
-\begin_inset Formula $f(\vec{x})$
-\end_inset
-
- is defined piecewise, on each discretization element 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-.
- Because these cells partition the original domain by definition, a given
- point in our domain will be found in one and only one cell, which will
- have a local definition.
- That is, for a particular 
-\begin_inset Formula $\vec{x}\in\Omega$
-\end_inset
-
- we will be able to find a unique cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-, for some index 
-\begin_inset Formula $e$
-\end_inset
-
-.
- We can refer to this as a 
-\series bold
-\emph on
-local interpolation scheme
-\series default
-\emph default
-.
-\end_layout
-
-\begin_layout Standard
-Refer to the Appendix for more details on the specific interpolation schemes
- available in Cigma.
-\end_layout
-
-\begin_layout Section
-Global Error Measure
-\end_layout
-
-\begin_layout Standard
-In this section we discuss the underlying formula used by Cigma to compute
- the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
- norm of the residual field 
-\begin_inset Formula $\rho$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-Suppose the domain 
-\begin_inset Formula $\Omega$
-\end_inset
-
- into an appropriate set of cells 
-\begin_inset Formula $\Omega_{1},\Omega_{2},\ldots,\Omega_{n_{el}}$
-\end_inset
-
-, we can compute the global error 
-\begin_inset Formula $\varepsilon^{2}$
-\end_inset
-
- as a sum over localized cell contributions, 
-\begin_inset Formula $\varepsilon^{2}=\sum_{e}\varepsilon_{e}^{2}$
-\end_inset
-
-, where each cell residual 
-\begin_inset Formula $\varepsilon_{e}^{2}$
-\end_inset
-
- is given by
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{e}^{2} & = & \int_{\Omega_{e}}||u(\vec{x})-v(\vec{x})||^{2}d\vec{x}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In general, we won't be able to integrate each cell residual 
-\begin_inset Formula $\varepsilon_{e}^{2}$
-\end_inset
-
- exactly since either of the functions 
-\begin_inset Formula $u$
-\end_inset
-
- and 
-\begin_inset Formula $v$
-\end_inset
-
- may have an incompatible representation relative to the finite element
- space on each domain 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-.
- However, we can still calculate an approximation of each cell residual
- 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
-To obtain an approximation to the integral of a function 
-\begin_inset Formula $F(\vec{x})$
-\end_inset
-
- over a cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-, we simply apply the quadrature rule with weights 
-\begin_inset Formula $w_{e,1},w_{e,2},\ldots,w_{e,n_{Q}}$
-\end_inset
-
- and integration points 
-\begin_inset Formula $\vec{x}_{e,1},\vec{x}_{e,2},\ldots,\vec{x}_{e,n_{Q}}$
-\end_inset
-
- appropriate for the physical element 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
-:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega_{e}}\ F(\vec{x})\ d\vec{x}=\sum_{q=1}^{n_{Q}}w_{e,q}F(\vec{x}_{e,q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Applying this quadrature rule directly over the entire physical domain 
-\begin_inset Formula $\Omega=\cup\Omega_{e}$
-\end_inset
-
- gives us 
-\begin_inset Formula \[
-\int_{\Omega}\ F(\vec{x})\ d\vec{x}=\sum_{e=1}^{n_{el}}\sum_{q=1}^{n_{Q}}w_{e,q}F(\vec{x}_{e,q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-For efficiency reasons, it is undesirable in finite element applications
- to perform calculations in a global coordinate system.
- To avoid duplication of work, shape function evaluations may be performed
- once on a reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
- and then transformed back into the corresponding physical cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- as needed.
-\end_layout
-
-\begin_layout Standard
-To compute integrals of 
-\begin_inset Formula $F$
-\end_inset
-
- in a reference coordinate system, we need to apply a change of variables:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\Omega_{e}}\ F(\vec{x})\ d\vec{x}=\int_{\hat{\Omega}}\ F(\vec{x}_{e}(\vec{\xi}))J_{e}(\vec{\xi})\ d\vec{\xi}\]
-
-\end_inset
-
-where 
-\color none
-the additional factor 
-\begin_inset Formula $J_{e}(\vec{\xi})=\det\left[\frac{d\vec{x}_{e}}{d\vec{\xi}}\right]$
-\end_inset
-
- is the Jacobian determinant of the reference map 
-\begin_inset Formula $\vec{x}_{e}(\vec{\xi}):\hat{\Omega}\to\Omega_{e}$
-\end_inset
-
-.
- This map describes how the physical points 
-\begin_inset Formula $\vec{x}\in\Omega_{e}$
-\end_inset
-
- are transformed from the reference points 
-\begin_inset Formula $\vec{\xi}\in\hat{\Omega}$
-\end_inset
-
-.
- Put another way, the inverse reference map 
-\color inherit
-
-\begin_inset Formula $\vec{\xi}=\vec{x}_{e}^{-1}(\vec{x})$
-\end_inset
-
- tells us how the physical domain 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- maps into the reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-At this point, we can assume without loss of generality that every physical
- cell 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- can be derived from a single reference cell 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-, so that our quadrature rule becomes simply a set of weights 
-\begin_inset Formula $w_{1},\ldots,w_{n_{Q}}$
-\end_inset
-
- and points 
-\begin_inset Formula $\vec{\xi}_{1},\ldots,\vec{\xi}_{n_{Q}}$
-\end_inset
-
- over 
-\begin_inset Formula $\hat{\Omega}$
-\end_inset
-
-.
- After changing variables, we end up with the final form of the quadrature
- rule that we can use to integrate the global residual field:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\int_{\hat{\Omega}}\ F(\vec{x}_{e}(\vec{\xi}))J_{e}(\vec{\xi})\ d\vec{\xi}=\sum_{q=1}^{n_{Q}}w_{q}F(\vec{x}_{e}(\vec{\xi}_{q}))J_{e}(\vec{\xi}_{q})\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-If we let 
-\begin_inset Formula $F(\vec{x})=||u(\vec{x})-v(\vec{x})||^{2}$
-\end_inset
-
- in the above expression, we can find the cell residual contribution over
- 
-\begin_inset Formula $\Omega_{e}$
-\end_inset
-
- from
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{e}^{2} & = & \int_{\Omega_{e}}\ ||u(\vec{x})-v(\vec{x})||^{2}\ d\vec{x}\\
- & = & \int_{\hat{\Omega}}\ ||u(\vec{x}_{e}(\vec{\xi}))-v(\vec{x}_{e}(\vec{\xi}))||^{2}J_{e}(\vec{\xi})\ d\vec{\xi}\\
- & = & \sum_{q=1}^{\mathrm{n_{Q}}}w_{q}||u(\vec{x}_{e}(\vec{\xi}_{q}))-v(\vec{x}_{e}(\vec{\xi}_{q}))||^{2}J_{e}(\vec{\xi}_{q})\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The global error 
-\begin_inset Formula $\varepsilon=\sqrt{\sum_{e}\varepsilon_{e}^{2}}$
-\end_inset
-
- is then approximated by the expression
-\end_layout
-
-\begin_layout Standard
-\begin_inset Box Boxed
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "100text%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon & = & \sqrt{\sum_{e=1}^{\mathrm{n_{el}}}\sum_{q=1}^{\mathrm{n_{Q}}}w_{q}||u(\vec{x}_{e}(\vec{\xi}_{q}))-v(\vec{x}_{e}(\vec{\xi}_{q}))||^{2}J_{e}(\vec{\xi}_{q})}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\newline
-
-We use this final form to calculate the global and localized errors on arbitrary
- discretizations.
-\end_layout
-
-\begin_layout Section
-Comparing Global Residuals
-\end_layout
-
-\begin_layout Standard
-Since the absolute magnitude of the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
--norm is typically not important, you may want to normalize it relative
- to another computable global quantity, to make comparisons easier.
- One possibility would be to normalize the global error by the norm of the
- exact solution.
- For a family of solutions 
-\begin_inset Formula $u_{h}(\vec{x})$
-\end_inset
-
-, parametrized by the the maximum element size 
-\begin_inset Formula $h$
-\end_inset
-
- of the underlying discretization, and an exact solution 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
-, this normalized error is given by
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{rel} & = & \frac{||u-u_{h}||_{L_{2}}}{||u||_{L_{2}}}\\
- & = & \frac{\int_{\Omega}||u(\vec{x})-u_{h}(\vec{x})||^{2}d\vec{x}}{\int_{\Omega}||u(\vec{x})||^{2}d\vec{x}}\end{eqnarray*}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Alternatively, we can normalize the global error by the total volume of
- the domain
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{rel} & = & \frac{||u-u_{h}||_{L_{2}}}{V}\\
- & = & \frac{\int_{\Omega}||u(\vec{x})-u_{h}(\vec{x})||^{2}d\vec{x}}{\int_{\Omega}d\vec{x}}\end{eqnarray*}
-
-\end_inset
-
-which is the normalization that Cigma uses by default.
-\end_layout
-
-\begin_layout Standard
-This normalized error can be interpreted as the average error in the physical
- quantity being evaluated, so that a value of 0.01 corresponds to a 1% averaged
- error.
- Even if the exact solution is not currently known, this normalized error
- may be used to test the accuracy between two or more numerical solutions,
- defined on successively refined meshes.
-\end_layout
-
-\begin_layout Section
-Convergence Rates
-\end_layout
-
-\begin_layout Standard
-Once we have calculated a family of solutions 
-\begin_inset Formula $u_{h}(\vec{x})$
-\end_inset
-
- on a family of increasingly refined meshes 
-\begin_inset Formula $\Omega_{h}$
-\end_inset
-
-, we may estimate how fast we are converging to the analytic solution 
-\begin_inset Formula $u(\vec{x})$
-\end_inset
-
- by using the standard error estimate 
-\begin_inset Formula $||u-u_{h}||_{p}\leq Ch^{\alpha},$
-\end_inset
-
- where 
-\begin_inset Formula $C$
-\end_inset
-
- is independent of both 
-\begin_inset Formula $h$
-\end_inset
-
- and 
-\begin_inset Formula $u$
-\end_inset
-
-.
- This error bound holds for a wide range of problems and may be used for
- estimating the convergence rate 
-\begin_inset Formula $\alpha$
-\end_inset
-
-.
- If the analytic solution 
-\begin_inset Formula $u$
-\end_inset
-
- is unknown, one may use in its place the highest-accuracy solution available.
-\end_layout
-
-\begin_layout Standard
-For a single refinement level, we have two discretizations 
-\begin_inset Formula $\Omega_{1}$
-\end_inset
-
- and 
-\begin_inset Formula $\Omega_{2}$
-\end_inset
-
-, along with the corresponding solutions 
-\begin_inset Formula $u_{1}$
-\end_inset
-
- and 
-\begin_inset Formula $u_{2}$
-\end_inset
-
-.
- The convergence rate can the be estimated from the two equations 
-\begin_inset Formula \begin{eqnarray*}
-\varepsilon_{1} & \sim & Ch_{1}^{\alpha}\\
-\varepsilon_{2} & \sim & Ch_{2}^{\alpha}\end{eqnarray*}
-
-\end_inset
-
-which can be combined into
-\begin_inset Formula \[
-\left(\frac{\varepsilon_{2}}{\varepsilon_{1}}\right)\sim\left(\frac{h_{2}}{h_{1}}\right)^{\alpha}\]
-
-\end_inset
-
-or, solving for 
-\begin_inset Formula $\alpha$
-\end_inset
-
-, we arrive at the simple equation
-\begin_inset Formula \[
-\alpha\sim\frac{\log(\varepsilon_{2}/\varepsilon_{1})}{\log(h_{2}/h_{1})}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-In general, if solutions are available for several refinement levels 
-\begin_inset Formula $\Omega_{i}$
-\end_inset
-
-, we can estimate 
-\begin_inset Formula $\alpha$
-\end_inset
-
- by performing linear regression analysis on the equation
-\begin_inset Formula \[
-\log\varepsilon_{i}=\log C+\alpha\log h_{i}\]
-
-\end_inset
-
-with regression variables 
-\begin_inset Formula $X_{i}=\log h_{i}$
-\end_inset
-
- and 
-\begin_inset Formula $Y_{i}=\log\varepsilon_{i}$
-\end_inset
-
-.
- The slope of the regression line will result in an estimate of 
-\begin_inset Formula $\alpha.$
-\end_inset
-
- A short script called 
-\family typewriter
-power-plot.py
-\family default
-, based on the SciPy and Matplotlib Python modules, is provided for calculating
- and plotting the regression line associated with the input points 
-\begin_inset Formula $(X_{i},Y_{i})$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Chapter
-Running Cigma
-\end_layout
-
-\begin_layout Standard
-Cigma is primarily designed for calculating error estimates between arbitrary
- functions, where the primary operation has the form
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare 
-\series bold
-\bar under
-FunctionA
-\series default
-\bar default
- 
-\series bold
-\bar under
-FunctionB
-\series default
-\bar default
- -m 
-\series bold
-\bar under
-IntegrationMesh
-\series default
-\bar default
- -o 
-\series bold
-\bar under
-LocalResiduals
-\end_layout
-
-\begin_layout Standard
-This command will compute local and global error metrics for the difference
- between two functions specified on the command line.
- Typically, you will also want to specify a particular discretization to
- use as the integration mesh.
- The output file will be used to store the results of the comparison, which
- are defined relative to the integration mesh.
-\end_layout
-
-\begin_layout Standard
-In this chapter, we give a general overview of the options used in Cigma,
- and show actual usage examples in the next Chapter.
- To access the full list of options simply run the 
-\family typewriter
-cigma help
-\family default
- command.
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma help
-\end_layout
-
-\begin_layout LyX-Code
-Usage: cigma <subcommand> [options] [args]
-\end_layout
-
-\begin_layout LyX-Code
-Type 'cigma help <subcommand>' for help on a specific subcommand.
-\end_layout
-
-\begin_layout LyX-Code
-Type 'cigma --version' to see the program version
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Available subcommands:
-\end_layout
-
-\begin_layout LyX-Code
-   compare        Calculate local and global residuals over two fields
-\end_layout
-
-\begin_layout LyX-Code
-   eval           Evaluate function at specified quadrature points
-\end_layout
-
-\begin_layout LyX-Code
-   extract        Extract quadrature points from a mesh
-\end_layout
-
-\begin_layout LyX-Code
-   list           List file contents (fields, dimensions, ...)
-\end_layout
-
-\begin_layout LyX-Code
-   mesh-info      Show information about specified mesh
-\end_layout
-
-\begin_layout LyX-Code
-   function-info  Show list of pre-defined functions
-\end_layout
-
-\begin_layout LyX-Code
-   element-info   Show information about available element types
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Cigma is a tool for querying & analyzing numerical models.
- For additional information, visit http://geodynamics.org/ 
-\end_layout
-
-\begin_layout Standard
-The rest of this chapter deals.
-\end_layout
-
-\begin_layout Section
-Selecting a Dataset
-\end_layout
-
-\begin_layout Standard
-All datasets in Cigma are assumed to be simple two dimensional array of
- values.
- As most scientific formats are capable of storing multiple datasets in
- the same file, you will need a consistent way to select a specific array
- on a given data file.
- Therefore, all option arguments to Cigma that expect a dataset can be specified
- in the form 
-\family typewriter
-\series bold
-Filename:Location
-\family default
-\series default
-.
- If the 
-\emph on
-filename
-\emph default
- part unambiguously determines the target array, then the 
-\emph on
-location
-\emph default
- part of the option argument may be omitted.
- There are a number of different file formats available for specifying and
- storing your data, according to how Cigma was configured at build time.
- The file format will be derived directly from the 
-\emph on
-filename
-\emph default
- extension.
-\end_layout
-
-\begin_layout Section
-Mesh Options
-\end_layout
-
-\begin_layout Standard
-A mesh block is associated with three items of information: (1) geometrical
- information for a number of nodes defined on a global coordinate system,
- and (2) topological information describing how those nodes are connected
- to each other to form elements, and (3) an element type associated with
- the cell.
- In Cigma, these items are determined by the following command line options,
- arranged in tabular format for easy reference.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="5">
-<features>
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Option
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
-\series bold
-\bar under
-MeshA
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
-\series bold
-\bar under
-MeshB
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
-\series bold
-\bar under
-IntegrationMesh
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Items Read
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-M
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---first-mesh
-\end_layout
-
-\end_inset
-</cell>
-<cell multicolumn="1" alignment="left" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---second-mesh
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---mesh
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-(1,2,3)
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-M1
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---first-mesh-coords
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---second-mesh-coords
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---mesh-coords
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-(1)
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-M2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---first-mesh-connect
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---second-mesh-connect
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---mesh-connect
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-(2)
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-MC
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---first-cell
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---second-cell
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---mesh-cell
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-(3)
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-There are a number of rules determining which of these options are required.
- For any of the 
-\bar under
-MeshA
-\bar default
-, 
-\bar under
-MeshB
-\bar default
-, 
-\bar under
-IntegrationMesh
-\bar default
- columns in the table above, the relationship between these options is as
- follows:
-\end_layout
-
-\begin_layout Enumerate
-If option (M) is given, then options (M1) and (M2) are forbidden.
-\end_layout
-
-\begin_layout Enumerate
-If option (M) is missing, then both options (M1) and (M2) must be specified.
-\end_layout
-
-\begin_layout Enumerate
-Option (MC) can be deduced from option (M)
-\end_layout
-
-\begin_layout Enumerate
-Option (MC) is required if options (M1) and (M2) are given.
-\end_layout
-
-\begin_layout Standard
-It is important to note that Cigma assumes every element in the mesh uses
- the same basis functions.
-\end_layout
-
-\begin_layout Subsection
-Mesh Files
-\end_layout
-
-\begin_layout Standard
-When using an HDF5 file to store the mesh information, the 
-\emph on
-location
-\emph default
- associated with option (M) must point to an HDF5 group that contains two
- arrays with the relevant mesh information.
- Those two arrays must be named 
-\family typewriter
-\series bold
-coordinates
-\family default
-\series default
- and 
-\family typewriter
-\series bold
-connectivity
-\family default
-\series default
-.
- If the 
-\emph on
-location
-\emph default
- is empty, as is the case when only 
-\emph on
-filename
-\emph default
- is specified, then the HDF5 group is assumed to be the root group 
-\family typewriter
-/
-\family default
- of the hierarchy.
- Lastly, the option (MC) can be omitted if the HDF5 group has an attribute
- called 
-\family typewriter
-\series bold
-\emph on
-CellType
-\family default
-\series default
-\emph default
- with the appropriate value.
-\end_layout
-
-\begin_layout LyX-Code
-File
-\emph on
- 
-\bar under
-filename
-\end_layout
-
-\begin_layout LyX-Code
-
-\emph on
- 
-\emph default
- Group
-\emph on
- 
-\bar under
-location
-\end_layout
-
-\begin_layout LyX-Code
-  |-- 
-\emph on
-Attribute
-\emph default
- 
-\series bold
-\emph on
-CellType
-\end_layout
-
-\begin_layout LyX-Code
-  |-- 
-\emph on
-Array
-\emph default
- 
-\series bold
-coordinates
-\end_layout
-
-\begin_layout LyX-Code
-  `-- 
-\emph on
-Array
-\emph default
- 
-\series bold
-connectivity
-\end_layout
-
-\begin_layout Standard
-may specify options (M1) and (M2) separately by pointing directly to the
- arrays corresponding to the coordinates and connectivity information.
- The node ordering on the connectivity dataset is described in Appendix
- A.
-\end_layout
-
-\begin_layout Standard
-Alternatively, using a VTK file is very convenient.
- In this case, no 
-\emph on
-location
-\emph default
- needs to be specified since all the appropriate information can be read
- implicitly from the 
-\family typewriter
-POINTS
-\family default
-, and 
-\family typewriter
-CELLS
-\family default
- datasets, which are required by the VTK file format.
- The value of the option (MC) is determined from the first entry in the
- 
-\family typewriter
-CELL_TYPES
-\family default
- dataset, since we are limiting ourselves to element blocks consisting of
- a single cell type.
- 
-\end_layout
-
-\begin_layout Standard
-Another convenient way to prepare a mesh file for use with Cigma is to use
- the ExodusII format created by the CUBIT mesh generation toolkit.
- In this case, the mesh can be stored on disk using the NetCDF format.
- It suffices to give the 
-\emph on
-filename
-\emph default
-, without the 
-\emph on
-location
-\emph default
- part, to option (M).
- The appropriate mesh information will be read from the file.
- Only the first element block in the ExodusII file is used.
- The value of the (MC) option is determined from the NetCDF string attribute
- 
-\family typewriter
-elem_type
-\family default
- that is attached to the NetCDF integer variable called 
-\family typewriter
-connect1
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-Lastly, it is also possible to use a simple text file, in which case all
- three options (M1), (M2), and (MC) are required.
-\end_layout
-
-\begin_layout Subsection
-Integration Mesh
-\end_layout
-
-\begin_layout Standard
-An integration mesh can be specified by the command line options in Section
- 3.2, subject to the following rules
-\end_layout
-
-\begin_layout Enumerate
-At least one of 
-\bar under
-MeshA
-\bar default
-, 
-\bar under
-MeshB
-\bar default
-, or 
-\bar under
-IntegrationMesh
-\bar default
- must be given.
-\end_layout
-
-\begin_layout Enumerate
-If 
-\bar under
-IntegrationMesh
-\bar default
- is specified, then it is always used.
-\end_layout
-
-\begin_layout Enumerate
-If 
-\bar under
-IntegrationMesh
-\bar default
- is missing, then 
-\bar under
-MeshA
-\bar default
- is copied to 
-\bar under
-IntegrationMesh
-\bar default
-.
-\end_layout
-
-\begin_layout Enumerate
-If only 
-\bar under
-MeshB
-\bar default
- is given, then it is copied to 
-\bar under
-IntegrationMesh
-\bar default
-.
-\end_layout
-
-\begin_layout Standard
-Deciding if a given mesh is adequate for accurately capturing the error
- in the comparison will clearly depend on the functions being compared.
- One strategy to ensure an adequate mesh would be to take the discretization
- cells on which the error metric exceeds a certain threshold, mark those
- cells for refinement, and recalculate the residuals over the new discretization
-, repeating the process if necessary.
- This strategy could be implemented on top of Cigma as a series of post-processi
-ng steps by writing a suitable program or script that repeats this refinement
- process until the variations in the global error metric are small enough.
- Both of the TetGen and CUBIT mesh generators are capable of refining.
-\end_layout
-
-\begin_layout Standard
-A second strategy would be to increase the order of the quadrature rule
- that we associate with the cells in the integration mesh.
- This has the advantage that we can increase the accuracy of the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
--norm without 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="4" columns="2">
-<features>
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="left" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-IntegrationRule
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-R
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---rule
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-R1
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---rule-points
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-R2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\family typewriter
---rule-weights
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Various quadrature rules for different cell types are available in the top
- level file 
-\family typewriter
-integration-rules.h5
-\end_layout
-
-\begin_layout Section
-Function Options
-\end_layout
-
-\begin_layout Standard
-The requirements on the kind of functions that Cigma will accept are relatively
- quite stringent.
- Recall from Chapter 3 that computing the local error metric involves approximat
-ing a local error integral by a finite weighed sum over specific quadrature
- points.
- If we allow arbitrary meshes for the integration procedure, that means
- that we must be able to evaluate our functions wherever those quadrature
- points may lie.
- This implies that our functions must be capable of evaluating on arbitrary
- points, which may not always be possible due to missing information, or
- it may be too inefficient without first building an appropriate spatial-index
- database.
-\end_layout
-
-\begin_layout Subsection
-By an Explicit Function
-\end_layout
-
-\begin_layout Standard
-Sometimes you will be able to express a function in terms of a general formula
- or algorithm, in which case would like to be able to refer to such a function
- by using a simple name when specifying either of the 
-\bar under
-FunctionA
-\bar default
- or 
-\bar under
-FunctionB
-\bar default
- arguments.
- Defining your own functions is ideal for analytic functions that other
- people downloading Cigma can use to benchmark their own codes.
- You may refer to Appendix B for help in defining your own functions.
-\end_layout
-
-\begin_layout Subsection
-By a Finite Element Field
-\end_layout
-
-\begin_layout Standard
-A finite element description of a function is associated with three items
- of information: (1) a finite set of local basis functions, (2) a discretization
- over which the function is locally approximated by those basis functions,
- and finally (3) a global list of shape function coefficients that yield
- the closest approximation to the function.
- How these items are specified depends on the underlying file format used
- to store the finite element description to our function.
- Items (1) and (2) are typically deduced from the appropriate mesh options
- discussed in Section 4.2, while item (3) is determined from the dataset
- given to either of the 
-\family typewriter
---first
-\family default
- or 
-\family typewriter
---second
-\family default
- command line options.
-\end_layout
-
-\begin_layout Standard
-If the dataset is stored in an HDF5 file, item (3) would be typically specified
- as a single array containing the shape function coefficients.
- You can optionally attach an attribute called MeshLocation to that dataset.
-\end_layout
-
-\begin_layout LyX-Code
-File
-\emph on
- 
-\bar under
-filename
-\end_layout
-
-\begin_layout LyX-Code
-
-\emph on
- 
-\emph default
- Group
-\emph on
- 
-\bar under
-location
-\end_layout
-
-\begin_layout LyX-Code
-  |-- Group 
-\series bold
-temperature
-\end_layout
-
-\begin_layout LyX-Code
-  |   |-- Array 
-\series bold
-step000
-\end_layout
-
-\begin_layout LyX-Code
-  |   |   `-- Attribute 
-\series bold
-\emph on
-MeshLocation
-\end_layout
-
-\begin_layout LyX-Code
-  |   |-- Array 
-\series bold
-step001
-\end_layout
-
-\begin_layout LyX-Code
-  |   |   `-- Attribute 
-\series bold
-\emph on
-MeshLocation
-\end_layout
-
-\begin_layout LyX-Code
-  |   `-- ...
-\end_layout
-
-\begin_layout LyX-Code
-  `-- Group displacements
-\end_layout
-
-\begin_layout LyX-Code
-      |-- ...
-\end_layout
-
-\begin_layout LyX-Code
-      `-- ...
-\end_layout
-
-\begin_layout Standard
-Note that in this example, we have grouped all fields by variable name first
- and then by time step, but we could have easily grouped everything by time
- step first and then by variable name.
- Cigma will only operate on the full path to a dataset , leaving you the
- freedom to organize your data as you see fit.
-\end_layout
-
-\begin_layout Standard
-If the dataset is stored in a VTK file, currently you can only use Point
- Data arrays.
- 
-\end_layout
-
-\begin_layout Section
-Visualizing the Local 
-\begin_inset Formula $L^{2}$
-\end_inset
-
- Residuals
-\end_layout
-
-\begin_layout Standard
-The command 
-\family typewriter
-cigma compare
-\family default
- will always output the local residuals in the 
-\begin_inset Quotes eld
-\end_inset
-
-raw
-\begin_inset Quotes erd
-\end_inset
-
- form described in Section 3.5.
- However, for visualization purposes, you may wish to renormalize the integrated
- errors 
-\begin_inset Formula $\varepsilon_{e}$
-\end_inset
-
- by the corresponding integration-cell volumes 
-\begin_inset Formula $v_{e}$
-\end_inset
-
-, so that errors accumulated over smaller cells have more visual influence
- than errors of the same magnitude accumulated over larger cells.
- It may be also be useful visually, to output the logarithm of the residual
- values, which will accentuate the contrast betwen the orders of magnitude
- in the local residuals.
- For these reasons, we include in Cigma a post-processing utility called
- 
-\family typewriter
-vtk-residuals
-\family default
- that can take residuals stored in HDF5 format and output a simple legacy
- VTK file, which can then be conveniently visualized using any number of
- visualization packages.
- The utility 
-\family typewriter
-vtk-residuals
-\family default
- can be used as follows,
-\end_layout
-
-\begin_layout LyX-Code
-$ vtk-residuals [...] -m 
-\bar under
-MeshFile
-\bar default
- -i 
-\bar under
-InputResiduals.h5:/path
-\bar default
- -o 
-\bar under
-OutputResiduals.vtk
-\end_layout
-
-\begin_layout Standard
-By default, this command will only copy the residual values from the input
- HDF5 file into the output VTK file.
- Further processing can be performed by specifying two additional options.
- The option 
-\family typewriter
---divide-by-cell-volumes
-\family default
- will normalize each local residual by its corresponding cell volume in
- the MeshFile.
- The other option is 
-\family typewriter
---output-log-values
-\family default
-, which will write the logarithms (base 10) of the final residual values
- to the VTK file, allowing you to visualize the residuals using a logarithmic
- scale.
-\end_layout
-
-\begin_layout Section
-Troubleshooting
-\end_layout
-
-\begin_layout Standard
-The rest of the Cigma commands are there to help you query your model, so
- you can tell whether the input files are properly specified, or whether
- the function information is being interpreted correctly before evaluations.
-\end_layout
-
-\begin_layout Subsection
-Working with a Mesh
-\end_layout
-
-\begin_layout Standard
-Using the command 
-\family typewriter
-cigma mesh-info
-\family default
-, you can examine your mesh files and extract basic information such as
- the number of nodes and cells, the total volume, bounding box, and the
- maximum cell diameter of your mesh.
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma mesh-info 
-\series bold
-MESH
-\end_layout
-
-\begin_layout Standard
-You can also extract connectivity information for a specific cell in your
- mesh, which will help you find out whether the elements that your finite
- element model uses have the same node ordering as the elements in Cigma,
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma mesh-info 
-\series bold
-MESH
-\series default
- --cell-id=N
-\end_layout
-
-\begin_layout Standard
-Lastly, you can also query an arbitrary point within the mesh,
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma mesh-info 
-\series bold
-MESH
-\series default
- --query-point=
-\begin_inset Quotes erd
-\end_inset
-
-[x,y,z]
-\begin_inset Quotes erd
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-which you can use to verify that the underlying spatial index that maps
- points to cells is working properly.
-\end_layout
-
-\begin_layout Standard
-In general, the 
-\family typewriter
-cigma mesh-info
-\family default
- command will help you detect when you have specified the connectivity informati
-on incorrectly.
- For example, you may find that some of the cell volumes are negative, or
- that you are unable to query a point which should be found somewhere within
- the mesh inside a specific cell.
-\end_layout
-
-\begin_layout Subsection
-Working with Functions
-\end_layout
-
-\begin_layout Standard
-Finding information on given function can be done with the 
-\family typewriter
-cigma function-info
-\family default
- command.
- Using it without arguments will return the list of functions that have
- been compiled into Cigma.
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout LyX-Code
-one
-\end_layout
-
-\begin_layout LyX-Code
-zero
-\end_layout
-
-\begin_layout LyX-Code
-test.square
-\end_layout
-
-\begin_layout LyX-Code
-test.cube
-\end_layout
-
-\begin_layout LyX-Code
-...
-\end_layout
-
-\begin_layout Standard
-You can also query any function accepted by the 
-\family typewriter
-cigma compare
-\family default
- command, not just builtin ones, at any arbitrary point in its function
- domain,
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info 
-\series bold
-FUNCTION
-\series default
- --query-point=
-\begin_inset Quotes erd
-\end_inset
-
-[x,y,z]
-\begin_inset Quotes erd
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This will allow you to verify whether the function is reporting the correct
- value at the expected point.
- You can use this to check that the element interpolations are done correctly,
- and whether a newly defined analytic function returns the appropriate values
- on a selection of points.
-\end_layout
-
-\begin_layout Subsection
-Working with Elements
-\end_layout
-
-\begin_layout Standard
-On a more basic level, you can also verify that the elements basis functions
- work as expected, especially if you decide to extend Cigma by adding your
- own element types.
- Calling the 
-\family typewriter
-cigma element-info
-\family default
- command without arguments will generate the list of registered elements.
- Note that the names of the element types listed here correspond to the
- acceptable values that you can give to the (MC) argument discussed in Section
- 4.2.
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma element-info
-\end_layout
-
-\begin_layout LyX-Code
-List of elements available for use in a Field:
-\end_layout
-
-\begin_layout LyX-Code
-   tet4, tet10
-\end_layout
-
-\begin_layout LyX-Code
-   hex8
-\end_layout
-
-\begin_layout LyX-Code
-   tri3, tri6
-\end_layout
-
-\begin_layout LyX-Code
-   quad4
-\end_layout
-
-\begin_layout Standard
-For example, querying the hex8 element would result in the following information
- being displayed
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma element-info hex8
-\end_layout
-
-\begin_layout LyX-Code
-Information on cell 'hex8'
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Reference-Cell Nodes:
-\end_layout
-
-\begin_layout LyX-Code
-     0  -1.000000 -1.000000 -1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     1  +1.000000 -1.000000 -1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     2  +1.000000 +1.000000 -1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     3  -1.000000 +1.000000 -1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     4  -1.000000 -1.000000 +1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     5  +1.000000 -1.000000 +1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     6  +1.000000 +1.000000 +1.000000
-\end_layout
-
-\begin_layout LyX-Code
-     7  -1.000000 +1.000000 +1.000000
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Shape functions:
-\end_layout
-
-\begin_layout LyX-Code
-   N[0] = 0.125 * (1.0 - u) * (1.0 - v) * (1.0 - w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[1] = 0.125 * (1.0 + u) * (1.0 - v) * (1.0 - w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[2] = 0.125 * (1.0 + u) * (1.0 + v) * (1.0 - w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[3] = 0.125 * (1.0 - u) * (1.0 + v) * (1.0 - w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[4] = 0.125 * (1.0 - u) * (1.0 - v) * (1.0 + w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[5] = 0.125 * (1.0 + u) * (1.0 - v) * (1.0 + w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[6] = 0.125 * (1.0 + u) * (1.0 + v) * (1.0 + w)
-\end_layout
-
-\begin_layout LyX-Code
-   N[7] = 0.125 * (1.0 - u) * (1.0 + v) * (1.0 + w)
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout LyX-Code
-Default integration rule (weights & points):
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   -0.577350 -0.577350 -0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   +0.577350 -0.577350 -0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   +0.577350 +0.577350 -0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   -0.577350 +0.577350 -0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   -0.577350 -0.577350 +0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   +0.577350 -0.577350 +0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   +0.577350 +0.577350 +0.577350
-\end_layout
-
-\begin_layout LyX-Code
-    1.000000   -0.577350 +0.577350 +0.577350 
-\end_layout
-
-\begin_layout Standard
-You will need the corresponding mesh in order to query the shape function
- values.
- These reference meshes are provided in the top level data file 
-\family typewriter
-reference-cells.h5
-\family default
-.
- Querying 
-\begin_inset Formula $N_{0}$
-\end_inset
-
- for tet4 at the other corner nodes, for example, would be accomplished
- with,
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info reference-cells.h5:/tet4/dofs/N0 --query-point 0,0,0
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info reference-cells.h5:/tet4/dofs/N0 --query-point 1,0,0
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info reference-cells.h5:/tet4/dofs/N0 --query-point 0,1,0
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma function-info reference-cells.h5:/tet4/dofs/N0 --query-point 0,0,1
-\end_layout
-
-\begin_layout Standard
-which serves as a quick check that 
-\begin_inset Formula $N_{0}$
-\end_inset
-
- is 1 one vertex, and 0 at the other vertices.
-\end_layout
-
-\begin_layout Chapter
-Examples
-\end_layout
-
-\begin_layout Section
-Calculating Order of Convergence
-\end_layout
-
-\begin_layout Subsection
-Laplace Problem
-\end_layout
-
-\begin_layout Subsection
-Mantle Convection
-\end_layout
-
-\begin_layout Standard
-For this example, we have calculated obtained three levels of refinement,
- in the files 
-\family typewriter
-citcomcu.case8.vtr
-\family default
-, 
-\family typewriter
-citcomcu.case16.vtr
-\family default
-, and 
-\family typewriter
-citcomcu.case32.vtr
-\family default
-, and we would like to estimate how fast we are converging.
- First we perform the comparison using the commands
-\end_layout
-
-\begin_layout LyX-Code
-$ export v=velocity
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare citcomcu.case32.vtr:$v citcomcu.case8.vtr:$v  -o citcomcu.h5:/case_32
-_08
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare citcomcu.case32.vtr:$v citcomcu.case16.vtr:$v -o citcomcu.h5:/case_32
-_16
-\end_layout
-
-\begin_layout Standard
-Since we did not specify an integration mesh, the mesh from the first field
- is used.
- 
-\end_layout
-
-\begin_layout Subsection
-Circular Inclusion Benchmark
-\end_layout
-
-\begin_layout LyX-Code
-$ export var=PressureField
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare p256.vts:${var} p128.vts:${var} -o circular_inclusion.h5:/pressure_
-256_128 -v
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare p256.vts:${var} p64.vts:${var}  -o circular_inclusion.h5:/pressure_
-256_064 -v
-\end_layout
-
-\begin_layout Subsection
-Strikeslip Benchmark Convergence
-\end_layout
-
-\begin_layout Standard
-This benchmark problem computes the viscoelastic (Maxwell) relaxation of
- stresses from a single, finite strike-slip earthquake in 3D without gravity.
-\end_layout
-
-\begin_layout LyX-Code
-$ export a=hex8_0500m
-\end_layout
-
-\begin_layout LyX-Code
-$ export b=hex8_1000m
-\end_layout
-
-\begin_layout LyX-Code
-$ export var=displacements
-\end_layout
-
-\begin_layout LyX-Code
-$ export steps=`seq -f '%04g' 0 10 100`  # generates list 0 10 20 ...
- 100
-\end_layout
-
-\begin_layout LyX-Code
-$ for n in ${steps}; do
-\end_layout
-
-\begin_layout LyX-Code
-    echo 
-\begin_inset Quotes eld
-\end_inset
-
-Calculating ${a}-${b}-${n}
-\begin_inset Quotes erd
-\end_inset
-
-
-\end_layout
-
-\begin_layout LyX-Code
-    cigma compare 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-      strikeslip_${a}_t${n}.vtk:${var} 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-      strikeslip_${b}_t${n}.vtk:${var} 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-      -o 
-\begin_inset Quotes eld
-\end_inset
-
-strikeslipnog.h5:/${var}-${a}-${b}-${n}
-\begin_inset Quotes erd
-\end_inset
-
- 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-      --verbose
-\end_layout
-
-\begin_layout LyX-Code
-  done
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Section
-Comparison Involving an Analytic Benchmark
-\end_layout
-
-\begin_layout Standard
-In the current version of Cigma, two analytic benchmark functions have been
- pre-defined, available under the somewhat verbose names 
-\family typewriter
-bm.ssnog.displacement
-\family default
- and 
-\family typewriter
-bm.gale.circular_inclusion.pressure
-\family default
-.
- You can use these as templates for defining your own analytic functions.
-\end_layout
-
-\begin_layout Standard
-The benchmark functions can be used just as in Section 5.1.3
-\end_layout
-
-\begin_layout LyX-Code
-$ export var=PressureField
-\end_layout
-
-\begin_layout LyX-Code
-$ export bm=bm.gale.circular_inclusion
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare ${bm}.pressure p256.vts:${var} -o res_ci.h5:/pressure_256 -v
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare ${bm}.pressure p128.vts:${var} -o res_ci.h5:/pressure_128 -v
- 
-\end_layout
-
-\begin_layout LyX-Code
-$ cigma compare ${bm}.pressure p64.vts:${var}  -o res_ci.h5:/pressure_064 -v
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Chapter
-\start_of_appendix
-Input and Output
-\end_layout
-
-\begin_layout Section
-Supported File Formats
-\end_layout
-
-\begin_layout Standard
-Cigma can understand a number of file formats, depending on how it is configured
- (see Chapter 2).
- By default it will read and write all information in binary form as HDF5
- files, which is format optimal for archiving data with minimal redundancy.
- VTK files are also sometimes used by finite element software, due to the
- ease with which the solution fields can be visualize.
- Lastly, ExodusII mesh files generated by the CUBIT mesh generation package
- can also be used directly as integration meshes.
-\end_layout
-
-\begin_layout Standard
-The simplest format you can use is a simple text file (with extension 
-\family typewriter
-.dat
-\family default
-) containing a single array.
- The most flexible way to store your arrays will be to use an HDF5 file
- (with extension 
-\family typewriter
-.h5
-\family default
-), which will allow you to organize your arrays in a hierarchy.
- You will also have the ability to attach metadata attributes.
- 
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float table
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="7" columns="3">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.h5
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input/output
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-HDF5 Format
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.dat
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input/output
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Text Format
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.vtk
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input/output
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Legacy VTK Format
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.vtu
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-VTK File for Unstructured Datasets
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.vts
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-VTK File for Structured Datasets
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.vtr
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-VTK File for Rectilinear Datasets
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-.exo
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-input
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Exodus Mesh Format
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-Overview of Cigma's file formats
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Data Formats
-\end_layout
-
-\begin_layout Standard
-The basic data structure is a two-dimensional array of values, stored in
- a contiguous format as shown below 
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(m,n)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Data
-\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 $a_{11},a_{12},\ldots,a_{1n}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $a_{21},a_{22},\ldots,a_{2n}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\cdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $a_{m1},a_{m2},\ldots,a_{mn}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\newline
-
-The second index in this array varies the fastest, so that data often referenced
- together remains together in memory as well.
-\end_layout
-
-\begin_layout Subsection
-Node Coordinates
-\end_layout
-
-\begin_layout Standard
-On a mesh with 
-\begin_inset Formula $n_{no}$
-\end_inset
-
- node coordinates, which are specified on a global coordinate system, we
- have.
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "100col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Standard
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(n_{no},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Coordinates
-\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 $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{n_{no}},y_{n_{no}},z_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\begin_inset Box Frameless
-position "t"
-hor_pos "c"
-has_inner_box 1
-inner_pos "t"
-use_parbox 0
-width "50col%"
-special "none"
-height "1in"
-height_special "totalheight"
-status open
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(n_{no},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Coordinates
-\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 $x_{1},y_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{n_{no}},y_{n_{no}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Element Connectivity
-\end_layout
-
-\begin_layout Standard
-Mesh connectivity is specified at the element-block level.
- On a given block, we only consider a single element type, which allows
- us to store the global node ids into a contiguous array of integers.
- Multiple blocks are specified separately, and they all reference the same
- node ids into the node coordinates table.
-\end_layout
-
-\begin_layout Standard
-In general, if our block contains 
-\begin_inset Formula $k$
-\end_inset
-
- elements with 
-\begin_inset Formula $m$
-\end_inset
-
--degrees of freedom each, then the connectivity array defining our element
- block has the form
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(k,m)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Connectivity Data
-\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 $n_{11},n_{12},\ldots,n_{1m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $n_{21},n_{22},\ldots,n_{2m}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $n_{k1},n_{k2},\ldots,n_{km}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-For the element types defined in Cigma, the values for 
-\begin_inset Formula $m$
-\end_inset
-
- are as follows.
- Note that the total number of degrees of freedom depends on the rank of
- the specific function being represented.
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-tet4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-12
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-24
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-tet10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-10
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-30
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-60
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-hex8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-24
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-48
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-hex20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-20
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-60
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-120
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-hex27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-27
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-81
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-162
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-Similarly for the 2-D elements, we have
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="3" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Element
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Scalar
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Vector
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Tensor
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-tri3
-\end_layout
-
-\end_inset
-</cell>
-<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
-6
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-9
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-quad4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-4
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-8
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-12
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Field Variables
-\end_layout
-
-\begin_layout Standard
-A field variable represents one of the functions that we can evaluate, and
- is typically stored over a series of timesteps.
- The data for a field variable consists of snapshots through time, which
- are stored as separate arrays.
- A value for each degree of freedom is provided on the global list of nodes
- in the mesh.
-\end_layout
-
-\begin_layout Subsection
-Shape Function Values
-\end_layout
-
-\begin_layout Standard
-In certain circumstances you may be able to provide your custom reference
- element by simply providing the appropriate 
-\begin_inset Formula $n$
-\end_inset
-
- shape function values to be used at the expected integration points.
- This is most useful when you are using the same mesh for both the integration
- mesh and the array.
-\newline
-
-
-\newline
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="3">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Shape Function Values: 
-\begin_inset Formula $(n,Q)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Jacobian Determinant: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Integration Point 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 $N_{1}(\vec{\xi}_{1}),N_{2}(\vec{\xi}_{1}),\ldots,N_{n}(\vec{\xi}_{1})$
-\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 $J(\vec{\xi}_{1})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Integration Point 2
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $N_{1}(\vec{\xi}_{2}),N_{2}(\vec{\xi}_{2}),\ldots,N_{n}(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $J(\vec{\xi}_{2})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Integration Point 
-\begin_inset Formula $Q$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $N_{1}(\vec{\xi}_{Q}),N_{2}(\vec{\xi}_{Q}),\ldots,N_{n}(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $J(\vec{\xi}_{Q})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Integration Rule
-\end_layout
-
-\begin_layout Standard
-As described in Chapter 4, an integration rule is specified by a list of
- points and associated weights.
- The points are given on natural coordinate system of the reference element.
- 
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="5">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<column alignment="center" valignment="top" width="0" leftline="false" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Weights: 
-\begin_inset Formula $(Q,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Points: 
-\begin_inset Formula $(Q,n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Points: 
-\begin_inset Formula $(Q,2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Points: 
-\begin_inset Formula $(Q,3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Rule Definition
-\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 $w_{1}$
-\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 $\vec{\xi}_{1}$
-\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 $\xi_{1},\eta_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\xi_{1},\eta_{1},\zeta_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $w_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vec{\xi}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\xi_{2},\eta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\xi_{2},\eta_{2},\zeta_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $w_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vec{\xi}_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\xi_{Q},\eta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\xi_{Q},\eta_{Q},\zeta_{Q}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\newline
-
-
-\end_layout
-
-\begin_layout Subsection
-Integration Points and Values
-\end_layout
-
-\begin_layout Standard
-Given a mesh and an integration rule, we can map the integration points
- on each element into a possibly large set of global points.
-\newline
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="4">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Points: 
-\begin_inset Formula $(n_{pts},n_{dim})$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Points: 
-\begin_inset Formula $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Points: 
-\begin_inset Formula $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Coordinates
-\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 $\vec{x}_{1}$
-\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 $x_{1},y_{1}$
-\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 $x_{1},y_{1},z_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vec{x}_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{2},y_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{2},y_{2},z_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vec{x}_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{n_{pts}}y_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $x_{n_{pts}},y_{n_{pts}},z_{n_{pts}}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\newline
-
-The result of an evaluation will depend on the rank of the function being
- evaluated, as indicated in the table below.
- Note that the fastest varying dimension of the array contains the components
- of the function value at each point.
-\newline
-
-
-\newline
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="6" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Evaluated Quantity
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Resulting Array Shape
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Scalar
-\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 $(n_{pts},1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Vector
-\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 $(n_{pts},2)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Vector
-\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 $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2-D Tensor
-\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 $(n_{pts},3)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3-D Tensor
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(n_{pts},6)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Comparison Residuals
-\end_layout
-
-\begin_layout Standard
-Since our norm reduces integrals over cells to a single scalar value, the
- result of a comparison will result in a simple scalar array for each element
- block examined.
- Note that element blocks used in the integration process belong to the
- integration mesh, which may differ from the associated mesh to either function.
-\end_layout
-
-\begin_layout Standard
-Thus, for each element block containing 
-\begin_inset Formula $k$
-\end_inset
-
- cells, we have the output array
-\newline
-
-
-\newline
-
-
-\begin_inset Tabular
-<lyxtabular version="3" rows="5" columns="2">
-<features>
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="false">
-<column alignment="center" valignment="top" width="0" leftline="true" rightline="true">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Array Shape
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $(k,1)$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="true" bottomline="false">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Residual Value
-\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 $\varepsilon_{1}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\varepsilon_{2}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="false">
-<cell alignment="center" valignment="top" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\vdots$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row topline="false" bottomline="true">
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" bottomline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Formula $\varepsilon_{k}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\newline
-
-
-\newline
-
-These residual values may be combined in the following form: 
-\begin_inset Formula \[
-\varepsilon_{block}=\sqrt{\varepsilon_{1}^{2}+\varepsilon_{2}^{2}+\cdots+\varepsilon_{k}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The final global residual norm maybe obtained by simply summing over all
- element blocks that partition the domain of interest:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \[
-\varepsilon_{global}=\sqrt{\sum_{block}\varepsilon_{block}^{2}}\]
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Section
-Input Files
-\end_layout
-
-\begin_layout Standard
-In Section 1.1, we examined what kinds of objects we will be accessing, so
- now let's discuss the actual layout in the files in which these objects
- will be stored.
-\end_layout
-
-\begin_layout Subsection
-HDF5
-\end_layout
-
-\begin_layout Standard
-HDF5 files are binary files encoded in a data format designed to store large
- amounts of scientific data in a portable and self-describing way.
-\end_layout
-
-\begin_layout Standard
-The internal organization of a typical HDF5 file consists of a hierarchical
- structure similar to a UNIX file system.
- Two types of primary objects, 
-\emph on
-groups
-\emph default
- and 
-\emph on
-datasets
-\emph default
-, 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.
- In a sense, datasets are analogous to files in a traditional filesystem,
- and groups are analagous to folders.
- One important difference, however, is that you can attach supporting metadata
- to both kinds of objects.
- The metadata objects are called 
-\emph on
-attribute
-\emph default
-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
-In Cigma you may always provide an explicit path to every dataset, so you
- have a fair amount of flexibility for how you organize your datasets inside
- HDF5 files.
- For example, a typical Cigma HDF5 file could have 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
-        |__ temperature
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00000  [nno x 1]
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00010  [nno x 1]
-\end_layout
-
-\begin_layout LyX-Code
-        |   
-\backslash
-...
-\end_layout
-
-\begin_layout LyX-Code
-        |__ displacement
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00000  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-        |   |__ step00010  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-        |   
-\backslash
-...
-\end_layout
-
-\begin_layout LyX-Code
-        
-\backslash
-__ velocity
-\end_layout
-
-\begin_layout LyX-Code
-            |__ step00000  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-            |__ step00010  [nno x 3]
-\end_layout
-
-\begin_layout LyX-Code
-            
-\backslash
-...
-\end_layout
-
-\begin_layout Standard
-Generally, Cigma will only require you to specify the path to a specific
- field dataset.
- If a small amount of metadata is present in your field dataset, the rest
- of the required information, such as which mesh and finite elements to
- use, will be deduced from that metadata.
-\end_layout
-
-\begin_layout Description
-MeshLocation points to the HDF5 group which contains the appropriate coordinates
- and connectivity datasets.
- This attribute should be attached to the array corresponding to your degrees
- of freedom (shape function coefficients).
-\end_layout
-
-\begin_layout Description
-CellType string identifier to determine which shape functions to use for
- interpolating values inside the element (e.g., tet4, hex8, quad4, tri3, ...).
- This attribute should be attached to the mesh dataset.
-\end_layout
-
-\begin_layout Standard
-Even if you forgot to set these attributes when creating your HDF5 datasets,
- setting or changing them can be done easily by using the 
-\family typewriter
-h5attr
-\family default
- utility included in Cigma.
- For example, the following command would let Cigma know that the path 
-\family typewriter
-/model/mesh
-\family default
- corresponds to a linear tetrahedral mesh
-\end_layout
-
-\begin_layout LyX-Code
-$ h5attr model.h5:/model/mesh CellType tet4
-\end_layout
-
-\begin_layout Standard
-Likewise, the following command would associate the mesh 
-\family typewriter
-/model/mesh
-\family default
- with the field coefficients 
-\family typewriter
-/model/variables/temperature/step00000
-\end_layout
-
-\begin_layout LyX-Code
-$ h5attr model.h5:/model/variables/temperature/step00000 MeshLocation /model/mesh
- 
-\end_layout
-
-\begin_layout Standard
-Setting the MeshLocation attribute in this manner has the advantage that
- corresponding mesh options can be omitted when calling 
-\family typewriter
-cigma compare
-\family default
- on the command line.
-\end_layout
-
-\begin_layout Subsection
-VTK
-\end_layout
-
-\begin_layout Standard
-For detailed information on this format, you may want to refer to Visualization
- ToolKit's File Formats 
-\begin_inset LatexCommand url
-target "www.vtk.org/pdf/file-formats.pdf"
-
-\end_inset
-
- document.
- Here will only note that using VTK files is convenient due to the fact
- that the mesh is always required by the file format.
- You typically only need to provide the file name, and the name of the dataset
- inside the file that you wish to use in the comparison operation, although
- if you may safely omit the dataset name if your VTK file contains only
- a single point dataset.
- Perhaps one of the most important things to keep in mind, when using VTK
- files with the current version of Cigma, is that unstructured datasets
- will need to consist of cells of a single type.
-\end_layout
-
-\begin_layout Subsection
-Text
-\end_layout
-
-\begin_layout Standard
-The text files we use in Cigma consist of a simple list of numbers in ASCII
- format whose layout corresponds exactly to the simple array layout discussed
- earlier in Section A.2.
- The first line of the file contains the dimensions of the array, just two
- integers separated by whitespace.
- The rest of the file specifies the array data, and must contain as many
- numbers as the product of the two dimensions given in the first line, all
- separated by whitespace.
- These numbers should be formatted as integer or floating point, depending
- on whether you are describing coordinates or coefficients, or whether are
- referring to a connectivity array.
-\end_layout
-
-\begin_layout Standard
-Some restrictions apply when providing data in text format, mostly because
- you can only specify a single element block in a text file containing connectiv
-ity information.
- Operations involving a larger number of blocks must use data in the format
- described in Section A.3.1.
-\end_layout
-
-\begin_layout Standard
-Another point worthy of mention is that arrays must be given in two-dimensional
- form, i.e., two integers are always expected in the first line.
- Therefore, when specifying a one-dimensional array, such as a list of weights
- corresponding to an integration rule, the second array dimension must be
- 1.
-\end_layout
-
-\begin_layout Section
-Output Files
-\end_layout
-
-\begin_layout Standard
-For the most part, there are three different kinds of output files you can
- use, as already summarized in Section A.1.
- Switching output formats is as simple as changing the extension of the
- output file name.
- Now, the result of all comparisons always consists of a one dimensional
- list of scalars, one for each element in the underlying discretization
- used to approximate the 
-\begin_inset Formula $L_{2}$
-\end_inset
-
--norm integral.
- You can output these residual values directly into a VTK file, in which
- case the array will be stored in the Cell Data section of the output file.
- Since Cigma includes a post-processing utility called 
-\family typewriter
-vtk-residuals
-\family default
- that can convert HDF5 residuals into VTK files, we recommend that you use
- HDF5 files to store the result of your comparisons.
- Note that HDF5 files will not be overwritten when used for output, which
- allows you to store multiple datasets inside the same HDF5 file without
- redundant mesh information.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Subsection
-Meshes
-\end_layout
-
-\begin_layout Standard
-Here we describe the mesh format.
-\end_layout
-
-\begin_layout Section
-Output Quantities
-\end_layout
-
-\begin_layout Chapter
-Mesh Format
-\end_layout
-
-\begin_layout Standard
-In this chapter we describe the mesh format used to store meshes.
-\end_layout
-
-\begin_layout Section
-Element Types
-\end_layout
-
-\begin_layout Standard
-We give we assume that within the block we have a single element type, chosen
- from this list.
-\end_layout
-
-\begin_layout Description
-CellType This attribute defines the geometrical type of the reference element
- associated with a particular Element Block
-\end_layout
-
-\begin_deeper
-\begin_layout Description
-tri3 Three-node triangle.
-\end_layout
-
-\begin_layout Description
-tri6 Six-node second order triangle.
- Three nodes associated with the vertices, and three with the edges.
-\end_layout
-
-\begin_layout Description
-quad4 Four-node quadrangle.
-\end_layout
-
-\begin_layout Description
-pixel4 Four-node quadrangle with a different node ordering.
-\end_layout
-
-\begin_layout Description
-tet4 Four-node tetrahedron.
-\end_layout
-
-\begin_layout Description
-tet10 Ten-node second order tetrahedron.
- Four nodes associated with the vertices, and six with the edges.
-\end_layout
-
-\begin_layout Description
-hex8 Eight-node hexahedron.
-\end_layout
-
-\begin_layout Description
-voxel8 Eight-node hexahedron with different node ordering.
-\end_layout
-
-\end_deeper
-\begin_layout Section
-Node Ordering
-\end_layout
-
-\begin_layout Standard
-The ordering of the columns in the connectivity array corresponds to the
- node ordering.
- The reference elements are defined as follows.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/nocover.lyx
===================================================================
--- doc/cigma/manual/nocover.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/nocover.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,205 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Plain Layout
-This document exists for preview purposes.
-\begin_inset Newline newline
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-When rebuilding the original cigma.lyx, don't forget to double-check the
- following for errors:
-\end_layout
-
-\begin_layout Itemize
-cover (correct version number, etc.)
-\end_layout
-
-\begin_layout Itemize
-chapter references (no hardcoded numbers, etc.)
-\end_layout
-
-\begin_layout Itemize
-bibliographical references (no question marks, etc.)
-\end_layout
-
-\begin_layout Itemize
-figure placements (figures appearing on own page, etc.)
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "introduction.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "installation.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "error_analysis.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "interpolation.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "integration.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "formats.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "running.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "examples.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\start_of_appendix
-\begin_inset ERT
-status collapsed
-
-\begin_layout Plain Layout
-
-%dummy comment inserted to ensure this paragraph is not empty
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset CommandInset include
-LatexCommand include
-filename "appendix.lyx"
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Note Note
-status collapsed
-
-\begin_layout Plain Layout
-Include appendix.lyx, and gpl-license.lyx
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/running.lyx
===================================================================
--- doc/cigma/manual/running.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/running.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,404 +0,0 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-\newcommand{\mynote}[1]{}
-\end_preamble
-\use_default_options false
-\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
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_amsmath 1
-\use_esint 1
-\cite_engine basic
-\use_bibtopic false
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\defskip medskip
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\author "" 
-\author "" 
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-\begin_inset CommandInset label
-LatexCommand label
-name "cha:Running-Cigma"
-
-\end_inset
-
-Running Cigma
-\end_layout
-
-\begin_layout Standard
-As mentioned in the first chapter, Cigma is primarily designed for calculating
- error estimates between arbitrary functions.
- Therefore its primary usage revolves around the following operation
-\end_layout
-
-\begin_layout LyX-Code
-$ 
-\series bold
-cigma compare 
-\emph on
-\bar under
-FunctionA
-\emph default
-\bar default
- 
-\emph on
-\bar under
-FunctionB
-\emph default
-\bar default
- -o residuals.vtk
-\end_layout
-
-\begin_layout Standard
-In general, you will provide two paths pointing to the location of the data
- describing the two functions you wish to compare, although in special cases
- you will be able to refer to specific functions by name instead.
-\end_layout
-
-\begin_layout Standard
-You may also need to provide further information by using additional command
- line options.
- For example, you may want to use a different domain discretization for
- the numerical integration step.
- or you may need to increase the order of the quadrature rule in order to
- improve accuracy of the integration.
-\end_layout
-
-\begin_layout Section
-Data Paths
-\end_layout
-
-\begin_layout Standard
-In Chapter 6, we described the layout used in the various file formats.
- To refer to a particular array on the command line you can use the string
- 
-\series bold
-A:B
-\series default
-, to refer to stored in a file 
-\series bold
-A
-\series default
-, you can refer to a particular named array 
-\series bold
-B
-\series default
- by using the string 
-\series bold
-A:B
-\series default
-, with the colon character `:' serving as a separator between the two paths.
-\end_layout
-
-\begin_layout Section
-Command Line Interface
-\end_layout
-
-\begin_layout Subsection
-Comparing Two Finite Element 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 involve a numerical integration over each
- of the elements in the mesh associated with the first field.
- If this discretization is inadequate, you may also specify an alternative
- discretization over which to perform the integration.
- The comparison operation will output the local residual values are into
- the specified output file.
-\end_layout
-
-\begin_layout Standard
-A basic comparison can be as simple as specifying the following arguments:
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare --first=field1.h5:/field1/stepN
-\end_layout
-
-\begin_layout LyX-Code
-
-\series bold
- 
-\series default
-             --second=field2.h5:/field2/stepN
-\end_layout
-
-\begin_layout LyX-Code
-              --output=residuals.vtk
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Subsection
-Comparing 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 LyX-Code
-cigma extract field1.h5:/model/mesh/ -o points.h5:/projected_points
-\end_layout
-
-\begin_layout Standard
-Now you can evaluate your function at the designated points.
- You can provide the path to the explicit set of values with
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare --first=field1.h5:/field1/stepN
-\end_layout
-
-\begin_layout LyX-Code
-              --second-points=points.h5:/projected_points
-\end_layout
-
-\begin_layout LyX-Code
-              --second-values=values.h5:/projected_values
-\end_layout
-
-\begin_layout LyX-Code
-              --output=residuals.vtk
-\end_layout
-
-\begin_layout Subsection
-\begin_inset CommandInset label
-LatexCommand label
-name "sub:Comparing-against-a"
-
-\end_inset
-
-Comparing 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 as a builtin
- Cigma function.
- This will enable you to reference your function by name when using the
- 
-\family typewriter
-compare
-\family default
- command.
- For example,
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare --first=field1.h5:/vars/displacement/step0
-\end_layout
-
-\begin_layout LyX-Code
-
-\series bold
- 
-\series default
-             --second=
-\bar under
-disloc3d
-\end_layout
-
-\begin_layout LyX-Code
-              --output=residuals.vtk
-\end_layout
-
-\begin_layout Standard
-You may also interact with your analytic function by using the 
-\family typewriter
-cigma
-\family default
- 
-\family typewriter
-eval
-\family default
- command, and obtain a set of values which may then be passed back to the
- 
-\family typewriter
-compare
-\family default
- command.
- 
-\end_layout
-
-\begin_layout LyX-Code
-cigma eval --function=
-\bar under
-disloc3d
-\end_layout
-
-\begin_layout LyX-Code
-           --points=points.h5:/projected_points
-\end_layout
-
-\begin_layout LyX-Code
-           --values=values.h5:/disloc3d_values
-\end_layout
-
-\begin_layout Standard
-Once these values have been obtained, we can use it to resume the calculation
- of 
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare --output=residuals.vtk
-\end_layout
-
-\begin_layout LyX-Code
-              --first=field1.h5:/vars/displacement/step0
-\end_layout
-
-\begin_layout LyX-Code
-              --second-points=points.h5:/projected_points
-\end_layout
-
-\begin_layout LyX-Code
-              --second-values=values.h5:/disloc3d_values
-\end_layout
-
-\begin_layout Standard
-Another built-in function you might find useful is the 
-\family typewriter
-\bar under
-zero
-\family default
-\bar default
- function, which is defined to return 0 everywhere.
- You can use this function for estimating the norm of your field.
-\end_layout
-
-\begin_layout Subsection
-Specifying a Integration 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 LyX-Code
-cigma compare [...]
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-mesh=mesh.h5:/model/mesh/
-\end_layout
-
-\begin_layout Standard
-Alternatively, you can also specify the coordinates and connectivity arrays
- separately, in case they reside in separate files.
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare [...]
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-mesh-coordinates=file1.h5:/model/mesh/coordinates
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-mesh-connectivity=file2.h5:/model/mesh/connectivity
-\end_layout
-
-\begin_layout Subsection
-Specifying a Quadrature Rule
-\end_layout
-
-\begin_layout Standard
-To specify a 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 LyX-Code
-cigma compare [...]
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-rule=quadrature-rules.h5:/path/to/rule
-\end_layout
-
-\begin_layout Standard
-You may also specify the location of the points and weights separately:
-\end_layout
-
-\begin_layout LyX-Code
-cigma compare [...]
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-rule-points=file.h5:/path/to/rule/points
-\end_layout
-
-\begin_layout LyX-Code
-  --quadrature-rule-weights=file.h5:/path/to/rule/weights
-\end_layout
-
-\begin_layout LyX-Code
-
-\end_layout
-
-\begin_layout Standard
-In the 
-\family typewriter
-src/
-\family default
- directory of the Cigma distribution, you can find a Python script called
- 
-\family typewriter
-rules.py
-\family default
- that uses FIAT for calculating an appropriate set of quadrature rules for
- use in Cigma.
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/workfile1.lyx
===================================================================
--- doc/cigma/manual/workfile1.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/workfile1.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,647 +0,0 @@
-#LyX 1.5.5 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})}
-
-\newcommand{\mynote}[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 Title
-Cigma
-\end_layout
-
-\begin_layout Part
-Workfile 1
-\end_layout
-
-\begin_layout Chapter
-The Linear Tetrahedron
-\end_layout
-
-\begin_layout Section*
-15.2 The Linear Tetrahedron
-\end_layout
-
-\begin_layout Standard
-The linear tetrahedron, shown in figure 15.1(a), is not used often for stress
- analysis because of its poor performance.
-\begin_inset Foot
-status collapsed
-
-\begin_layout Standard
-Derivative of shape functions are constant over the element volume.
- Strains and stresses recovered in this manner can be highly inaccurate.
- This makes the element dangerous for stress analysis.
- On the other hand, when the objective is merely to get values of primary
- variables, as in thermal analysis and computational gas dynamics, the linear
- tetrahedron is acceptable.
-\end_layout
-
-\end_inset
-
- Its main value in structural and solid mechanics is educational: it serves
- as a vehicle to introduce the basic steps of formulation of 3D solid elements,
- particularly as regards use of natural coordinate systems and node numbering
- conventions.
- It should be noted that 3D visualization is notoriously more difficult
- than 2D, so we need to proceed somewhat slowly here.
-\end_layout
-
-\begin_layout Standard
-\align center
-Figure 15.1a and 15.1b
-\end_layout
-
-\begin_layout Section*
-15.2.1 Tetrahedron Geometry
-\end_layout
-
-\begin_layout Standard
-Figure 15.1 shows a typical 4-node tetrahedron.
- Its geometry is fully defined by giving the location of the four corner
- nodes with respect to the global RCC system (
-\emph on
-x, y, z
-\emph default
-):
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-x_{i},\, y_{i},\, z_{i}\,\left(i=1,\,2,\,3,\,4\right)\label{eq:1}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The volume measure of the tetrahedron is denoted
-\begin_inset Foot
-status collapsed
-
-\begin_layout Standard
-This symbol (Upsilon) is used to avoid confusion with 
-\emph on
-V
-\emph default
-, which denotes the volume of a generic body.
-\end_layout
-
-\end_inset
-
- by 
-\begin_inset Formula ${\normalcolor \nu}$
-\end_inset
-
- and is given by the following determinant:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\nu=\frac{1}{6}\mathrm{det}\left[\begin{array}{cccc}
-1 & 1 & 1 & 1\\
-x_{1} & x_{2} & x_{3} & x_{4}\\
-y_{1} & y_{2} & y_{3} & y_{4}\\
-z_{1} & z_{2} & z_{3} & z_{4}\end{array}\right]\label{eq:2}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-This volume is a 
-\emph on
-signed
-\emph default
- quantity.
- It is positive if the corners are numbered in such a way that the volume
- is positive.
- A numbering rule that achieves this goal is as follows:
-\end_layout
-
-\begin_layout Enumerate
-Pick a corner as initial one.
- In Fig.
- 15.1(a) this is numbered 1.
-\end_layout
-
-\begin_layout Enumerate
-Pick a face that will contain the first three corners.
- The excluded corner will be the last one.
-\end_layout
-
-\begin_layout Enumerate
-Number these three corners in a counterclockwise sense when looking at the
- face from the excluded corner.
- See Fig.
- 15.1(b).
-\end_layout
-
-\begin_layout Standard
-In what follows, we shall always assume that the numbering has been done
- in that manner so that 
-\begin_inset Formula $\nu>0$
-\end_inset
-
-.
-\begin_inset Foot
-status collapsed
-
-\begin_layout Standard
-The tetrahedron volume can be zero only if the four corners are coplanar.
- This case will be excluded.
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\align center
-Figure 15.2a and 15.2b
-\end_layout
-
-\begin_layout Section*
-15.2.2 Tetrahedral Coordinates
-\end_layout
-
-\begin_layout Standard
-The set of tetrahedral coordinates 
-\begin_inset Formula $\zeta_{1},$
-\end_inset
-
- 
-\begin_inset Formula $\zeta_{2},$
-\end_inset
-
- 
-\begin_inset Formula $\zeta_{3},$
-\end_inset
-
- 
-\begin_inset Formula $\zeta_{4}$
-\end_inset
-
- is the three-dimensional analog of the triangular coordinate set discussed
- in Chapter 15 of IFEM.
- The value of 
-\begin_inset Formula $\zeta_{1}$
-\end_inset
-
- is one at corner 
-\emph on
-
-\begin_inset Formula $i$
-\end_inset
-
-
-\emph default
-, zero at the other 3 corners (i.e., on the opposite face) and varies linearly
- as one traverses the distance from the corner to the face.
- The sum of the four coordinates is identically one:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\zeta_{1}+\zeta_{2}+\zeta_{3}+\zeta_{4}=1\label{eq:3}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Any function linear in 
-\begin_inset Formula $x,\, y,\, z$
-\end_inset
-
-, say 
-\begin_inset Formula $F\left(x,\, y,\, z\right)$
-\end_inset
-
-, that takes the values 
-\begin_inset Formula $F_{1}\left(i=1,2,3,4\right)$
-\end_inset
-
- at the corners may be interpolated in terms of the tetrahedron coordinates
- as
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-F\left(\zeta_{1}+\zeta_{2}+\zeta_{3}+\zeta_{4}\right)=F_{1}\zeta_{1}+F_{2}\zeta_{2}+F_{3}\zeta_{3}+F_{4}\zeta_{4}=F_{i}\zeta_{i}.\label{eq:4}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-Example 15.1.
-
-\series default
- Suppose that 
-\begin_inset Formula $F\left(x,\, y,\, z\right)=4x+9y-8z+3$
-\end_inset
-
- and that the coordinates of corners 1,2,3,4 are (0,0,0), (1,0,0), (0,1,0),
- and (0,0,1) respectively.
- The values of F at the corners are 
-\begin_inset Formula $F_{1}=3,\, F_{2}=7,\, F_{3}=12$
-\end_inset
-
- and 
-\begin_inset Formula $F_{4}=-5$
-\end_inset
-
-.
- Consequently, 
-\begin_inset Formula $F\left(\zeta_{1}+\zeta_{2}+\zeta_{3}+\zeta_{4}\right)=3\zeta_{1}+7\zeta_{2}+12\zeta_{3}-5\zeta_{4}.$
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection*
-15.2.3 Coordinate Transformations
-\end_layout
-
-\begin_layout Standard
-The geometric definition of the element in terms of these coordinates is
- obtained by applying the geometry definition (Eq.
- 
-\begin_inset LatexCommand ref
-reference "eq:4"
-
-\end_inset
-
-) to 
-\emph on
-x, y, 
-\emph default
-and 
-\emph on
-z, 
-\emph default
-and appending the sum-of-coordinates constraint (Eq.
- 
-\begin_inset LatexCommand ref
-reference "eq:3"
-
-\end_inset
-
-):
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\left[\begin{array}{c}
-1\\
-x\\
-y\\
-z\end{array}\right]=\left[\begin{array}{cccc}
-1 & 1 & 1 & 1\\
-x_{1} & x_{2} & x_{3} & x_{4}\\
-y_{1} & y_{2} & y_{3} & y_{4}\\
-z_{1} & z_{2} & z_{3} & z_{4}\end{array}\right]\left[\begin{array}{c}
-\zeta_{1}\\
-\zeta_{2}\\
-\zeta_{3}\\
-\zeta_{4}\end{array}\right].\label{eq:5}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-Inverting this relation gives
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\left[\begin{array}{c}
-\zeta_{1}\\
-\zeta_{2}\\
-\zeta_{3}\\
-\zeta_{4}\end{array}\right]=\frac{1}{6\nu}\left[\begin{array}{cccc}
-6\nu_{1} & a_{1} & b_{1} & c_{1}\\
-6\nu_{2} & a_{2} & b_{2} & c_{2}\\
-6\nu_{3} & a_{3} & b_{3} & c_{3}\\
-6\nu_{4} & a_{4} & b_{4} & c_{4}\end{array}\right]\left[\begin{array}{c}
-1\\
-x\\
-y\\
-z\end{array}\right]\label{eq:6}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-where the coefficients of this matrix can be calculated by forming the adjoints
- of the matrix in Eq.
- 
-\begin_inset LatexCommand ref
-reference "eq:5"
-
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-Remark 15.1 
-\series default
-The values of 
-\begin_inset Formula $a_{i}$
-\end_inset
-
-, 
-\begin_inset Formula $b_{i}$
-\end_inset
-
-, and 
-\begin_inset Formula $c_{i}$
-\end_inset
-
- obtained by explicit inversion are
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\begin{array}{ccc}
-a_{1}=y_{2}z_{43}-y_{3}z_{42}+y_{4}z_{32}, & b_{1}=x_{2}z_{43}-x_{3}z_{42}+x_{4}z_{32}, & c_{1}=x_{2}y_{43}-x_{3}y_{42}+x_{4}y_{32},\\
-a_{2}=y_{1}z_{43}-y_{3}z_{41}+y_{4}z_{31}, & b_{2}=x_{1}z_{43}-x_{3}z_{41}+x_{4}z_{31}, & c_{2}=x_{1}y_{43}-x_{3}y_{41}+x_{4}y_{31},\\
-a_{3}=y_{1}z_{42}-y_{2}z_{41}+y_{4}z_{21}, & b_{3}=x_{1}z_{42}-x_{2}z_{41}+x_{4}z_{21}, & c_{3}=x_{1}y_{42}-x_{2}y_{41}+x_{4}y_{21},\\
-a_{4}=y_{1}z_{32}-y_{2}z_{31}+y_{3}z_{21}, & b_{4}=x_{1}z_{32}-x_{2}z_{31}+x_{3}z_{21}, & c_{4}=x_{1}y_{32}-x_{2}y_{31}+x_{3}y_{21},\end{array}\label{eq:7}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-in which the abbreviations 
-\begin_inset Formula $x_{ij}=x_{i}-x_{j},\, y_{ij}=y_{i}-y_{j}$
-\end_inset
-
- and 
-\begin_inset Formula $z_{ij}=z_{i}-z_{j}$
-\end_inset
-
- are used.
- The volume is given explicitly by
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-6\nu=x_{21}\left(y_{31}z_{41}-y_{41}z_{31}\right)+y_{21}\left(x_{41}z_{31}-x_{31}z_{41}\right)+z_{21}\left(x_{31}y_{41}-x_{41}y_{31}\right).\label{eq:8}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The values of 
-\begin_inset Formula $\nu_{1}$
-\end_inset
-
- are of no interest in what follows.
-\end_layout
-
-\begin_layout Subsection
-15.2.4 Geometric Interpretation
-\end_layout
-
-\begin_layout Standard
-Figure 15.2 illustrates two geometric interpretations of coordinate 
-\begin_inset Formula $\zeta_{1}.$
-\end_inset
-
- In Fig.
- 15.2(a), 
-\begin_inset Formula $\zeta_{1}=C$
-\end_inset
-
-, where 
-\begin_inset Formula $C$
-\end_inset
-
- is a number between 0 and 1, is the equation of a plane parallel to the
- face 234.
- The plane coincides with that face is 
-\begin_inset Formula $\zeta_{1}=0$
-\end_inset
-
-, it passes through corner node 1 if 
-\begin_inset Formula $\zeta_{1}=1$
-\end_inset
-
-, and is interpolated linearly in between.
-\end_layout
-
-\begin_layout Standard
-Fig.
- 15.2(b) illustrates another interpretation that appears in many FEM books.
- Consider a point 
-\begin_inset Formula $P$
-\end_inset
-
- of coordinates 
-\begin_inset Formula $\left(\zeta_{1},\,\zeta_{2},\,\zeta_{3},\,\zeta_{4}\right)$
-\end_inset
-
- inside the tetrahedron.
- Joining 
-\begin_inset Formula $P$
-\end_inset
-
- to the corners we obtain four sub-tetrahedra 234
-\begin_inset Formula $P$
-\end_inset
-
-, 341
-\begin_inset Formula $P$
-\end_inset
-
-, 412
-\begin_inset Formula $P$
-\end_inset
-
-, and 123
-\begin_inset Formula $P$
-\end_inset
-
-, whose volumes are 
-\begin_inset Formula $\nu_{1},\,\nu_{2},\,\nu_{3},$
-\end_inset
-
- and 
-\begin_inset Formula $\nu_{4}$
-\end_inset
-
-, respectively.
- Then 
-\begin_inset Formula $\zeta_{1}$
-\end_inset
-
- is the ratio 
-\begin_inset Formula $\nu_{1}/\nu$
-\end_inset
-
-.
- Fig.
- 15.2(b) pictures the sub-tetrahetron 234
-\begin_inset Formula $P$
-\end_inset
-
- of volume 
-\begin_inset Formula $\nu_{1}$
-\end_inset
-
-.
- On account of this relation, tetrahedral coordinates are also called volume
- coordinates.
-\end_layout
-
-\begin_layout Standard
-
-\series bold
-Remark 15.2
-\series default
- The interpretation as volume coordinates only holds for the tetrahedron
- defined by 4 corner nodes.
- It fails for higher order tetrahedra defined by additional nodes (e.g., midpoints
-).
- For this reason, the second interpretation, as well as the name ``volume
- coordinates,'' will not be used here.
-\end_layout
-
-\begin_layout Subsection*
-15.2.5 Partial Derivatives
-\end_layout
-
-\begin_layout Standard
-From Equations 
-\begin_inset LatexCommand ref
-reference "eq:5"
-
-\end_inset
-
- and 
-\begin_inset LatexCommand ref
-reference "eq:6"
-
-\end_inset
-
-, we can easily find the following relations for the partial derivatives
- of Cartesian and tetrahedral coordinates
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\begin{array}{ccc}
-\frac{\partial x}{\partial\zeta_{i}}=x_{i} & \frac{\partial y}{\partial\zeta_{i}}=y_{i} & \frac{\partial z}{\partial\zeta_{i}}=z_{i}\end{array}\label{eq:9}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-6\nu\frac{\partial\zeta_{i}}{\partial x}=a_{i},\,\,\,\frac{\partial\zeta_{i}}{\partial y}=b_{i},\,\,\,\frac{\partial\zeta_{i}}{\partial z}=c_{i}\label{eq:10}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The derivative of a function 
-\begin_inset Formula $F\left(\zeta_{1},\,\zeta_{2},\,\zeta_{3},\,\zeta_{4}\right)$
-\end_inset
-
-with respect to the Cartesian coordinates follows from Eq.
- 
-\begin_inset LatexCommand ref
-reference "eq:10"
-
-\end_inset
-
- and the chain rule:
-\end_layout
-
-\begin_layout Standard
-\begin_inset Formula \begin{equation}
-\begin{array}{c}
-\frac{\partial F}{\partial x}=\frac{\partial F}{\partial\zeta_{i}}\frac{\partial\zeta_{i}}{\partial x}=\frac{1}{6\nu}\left(\frac{\partial F}{\partial\zeta_{1}}a_{1}+\frac{\partial F}{\partial\zeta_{2}}a_{2}+\frac{\partial F}{\partial\zeta_{3}}a_{3}+\frac{\partial F}{\partial\zeta_{4}}a_{4}\right)=\frac{1}{6\nu}\frac{\partial F}{\partial\zeta_{i}}a_{i}.\\
-\frac{\partial F}{\partial y}=\frac{\partial F}{\partial\zeta_{i}}\frac{\partial\zeta_{i}}{\partial y}=\frac{1}{6\nu}\left(\frac{\partial F}{\partial\zeta_{1}}b_{1}+\frac{\partial F}{\partial\zeta_{2}}b_{2}+\frac{\partial F}{\partial\zeta_{3}}b_{3}+\frac{\partial F}{\partial\zeta_{4}}b_{4}\right)=\frac{1}{6\nu}\frac{\partial F}{\partial\zeta_{i}}b_{i}.\\
-\frac{\partial F}{\partial z}=\frac{\partial F}{\partial\zeta_{i}}\frac{\partial\zeta_{i}}{\partial z}=\frac{1}{6\nu}\left(\frac{\partial F}{\partial\zeta_{1}}c_{1}+\frac{\partial F}{\partial\zeta_{2}}c_{2}+\frac{\partial F}{\partial\zeta_{3}}c_{3}+\frac{\partial F}{\partial\zeta_{4}}c_{4}\right)=\frac{1}{6\nu}\frac{\partial F}{\partial\zeta_{i}}c_{i}.\end{array}\label{eq:11}\end{equation}
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\end_body
-\end_document

Deleted: doc/cigma/manual/workfile2.lyx
===================================================================
--- doc/cigma/manual/workfile2.lyx	2009-04-27 05:43:51 UTC (rev 14793)
+++ doc/cigma/manual/workfile2.lyx	2009-04-27 18:29:00 UTC (rev 14794)
@@ -1,812 +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})}
-
-\newcommand{\mynote}[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 Title
-Cigma
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status collapsed
-
-\begin_layout Standard
-
-
-\backslash
-raggedbottom
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Part
-Workfile 2: EXODUS II: A Finite Element Data Model
-\end_layout
-
-\begin_layout Chapter
-Development of EXODUS II
-\end_layout
-
-\begin_layout Section
-3.4 Nodal Coordinates
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_coord, ex_get_coord; EXPCOR, EXGCOR
-\end_layout
-
-\begin_layout Standard
-The nodal coordinates are the floating point spatial coordinates of all
- the nodes in the model.
- The number of nodes and the problem dimension defne the length of this
- array.
- The mode index cycles faster than the dimension index, thus the X coordinates
- for all the nodes is written before any Y coordinate data are written.
- Internal node numbers (beginning with 1) are implied from a node's place
- in the nodal coordinates record.
- See Section 3.5 for a discussion of internal node numbers.
- 
-\end_layout
-
-\begin_layout Subsection
-3.4.1 Coordinate Names
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_coord_names, ex_get_coord_names; EXPCON, EXGCON
-\end_layout
-
-\begin_layout Standard
-The coordinate names are character strings of length 
-\family typewriter
-MAX_STR_LENGTH
-\family default
- (
-\family typewriter
-MXSTLN
-\family default
- in Fortran) which name the spatial coodinates.
- There is one string for each dimension in the model, thus there are one
- to three strings.
-\end_layout
-
-\begin_layout Section
-3.5 Node Number Map
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_node_num_map, ex_get_node_num_map; EXPNNM, EXGNNM
-\end_layout
-
-\begin_layout Standard
-Within the data model, internal node IDs are indices into the nodal coordinate
- array and internal element IDs are indices into the element connectivity
- array.
- Thus, internal node and element numbers (IDs) are contiguous (i.e., 1 .
- .
- .
- 
-\family typewriter
-number_of_nodes
-\family default
- and 1 .
- .
- .
- 
-\family typewriter
-number_of_elements
-\family default
-, respectively).
- Optional node and element number maps can be stored to relate user-defined
- node and element IDs to these internal node and element numbers.
- The length of these maps are 
-\family typewriter
-number_of_nodes
-\family default
- and 
-\family typewriter
-number_of_elements
-\family default
-, respectively.
- As an example, suppose a database contains exactly one QUAD element with
- four nodes.
- The user desires the element ID to be 100 and the node IDs to be 10, 20,
- 30, and 40 as shown in Figure 1.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-\begin_inset LatexCommand label
-name "fig:1"
-
-\end_inset
-
-User-defined Node and Element IDs
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Graphics
-	filename /Users/sue/cigma/figures/element-IDs.png
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-The internal data structures representing the above model would be the following
-: 
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-nodal coordinate array
-\family default
-: (0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0)
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-connectivity array
-\family default
-: (1, 2, 3, 4) 
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-node number map
-\family default
-: (10, 20, 30, 40) 
-\end_layout
-
-\begin_layout Itemize
-
-\family typewriter
-element number map
-\family default
-: (100) 
-\end_layout
-
-\begin_layout Standard
-Internal (contiguously numbered) node and element IDs must be used for all
- data structures that contain node or element numbers (IDs), including node
- set node lists, side set element lists, and element connectivity.
- Additionally, to inquire the value(s) of node or element results variables,
- an application code must pass the internal node or element number for the
- node or element of interest.
- 
-\end_layout
-
-\begin_layout Section
-3.6 Element Number Map 
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_elem_num_map, ex_get_elem_num_map, EXPENM, EXGENM
-\family default
- 
-\end_layout
-
-\begin_layout Standard
-Refer to Section 3.5 for a discussion of the optional element number map.
- 
-\end_layout
-
-\begin_layout Section
-3.7 Optimized Element Order Map 
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_map, ex_get_map; EXPMAP, EXGMAP 
-\end_layout
-
-\begin_layout Standard
-The optional element order map defines the element order in which a solver
- (e.g., a wavefront solver) should process the elements.
- For example, the first entry is the number of the element which should
- be processed first by the solver.
- The length of this map is the total number of elements in the model.
- 
-\end_layout
-
-\begin_layout Section
-3.8 Element Blocks 
-\end_layout
-
-\begin_layout Standard
-For efficient storage and to minimize I/O, elements are grouped into element
- blocks.
- Within an element block, all elements are of the same type (basic geometry
- and number of nodes).
- This definition does not preclude multiple element blocks containing the
- same element type (i.e., “QUAD” elements may be in more than one element
- block); only that each element block may contain only one element type.
- 
-\end_layout
-
-\begin_layout Standard
-The internal number of an element is defined implicitly by the order in
- which it appears in the file.
- Elements are numbered internally (beginning with 1) consecutively across
- all element blocks.
- See Section 3.5 for a discussion of internal element numbering.
- 
-\end_layout
-
-\begin_layout Subsection
-3.8.1 Element Block Parameters 
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_elem_block, ex_get_elem_block, ex_get_elem_blk_ids; EXPELB, EXGELB,
- EXGEBI 
-\end_layout
-
-\begin_layout Standard
-The following parameters are defined for each element block: 
-\end_layout
-
-\begin_layout Itemize
-Element block ID -- an arbitrary, unique, positive integer which identifies
- the particular element block.
- This ID is used as a “handle” into the database that allows users to specify
- a group of elements to the application code without having to know the
- order in which element blocks are stored in the file.
-\end_layout
-
-\begin_layout Itemize
-Element type -- a character string of length MAX_STR_LENGTH (MXSTLN in Fortran)
- to distinguish element types.
- All elements within the element block are of this type.
- Refer to Table 1, “Element Types and Attributes,” on page 9 for a list
- of names that are currently accepted.
- For historical reasons, the names should be all upper case.
- It should be noted that the EXODUS II library routines do not verify element
- type names against a standard list; the interpretation of the element type
- is left to the application codes which read or write the data.
- In general, the first three characters uniquely identify the element type.
- Application codes can append characters to the element type string (up
- to the maximum length allowed) to further classify the element for specific
- purposes.
- 
-\end_layout
-
-\begin_layout Itemize
-Number of elements -- the number of elements in the element block.
- 
-\end_layout
-
-\begin_layout Itemize
-Nodes per element -- the number of nodes per element for the element block.
- 
-\end_layout
-
-\begin_layout Itemize
-Number of attributes -- the number of attributes per element in the element
- block.
- See below for a discussion of element attributes.
- 
-\end_layout
-
-\begin_layout Subsection
-3.8.2 Element Connectivity 
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_elem_conn, ex_get_elem_conn; EXPELC, EXGELC
-\family default
- 
-\end_layout
-
-\begin_layout Standard
-The element connectivity contains the list of nodes (internal node IDs;
- see Section 3.5 for a discussion of node IDs) which define each element
- in the element block.
- The length of this list is the product of the number of elements and the
- number of nodes per element as specified in the element block parameters.
- The node index cycles faster than the element index.
- Node ordering follows the conventions illustrated in Figure 4, which includes
- ordering for higher order elements.
- For lower order elements, simply omit the unused nodes.
- These node ordering conventions follow the element topology used in PATRAN
- [5].
- Thus, for higher order elements than those illustrated, use the ordering
- prescribed in the PATRAN User Manual.
- For elements of type CIRCLE or SPHERE, the topology is one node at the
- center of the circle or sphere element.
- 
-\end_layout
-
-\begin_layout Subsection
-3.8.3 Element Attributes 
-\end_layout
-
-\begin_layout Standard
-API functions: 
-\family typewriter
-ex_put_elem_attr, ex_get_elem_attr; EXPEAT, EXGEAT 
-\end_layout
-
-\begin_layout Standard
-Element attributes are optional floating point numbers that can be assigned
- to each element.
- Every element in an element block must have the same number of attributes
- (as specified in the element block parameters) but the attributes may vary
- among elements within the block.
- The length of the attributes array is thus the product of the number of
- attributes per element and the number of elements in the element block.
- Table 1, “Element Types and Attributes,” lists the standard attributes
- for the given element types.
-\end_layout
-
-\begin_layout Standard
-\begin_inset Float table
-placement H
-wide false
-sideways false
-status open
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="1" columns="2">
-<features>
-<column alignment="center" valignment="top" leftline="true" width="0">
-<column alignment="left" valignment="top" leftline="true" rightline="true" width="3in">
-<row topline="true" bottomline="true">
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-\begin_inset Tabular
-<lyxtabular version="3" rows="12" columns="2">
-<features>
-<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
-Element Type
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-Attributes
-\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
-CIRCLE
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-R
-\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
-SPHERE
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-R
-\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
-TRUSS
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-A
-\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
-BEAM
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-2D: 
-\begin_inset Formula $\mathrm{A,\, I,\, J}$
-\end_inset
-
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-<row>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-3D: 
-\begin_inset Formula $\mathrm{A,\,}\mathrm{I_{1},\, I_{2},\, J,\, V_{1},\, V_{2},\, V_{3}}$
-\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
-TRIANGLE
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\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
-QUAD
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\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
-SHELL
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-T
-\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
-TETRA
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\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
-WEDGE
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\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
-HEX
-\end_layout
-
-\end_inset
-</cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
-\begin_inset Text
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\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
-
-\series bold
-Attribute Descriptions
-\end_layout
-
-\begin_layout Standard
-A -- cross-sectional area.
- 
-\end_layout
-
-\begin_layout Standard
-Vi -- a vector that, together with the axis of the element defines a plane
- for the beam element; I1 bending moment of inertia affects displacements
- in this plane; I2 bending moment of inertia affects bending out of this
- plane.
- 
-\end_layout
-
-\begin_layout Standard
-J -- torsional (polar) moment of inertia.
- 
-\end_layout
-
-\begin_layout Standard
-T -- thickness 
-\end_layout
-
-\begin_layout Standard
-R -- radius
-\end_layout
-
-\end_inset
-</cell>
-</row>
-</lyxtabular>
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status collapsed
-
-\begin_layout Standard
-
-\end_layout
-
-\begin_layout Standard
-\begin_inset Caption
-
-\begin_layout Standard
-\begin_inset LatexCommand label
-name "fig:Node-Ordering-for"
-
-\end_inset
-
-Node Ordering for Standard Element Types
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Graphics
-	filename figures/node-ordering-for-standard-ele-types.png
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Standard
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document



More information about the CIG-COMMITS mailing list