[cig-commits] r18746 - in short/3D/PyLith/trunk: . doc/userguide doc/userguide/benchmarks doc/userguide/boundaryconditions doc/userguide/cover doc/userguide/install doc/userguide/tutorials doc/userguide/tutorials/3dhex8 doc/userguide/tutorials/3dtet4 doc/userguide/tutorials/shearwave doc/userguide/tutorials/subduction doc/userguide/tutorials/twohex8 doc/userguide/tutorials/twoquad4 doc/userguide/tutorials/twotet4 doc/userguide/tutorials/twotet4-geoproj doc/userguide/tutorials/twotri3 examples/2d/subduction examples/3d/hex8 examples/3d/hex8/spatialdb examples/bar_shearwave/hex8 examples/bar_shearwave/quad4 examples/bar_shearwave/tet4 examples/bar_shearwave/tri3 examples/meshing/surface_nurbs/contours examples/meshing/surface_nurbs/dem examples/meshing/surface_nurbs/triangles examples/twocells/twohex8 examples/twocells/twoquad4 examples/twocells/twotet4 examples/twocells/twotet4-geoproj examples/twocells/twotri3 libsrc/pylith/faults libsrc/pylith/meshio pylith/bc pylith/faults pylith/feassemble pylith/friction pylith/materials pylith/meshio tests/2d/faultstrip tests/refinefaulttip tests_auto/1d/line2 tests_auto/1d/line3 tests_auto/2d/quad4 tests_auto/2d/tri3 unittests/pytests/bc unittests/pytests/faults unittests/pytests/materials unittests/pytests/meshio

brad at geodynamics.org brad at geodynamics.org
Tue Jul 12 16:26:09 PDT 2011


Author: brad
Date: 2011-07-12 16:26:08 -0700 (Tue, 12 Jul 2011)
New Revision: 18746

Added:
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/surfload/
   short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/loadcycle.timedb
   short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb
   short/3D/PyLith/trunk/examples/3d/hex8/step18.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step19.cfg
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.py
Removed:
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem_taper.py
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.sh
   short/3D/PyLith/trunk/tests/refinefaulttip/Makefile.in
Modified:
   short/3D/PyLith/trunk/README
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/configure.ac
   short/3D/PyLith/trunk/doc/userguide/benchmarks/benchmarks.lyx
   short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx
   short/3D/PyLith/trunk/doc/userguide/cover/cover.pdf
   short/3D/PyLith/trunk/doc/userguide/cover/cover.svg.gz
   short/3D/PyLith/trunk/doc/userguide/cover/cover_small.jpg
   short/3D/PyLith/trunk/doc/userguide/install/install.lyx
   short/3D/PyLith/trunk/doc/userguide/preface.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/hex8.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/quad4.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tet4.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tri3.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/subduction/subduction.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/tutorials.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/twohex8/twohex8.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/twoquad4/twoquad4.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4-geoproj/twotet4-geoproj.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4/twotet4.lyx
   short/3D/PyLith/trunk/doc/userguide/tutorials/twotri3/twotri3.lyx
   short/3D/PyLith/trunk/doc/userguide/userguide.lyx
   short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou
   short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/Makefile.am
   short/3D/PyLith/trunk/examples/3d/hex8/README
   short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step03.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step06.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step07.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step08.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step09.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step10.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step11.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step12.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step13.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step14.cfg
   short/3D/PyLith/trunk/examples/3d/hex8/step16.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/hex8/pylithapp.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/quad4/kinematic.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/quad4/pylithapp.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/tet4/pylithapp.cfg
   short/3D/PyLith/trunk/examples/bar_shearwave/tri3/pylithapp.cfg
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/README
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/cont2lines.cfg
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/Makefile.am
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/README
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.cfg
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.py
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/Makefile.am
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/README
   short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mksurface.jou
   short/3D/PyLith/trunk/examples/twocells/twohex8/dislocation.cfg
   short/3D/PyLith/trunk/examples/twocells/twohex8/pylithapp.cfg
   short/3D/PyLith/trunk/examples/twocells/twoquad4/axialtract.cfg
   short/3D/PyLith/trunk/examples/twocells/twoquad4/dislocation.cfg
   short/3D/PyLith/trunk/examples/twocells/twoquad4/pylithapp.cfg
   short/3D/PyLith/trunk/examples/twocells/twotet4-geoproj/dislocation.cfg
   short/3D/PyLith/trunk/examples/twocells/twotet4/dislocation.cfg
   short/3D/PyLith/trunk/examples/twocells/twotet4/pylithapp.cfg
   short/3D/PyLith/trunk/examples/twocells/twotri3/dislocation.cfg
   short/3D/PyLith/trunk/examples/twocells/twotri3/pylithapp.cfg
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
   short/3D/PyLith/trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc
   short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py
   short/3D/PyLith/trunk/pylith/bc/DirichletBC.py
   short/3D/PyLith/trunk/pylith/bc/ZeroDispDB.py
   short/3D/PyLith/trunk/pylith/faults/Fault.py
   short/3D/PyLith/trunk/pylith/feassemble/FIATLagrange.py
   short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py
   short/3D/PyLith/trunk/pylith/friction/FrictionModel.py
   short/3D/PyLith/trunk/pylith/materials/Material.py
   short/3D/PyLith/trunk/pylith/meshio/DataWriterVTK.py
   short/3D/PyLith/trunk/pylith/meshio/MeshIOAscii.py
   short/3D/PyLith/trunk/pylith/meshio/MeshIOCubit.py
   short/3D/PyLith/trunk/pylith/meshio/MeshIOLagrit.py
   short/3D/PyLith/trunk/pylith/meshio/OutputSolnSubset.py
   short/3D/PyLith/trunk/setup.py
   short/3D/PyLith/trunk/tests/2d/faultstrip/dynamic_slipweakening.cfg
   short/3D/PyLith/trunk/tests/2d/faultstrip/pylithapp.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line2/dislocation.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line2/extensiondisp.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line2/extensionforce.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line2/lgdeformtranslation.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line3/axialextension.cfg
   short/3D/PyLith/trunk/tests_auto/1d/line3/dislocation.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/axialdisp.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation2.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_compression.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_opening.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_sliding.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_stick.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformrigidbody.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformtraction.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/sheardisp.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_compression.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_opening.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_sliding.cfg
   short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_stick.cfg
   short/3D/PyLith/trunk/tests_auto/2d/tri3/axialdisp.cfg
   short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation.cfg
   short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation2.cfg
   short/3D/PyLith/trunk/tests_auto/2d/tri3/sheardisp.cfg
   short/3D/PyLith/trunk/unittests/pytests/bc/TestDirichletBC.py
   short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py
   short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
   short/3D/PyLith/trunk/unittests/pytests/materials/TestElasticMaterial.py
   short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputSolnSubset.py
Log:
Merge from stable.

Modified: short/3D/PyLith/trunk/README
===================================================================
--- short/3D/PyLith/trunk/README	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/README	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,4 +1,4 @@
-We are pleased to announce release of PyLith version 1.6.0
+We are pleased to announce release of PyLith version 1.6.1
 
 Please submit bug reports via the World Wide Web at:
     http://geodynamics.org/roundup    
@@ -68,6 +68,31 @@
 No changes in parameters are required.
 
 ----------------------------------------------------------------------
+Version 1.6.1
+----------------------------------------------------------------------
+
+* Updates to manual
+
+  - Updated description of cell_info_fields for Neumann boundary
+    condition. The description had not been updated to reflect the
+    time-dependence introduced in version 1.4.
+
+  - Added steps 18 and 19 that discuss time-dependent Neumann boundary
+    conditions to the 3d/hex8 examples.
+
+* Bug fixes
+
+  - Fixed bug in writing rupture information to VTK and HDF5 files
+    when using multiple eartquake sources. Field names did not include
+    name of rupture. This caused loss of information in VTK output and
+    a corrupted Xdmf metadata file for HDF5 output.
+
+  - ADD GREEN'S FUNCTION STUFF HERE
+
+  - ADD MESHING STUFF HERE
+
+
+----------------------------------------------------------------------
 Version 1.6.0
 ----------------------------------------------------------------------
 

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/TODO	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,3 +1,32 @@
+BUGS
+
+  initial stresses and gravity (examples/3d/hex8/step16 and 17)
+
+  dynamic rupture?
+
+
+v1.6.1 changes
+
+Examples
+  3d/hex8
+    step18 [DONE]
+    step19 [DONE]
+  2d/subduction
+    updated geometry.jou file to use Id() [DONE]
+  meshing/surf_nurbs
+    names of journal files
+    use of nonstandard shell utilities
+    sat versus sab ACIS files
+  greenfns
+    errors when trying to run
+
+Manual
+  tractions - cell_info_fields was out of date [not time dependent] [DONE]
+
+bugfixes
+  fault rupture info for multiple earthquake sources [DONE]
+
+
 ======================================================================
 CURRENT ISSUES/PRIORITIES (1.7.0)
 ======================================================================

Modified: short/3D/PyLith/trunk/configure.ac
===================================================================
--- short/3D/PyLith/trunk/configure.ac	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/configure.ac	2011-07-12 23:26:08 UTC (rev 18746)
@@ -17,7 +17,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([PyLith], [1.6.0], [cig-short at geodynamics.org])
+AC_INIT([PyLith], [1.6.1], [cig-short at geodynamics.org])
 AC_CONFIG_AUX_DIR([./aux-config])
 AC_CONFIG_HEADER([portinfo])
 AC_CONFIG_MACRO_DIR([m4])

Modified: short/3D/PyLith/trunk/doc/userguide/benchmarks/benchmarks.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/benchmarks/benchmarks.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/benchmarks/benchmarks.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -185,7 +185,7 @@
 The benchmark results indicate that triangular and tetrahedral cells generate
  less numerical noise than quadrilateral or hexahedral cells.
  TPV14-2D, TPV15-2D, TPV14, and TPV15 use the numerical damping via an artificia
-l viscosity available in PyLith v1.6.0 to these high-frequency oscillations.
+l viscosity available in PyLith v1.6 to these high-frequency oscillations.
  All of the other results without high frequency oscillations posted on
  the SCEC benchmarks web page employ damping via similar methods to reduce
  numerical artifacts.

Modified: short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/boundaryconditions/boundaryconditions.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -991,11 +991,11 @@
 
 
 \begin_inset Tabular
-<lyxtabular version="3" rows="2" columns="3">
+<lyxtabular version="3" rows="6" columns="3">
 <features tabularvalignment="middle">
 <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="3in">
 <row>
 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
 \begin_inset Text
@@ -1032,7 +1032,7 @@
 </cell>
 </row>
 <row>
-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_layout Plain Layout
@@ -1043,13 +1043,137 @@
 
 \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
+initial-value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Initial traction field in global coordinate system
+\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" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+rate-of-change
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Rate of change of traction field in global coordinate system
+\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" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+rate-start-time
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Onset time in seconds for rate of change in traction field
+\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" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+change-in-value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Amplitude of change in traction field in global coordinate system
+\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" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
 \begin_inset Text
 
 \begin_layout Plain Layout
 
 \family typewriter
-tractions
+change-start-time
 \end_layout
 
 \end_inset
@@ -1058,7 +1182,7 @@
 \begin_inset Text
 
 \begin_layout Plain Layout
-Traction vector in global coordinate system
+Onset time in seconds for the amplitude change in the traction field
 \end_layout
 
 \end_inset

Modified: short/3D/PyLith/trunk/doc/userguide/cover/cover.pdf
===================================================================
(Binary files differ)

Modified: short/3D/PyLith/trunk/doc/userguide/cover/cover.svg.gz
===================================================================
(Binary files differ)

Modified: short/3D/PyLith/trunk/doc/userguide/cover/cover_small.jpg
===================================================================
(Binary files differ)

Modified: short/3D/PyLith/trunk/doc/userguide/install/install.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/install/install.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/install/install.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -253,7 +253,7 @@
 
 \begin_deeper
 \begin_layout LyX-Code
-$ tar -xzf pylith-1.6.0-linux-i686.tgz
+$ tar -xzf pylith-1.6.1-linux-i686.tgz
 \end_layout
 
 \end_deeper
@@ -328,7 +328,7 @@
 
 \begin_deeper
 \begin_layout LyX-Code
-$ tar -xzf pylith-1.6.0-darwin-10.4.tgz
+$ tar -xzf pylith-1.6.1-darwin-10.4.tgz
 \end_layout
 
 \end_deeper

Modified: short/3D/PyLith/trunk/doc/userguide/preface.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/preface.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/preface.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -190,7 +190,7 @@
  Strand, and C.
  Williams (2011), 
 \emph on
-PyLith User Manual, Version 1.6.0.
+PyLith User Manual, Version 1.6.1.
 
 \emph default
  Davis, CA: Computational Infrastructure of Geodynamics.

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/3dhex8.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -189,6 +189,15 @@
 Finite strain
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/3d/hex8
+\family default
+.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout
@@ -226,12 +235,7 @@
  set of PyLith features.
  We suggest users go through each of these sections in order as the complexity
  increases at each step.
- All of the files necessary to run the examples are contained in the directory
  
-\family typewriter
-examples/3d/hex8
-\family default
-.
 \end_layout
 
 \begin_layout Subsection
@@ -610,6 +614,13 @@
 \end_inset
 
 
+\begin_inset CommandInset include
+LatexCommand input
+filename "surfload/surfload.lyx"
+
+\end_inset
+
+
 \end_layout
 
 \end_body

Copied: short/3D/PyLith/trunk/doc/userguide/tutorials/3dhex8/surfload (from rev 18744, short/3D/PyLith/branches/v1.6-stable/doc/userguide/tutorials/3dhex8/surfload)

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/3dtet4/3dtet4.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -133,6 +133,13 @@
 Global uniform mesh refinement
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/3d/tet4.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/hex8.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/hex8.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/hex8.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -99,6 +117,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/bar_shearwave/hex8.
+\end_layout
+
 \begin_layout Subsection
 Mesh Generation
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/quad4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/quad4.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/quad4.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -107,6 +125,13 @@
 UniformDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/bar_shearwave/quad4.
+\end_layout
+
 \begin_layout Subsection
 Mesh Generation
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tet4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tet4.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tet4.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -99,6 +117,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/bar_shearwave/tet4.
+\end_layout
+
 \begin_layout Subsection
 Mesh Generation
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tri3.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tri3.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/shearwave/tri3.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.5 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -99,6 +117,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/bar_shearwave/tri3.
+\end_layout
+
 \begin_layout Subsection
 Mesh Generation
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/subduction/subduction.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/subduction/subduction.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/subduction/subduction.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -169,6 +169,13 @@
 \end_layout
 
 \end_deeper
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/2d/subduction.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout
@@ -673,7 +680,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-displacement_x*iHat + displacement_y*jHat + kHat
+displacement_x*iHat + displacement_y*jHat + 0*kHat
 \end_layout
 
 \begin_layout Standard

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/tutorials.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/tutorials.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/tutorials.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -164,6 +164,10 @@
  proper software packages installed.
 \end_layout
 
+\begin_layout Subsubsection
+Input Files
+\end_layout
+
 \begin_layout Standard
 The files needed to work through the tutorials are found in the 
 \family typewriter

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/twohex8/twohex8.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/twohex8/twohex8.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/twohex8/twohex8.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -107,6 +125,13 @@
 Filtering of cell output fields
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/twocells/twohex8.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/twoquad4/twoquad4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/twoquad4/twoquad4.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/twoquad4/twoquad4.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -103,6 +121,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/twocells/twoquad4.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4/twotet4.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4/twotet4.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4/twotet4.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -99,6 +117,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/twocells/twotet4.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4-geoproj/twotet4-geoproj.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4-geoproj/twotet4-geoproj.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/twotet4-geoproj/twotet4-geoproj.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -103,6 +121,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/twocells/twotet4-geoproj.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/tutorials/twotri3/twotri3.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/tutorials/twotri3/twotri3.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/tutorials/twotri3/twotri3.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,5 +1,5 @@
-#LyX 1.6.4 created this file. For more info see http://www.lyx.org/
-\lyxformat 345
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
 \begin_document
 \begin_header
 \textclass book
@@ -7,18 +7,26 @@
 
 \end_preamble
 \use_default_options false
+\maintain_unincluded_children false
 \language english
+\language_package default
 \inputencoding latin1
+\fontencoding global
 \font_roman default
 \font_sans default
 \font_typewriter default
 \font_default_family default
+\use_non_tex_fonts false
 \font_sc false
 \font_osf false
 \font_sf_scale 100
 \font_tt_scale 100
 
 \graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
 \paperfontsize default
 \spacing single
 \use_hyperref false
@@ -26,9 +34,18 @@
 \use_geometry true
 \use_amsmath 0
 \use_esint 0
+\use_mhchem 1
+\use_mathdots 1
 \cite_engine basic
 \use_bibtopic false
+\use_indices false
 \paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
 \leftmargin 1in
 \topmargin 1in
 \rightmargin 1in
@@ -36,15 +53,16 @@
 \secnumdepth 3
 \tocdepth 3
 \paragraph_separation indent
-\defskip medskip
+\paragraph_indentation default
 \quotes_language english
 \papercolumns 1
 \papersides 1
 \paperpagestyle default
 \tracking_changes false
 \output_changes false
-\author "" 
-\author "" 
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
 \end_header
 
 \begin_body
@@ -99,6 +117,13 @@
 ZeroDispDB spatial database
 \end_layout
 
+\begin_layout Standard
+All of the files necessary to run the examples are contained in the directory
+ 
+\family typewriter
+examples/twocells/twotri3.
+\end_layout
+
 \begin_layout Subsection
 Overview
 \end_layout

Modified: short/3D/PyLith/trunk/doc/userguide/userguide.lyx
===================================================================
--- short/3D/PyLith/trunk/doc/userguide/userguide.lyx	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/doc/userguide/userguide.lyx	2011-07-12 23:26:08 UTC (rev 18746)
@@ -136,7 +136,7 @@
 \begin_inset Newline newline
 \end_inset
 
-Version 1.6.0
+Version 1.6.1
 \end_layout
 
 \begin_layout Date

Modified: short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/2d/subduction/geometry.jou	2011-07-12 23:26:08 UTC (rev 18746)
@@ -55,7 +55,14 @@
 # ----------------------------------------------------------------------
 
 # Topography/bathymetry (points from Google Earth)
+#
+# Save ids of important points in APREPRO variables as they are created
+# for use in other commands. We save the entity id in a variable rather
+# than name the vertex because this allows us to still use "idA to idB"
+# to select multiple vertices.
+#
 create vertex x { -600.0*km} y {-2000.0*m}
+#{idPtTopoW=Id("vertex")}
 create vertex x { -439.1*km} y { -300.0*m}
 create vertex x { -351.2*km} y { -800.0*m}
 create vertex x { -263.4*km} y {    0.0*m}
@@ -64,18 +71,21 @@
 create vertex x {    0.0*km} y { -400.0*m}
 create vertex x {   87.7*km} y {-3000.0*m}
 create vertex x {  165.6*km} y {-6000.0*m}
+#{idPtTrench=Id("vertex")}
 create vertex x {  263.4*km} y {-5400.0*m}
 create vertex x {  351.2*km} y {-5400.0*m}
 create vertex x {  439.1*km} y {-5400.0*m}
 create vertex x {  600.0*km} y {-5700.0*m}
+#{idPtTopoE=Id("vertex")}
 
-create curve spline vertex 1 to 13
-curve 1 name "topobathy"
+create curve spline vertex {idPtTopoW} to {idPtTopoE}
+curve {Id("curve")} name "topobathy"
 
 # Top of slab
 # Hayes and Wald, 2009
 # http://earthquake.usgs.gov/research/data/slab
 create vertex x { -600.0*km} y {-340.00*km}
+#{idPtSlabBot=Id("vertex")}
 create vertex x { -422.4*km} y {-240.00*km}
 create vertex x { -331.0*km} y {-180.00*km}
 create vertex x { -261.6*km} y {-140.00*km}
@@ -83,41 +93,48 @@
 create vertex x { -182.6*km} y {-100.00*km}
 create vertex x { -134.3*km} y {-80.00*km}
 create vertex x {  -74.6*km} y {-60.00*km}
+#{idPtSlabMoho=Id("vertex")}
 create vertex x {   -7.9*km} y {-40.00*km}
+#{idPtSlabTopMoho=Id("vertex")}
 create vertex x {   71.1*km} y {-20.00*km}
 create vertex x {  160.5*km} y {-7.50*km}
+#{idPtSlabTop=Id("vertex")}
 
-create curve spline vertex 14 to 24 9
-curve 2 name "slabtop"
+create curve spline vertex {idPtSlabBot} to {idPtSlabTop} {idPtTrench}
+curve {Id("curve")} name "slabtop"
 
 # Bottom of slab (translate top of slab to the east)
 #
 # Better approach would be to move points normal to slab to preserve
 # uniform thickness.
-vertex 14 to 21 copy move X {120.0*km}
+vertex {idPtSlabBot} to {idPtSlabMoho} copy move X {120.0*km}
+#{idPtSlabBotW=idPtSlabTop+1}
 create vertex x {  175.6*km} y {-40.0*km}
 create vertex x {  600.0*km} y {-40.0*km}
+#{idPtMohoE=Id("vertex")}
 
-create curve spline vertex 25 to 34
-curve 3 name "slabbot"
+create curve spline vertex {idPtSlabBotW} to {idPtMohoE}
+curve {Id("curve")} name "slabbot"
 
 # Top of mantle (uniform depth of 40 km)
 create vertex x { -600.0*km} y {-40.00*km}
+#{idPtMohoW=Id("vertex")}
 
-create curve spline vertex 35 22
-curve 4 name "conmoho"
+create curve spline vertex {idPtMohoW} {idPtSlabTopMoho}
+curve {Id("curve")} name "conmoho"
 
 # Lateral edges and bottom boundary
 create vertex x { 600.0*km} y {-340.00*km}
+#{idPtBotE=Id("vertex")}
 
-create curve spline vertex 1 35 14
-curve 5 name "edgewest"
+create curve spline vertex {idPtTopoW} {idPtMohoW} {idPtSlabBot}
+curve {Id("curve")} name "edgewest"
 
-create curve spline vertex 38 25 36
-curve 6 name "edgebot"
+create curve spline vertex {idPtSlabBot} {idPtSlabBotW} {idPtBotE}
+curve {Id("curve")} name "edgebot"
 
-create curve spline vertex 13 34 36
-curve 7 name "edgeeast"
+create curve spline vertex {idPtTopoE} {idPtMohoE} {idPtBotE}
+curve {Id("curve")} name "edgeeast"
 
 # ----------------------------------------------------------------------
 # Split curves to form bounding curves for each material
@@ -136,19 +153,19 @@
 # ----------------------------------------------------------------------
 # Continental crust
 create surface curve topobathy edgewest conmoho slabtop at A
-surface 1 name "concrust"
+surface {Id("surface")} name "concrust"
 
 # Continental mantle
 create surface curve conmoho edgewest at A slabtop
-surface 2 name "conmantle"
+surface {Id("surface")} name "conmantle"
 
 # Oceanic crust (slab)
 create surface curve topobathy at A slabtop at A slabtop edgebot slabbot edgeeast
-surface 3 name "oceancrust"
+surface {Id("surface")} name "oceancrust"
 
 # Oceanic mantle
 create surface curve slabbot edgebot at A edgeeast at A
-surface 4 name "oceanmantle"
+surface {Id("surface")} name "oceanmantle"
 
 # ----------------------------------------------------------------------
 # Imprint/merge
@@ -175,4 +192,3 @@
 split curve slabbot distance {250.0*km} from end
 
 # End of file
-

Modified: short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/2d/subduction/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -71,6 +71,7 @@
 # The id corresponds to the block number from CUBIT.
 id = 1
 
+db_properties.label = Continental crust properties
 db_properties.iohandler.filename = mat_concrust.spatialdb
 
 # We are doing 2D quadrature for a triangle.
@@ -85,6 +86,7 @@
 # The id corresponds to the block number from CUBIT.
 id = 2
 
+db_properties.label = Continental mantle properties
 db_properties.iohandler.filename = mat_conmantle.spatialdb
 
 # We are doing 2D quadrature for a triangle.
@@ -99,6 +101,7 @@
 # The id corresponds to the block number from CUBIT.
 id = 3
 
+db_properties.label = Oceanic crust properties
 db_properties.iohandler.filename = mat_oceancrust.spatialdb
 
 # We are doing 2D quadrature for a triangle.
@@ -113,6 +116,7 @@
 # The id corresponds to the block number from CUBIT.
 id = 4
 
+db_properties.label = Oceanic mantle properties
 db_properties.iohandler.filename = mat_oceanmantle.spatialdb
 
 # We are doing 2D quadrature for a triangle.

Modified: short/3D/PyLith/trunk/examples/3d/hex8/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/Makefile.am	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/Makefile.am	2011-07-12 23:26:08 UTC (rev 18746)
@@ -36,6 +36,8 @@
 	step15.cfg \
 	step16.cfg \
 	step17.cfg \
+	step18.cfg \
+	step19.cfg \
 	mesh/geometry.jou \
 	mesh/mesh_hex8_1000m.jou \
 	mesh/box_hex8_1000m.exo \
@@ -51,6 +53,8 @@
 	spatialdb/sliprate_creep.spatialdb \
 	spatialdb/sliptime.spatialdb \
 	spatialdb/tractions_axial_shear.spatialdb \
+	spatialdb/tractions_axial_pressure.spatialdb \
+	spatialdb/loadcycle.timedb \
 	spatialdb/powerlaw/powerlaw_gendb.cfg \
 	spatialdb/powerlaw/powerlaw_params.spatialdb \
 	spatialdb/powerlaw/powerlaw_points.txt \

Modified: short/3D/PyLith/trunk/examples/3d/hex8/README
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/README	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/README	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,4 +1,4 @@
-The examples in this directory form a step-by-step sequence of 17 problems,
+The examples in this directory form a step-by-step sequence of 19 problems,
 each building on the one before (for the most part). All of the examples
 use the same mesh, which was created by Cubit.  The mesh is 6 km x 6 km x 4
 km with linear hexahedral cells that have edges 1.0 km long.
@@ -66,6 +66,8 @@
         Maxwell rheology (quasi-static)
 step17: Gravitational body forces + finite strain with generalized Maxwell
         rheology (quasi-static)
+step18: Axial traction surface load on top surface (static)
+step19: Time dependent axial traction surface load on top surface (quasi-static)
 
 ----------------------------------------
 mesh directory
@@ -142,6 +144,14 @@
   Spatial database defining axial and shear tractions for example
   step02.
 
+tractions_axial_pressure.spatialdb
+
+  Spatial database defining axial tractions for examples step18 and step19.
+
+loadcycle.timedb
+
+  Temporal database defining time variation of traction load for step19.
+
 powerlaw directory
 
   This directory contains files needed to generate power-law

Modified: short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -90,7 +90,7 @@
 
 # Nonlinear solver monitoring options.
 snes_rtol = 1.0e-8
-snes_atol = 1.0e-12
+snes_atol = 1.0e-18
 snes_max_it = 100
 snes_monitor = true
 snes_view = true

Copied: short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/loadcycle.timedb (from rev 18744, short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/loadcycle.timedb)
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/loadcycle.timedb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/loadcycle.timedb	2011-07-12 23:26:08 UTC (rev 18746)
@@ -0,0 +1,20 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This temporal database specifies the time history of loading. The
+// units are nondimensional corresponding to just a scaled version of
+// the spatial variation.
+//
+// The loading is piecewise linear with a linear increase to 1.0 and
+// then 1.5 followed by a symmetric decrease back to 0.0.
+//
+#TIME HISTORY ascii
+TimeHistory {
+  num-points = 6 // number of points in time history
+  time-units = year // units for time
+}
+  0.0  0.0
+100.0  1.0
+200.0  1.5
+300.0  1.0
+400.0  0.0
+999.9  0.0

Copied: short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb (from rev 18744, short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb)
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/spatialdb/tractions_axial_pressure.spatialdb	2011-07-12 23:26:08 UTC (rev 18746)
@@ -0,0 +1,37 @@
+// -*- C++ -*- (tell Emacs to use C++ mode for syntax highlighting)
+//
+// This spatial database specifies the distribution of the
+// tractions for Neumann boundary conditions associated
+// with a vertical surface load.
+//
+// The spatial distribution of the load is a value of 0.0 at the
+// corners of the domain and a negative vertical load of -10.0 MPa at
+// the center.
+//
+
+#SPATIAL.ascii 1
+SimpleDB {
+  num-values = 4
+  value-names =  traction-shear-horiz traction-shear-vert traction-normal change-start-time
+  value-units =  MPa MPa MPa year
+  num-locs = 5
+  data-dim = 2 // locations on a surface
+  space-dim = 3
+  cs-data = cartesian {
+    to-meters = 1.0e+3 // specify coordinates in km
+    space-dim = 3
+  }
+}
+// Columns are
+// (1) x coordinate (km)
+// (2) y coordinate (km)
+// (3) z coordinate (km)
+// (4) T-shear-horiz (MPa)
+// (5) T-shear-vert (MPa)
+// (6) T-normal (MPa)
+// (7) Start time when used in time-dependent BC (year)
+-3.0  3.0  0.0    0.0  0.0    0.0  0.0
+ 3.0  3.0  0.0    0.0  0.0    0.0  0.0
+ 3.0 -3.0  0.0    0.0  0.0    0.0  0.0
+-3.0 -3.0  0.0    0.0  0.0    0.0  0.0
+ 0.0  0.0  0.0    0.0  0.0  -10.0  0.0

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step03.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step03.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step03.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -100,8 +100,10 @@
 
 # The slip time and final slip are defined in spatial databases.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
+slip.label = Final slip
 slip.iohandler.filename = spatialdb/finalslip.spatialdb
 slip.query_type = linear
+slip_time.label  = Slip initiation time
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step06.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step06.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step06.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -141,23 +141,32 @@
 
 # Define slip and origin time for first rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.one.slip_function]
+slip.label = "Rupture one final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture one slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for second rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.two.slip_function]
+slip.label = "Rupture two final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture two slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for third rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.three.slip_function]
+slip.label = "Rupture three final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture three slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip rate and origin time for fault creep.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.creep]
+origin_time = 0.0*s
 slip_function = pylith.faults.ConstRateSlipFn
+slip_function.slip_rate.label = "Creep slip rate"
 slip_function.slip_rate.iohandler.filename = spatialdb/sliprate_creep.spatialdb
+slip_function.slip_time.label = "Creep initiation time"
 slip_function.slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Due to the complex time history used for the fault, a number of additional

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step07.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step07.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step07.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -155,23 +155,31 @@
 
 # Define slip and origin time for first rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.one.slip_function]
+slip.label = "Rupture one final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture one slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for second rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.two.slip_function]
+slip.label = "Rupture two final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture two slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for third rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.three.slip_function]
+slip.label = "Rupture three final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture three slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip rate and origin time for fault creep.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.creep]
 slip_function = pylith.faults.ConstRateSlipFn
+slip_function.slip_rate.label = "Creep slip rate"
 slip_function.slip_rate.iohandler.filename = spatialdb/sliprate_creep.spatialdb
+slip_function.slip_time.label = "Creep initiation time"
 slip_function.slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Due to the complex time history used for the fault, a number of additional

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step08.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step08.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step08.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -177,24 +177,32 @@
 
 # Define slip and origin time for first rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.one.slip_function]
+slip.label = "Rupture one final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture one slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for second rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.two.slip_function]
+slip.label = "Rupture two final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture two slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for third rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.three.slip_function]
+slip.label = "Rupture three final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture three slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip rate and origin time for fault creep.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.creep]
+origin_time = 0.0*s
 slip_function = pylith.faults.ConstRateSlipFn
-origin_time = 0.0*s
+slip_function.slip_rate.label = "Creep slip rate"
 slip_function.slip_rate.iohandler.filename = spatialdb/sliprate_creep.spatialdb
+slip_function.slip_time.label = "Creep initiation time"
 slip_function.slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step09.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step09.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step09.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -177,24 +177,32 @@
 
 # Define slip and origin time for first rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.one.slip_function]
+slip.label = "Rupture one final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture one slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for second rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.two.slip_function]
+slip.label = "Rupture two final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture two slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip and origin time for third rupture.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.three.slip_function]
+slip.label = "Rupture three final slip"
 slip.iohandler.filename = spatialdb/finalslip_rupture.spatialdb
+slip_time.label = "Rupture three slip time"
 slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # Define slip rate and origin time for fault creep.
 [pylithapp.timedependent.interfaces.fault.eq_srcs.creep]
+origin_time = 0.0*s
 slip_function = pylith.faults.ConstRateSlipFn
-origin_time = 0.0*s
+slip_function.slip_rate.label = "Creep slip rate"
 slip_function.slip_rate.iohandler.filename = spatialdb/sliprate_creep.spatialdb
+slip_function.slip_time.label = "Creep initiation time"
 slip_function.slip_time.iohandler.filename = spatialdb/sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step10.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step10.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step10.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -107,6 +107,7 @@
 
 # Use the static friction model.
 friction = pylith.friction.StaticFriction
+friction.label = Static friction
 
 # We must define the quadrature information for fault cells.
 # The fault cells are 2D (surface).

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step11.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step11.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step11.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -109,6 +109,7 @@
 
 # Use the static friction model.
 friction = pylith.friction.StaticFriction
+friction.label = Static friction
 
 # We must define the quadrature information for fault cells.
 # The fault cells are 2D (surface).

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step12.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step12.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step12.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -124,6 +124,7 @@
 
 # Use the static friction model.
 friction = pylith.friction.StaticFriction
+friction.label = Static friction
 
 # We must define the quadrature information for fault cells.
 # The fault cells are 2D (surface).

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step13.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step13.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step13.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -120,6 +120,7 @@
 
 # Use the slip-weakening friction model.
 friction = pylith.friction.SlipWeakening
+friction.label = Slip weakening
 
 # We must define the quadrature information for fault cells.
 # The fault cells are 2D (surface).

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step14.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step14.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step14.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -121,6 +121,7 @@
 
 # Use the rate-and-state aging friction model.
 friction = pylith.friction.RateStateAgeing
+friction.label = Rate and state
 
 # We must define the quadrature information for fault cells.
 # The fault cells are 2D (surface).
@@ -159,6 +160,8 @@
 friction_sub_pc_factor_shift_type = nonzero
 friction_ksp_max_it = 25
 friction_ksp_gmres_restart = 30
+friction_ksp_rtol = 1.0e-10
+friction_ksp_atol = 1.0e-12
 # Uncomment to view details of friction sensitivity solve.
 #friction_ksp_monitor = true
 #friction_ksp_view = true

Modified: short/3D/PyLith/trunk/examples/3d/hex8/step16.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step16.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step16.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -90,11 +90,13 @@
 # and we change the query_type from the default 'nearest' to 'linear'.
 [pylithapp.timedependent.materials.upper_crust]
 db_initial_stress = spatialdata.spatialdb.SimpleDB
+db_initial_stress.label = Initial stress in upper crust
 db_initial_stress.iohandler.filename = spatialdb/initial_stress.spatialdb
 db_initial_stress.query_type = linear
 
 [pylithapp.timedependent.materials.lower_crust]
 db_initial_stress = spatialdata.spatialdb.SimpleDB
+db_initial_stress.label = Initial stress in lower crust
 db_initial_stress.iohandler.filename = spatialdb/initial_stress.spatialdb
 db_initial_stress.query_type = linear
 

Copied: short/3D/PyLith/trunk/examples/3d/hex8/step18.cfg (from rev 18744, short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step18.cfg)
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step18.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step18.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -0,0 +1,137 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+#
+# This is a purely elastic static problem using Neumann (traction)
+# boundary conditions. We apply normal tractions to the top surface
+# and roller (fixed normal but free lateral motion) boundary
+# conditions on the lateral sides and bottom surfaces.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies parameters specific to tutorial step18.
+# The general parameters are specificed in the pylithapp.cfg
+# file which PyLith reads by default.
+#
+# To run the simulation:
+# pylith step18.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 6 boundary conditions (one for each side of the domain).
+bc = [x_pos,x_neg,y_pos,y_neg,z_neg,z_pos]
+
+[pylithapp.timedependent.implicit]
+# Set the output to an array of 2 output managers.
+# We will output the solution over the domain and the ground surface.
+output = [domain,subdomain]
+
+# Set subdomain component to OutputSolnSubset (subset of domain).
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Set the parameters for Dirichlet boundary conditions applied on the
+# +x, -x, +y, -y, and -z faces of the box, and the Neumann boundary
+# conditions applied on the +z face of the box.
+#
+# We fix the x DOF on the +x and -x faces, the y DOF on the +y and -y
+# faces, and the z DOF on the bottom (-z) face. We use the ZeroDispDB
+# (default) since we want zero displacements.
+#
+# We apply axial tractions on the +z face.
+
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# +x face
+[pylithapp.timedependent.bc.x_pos]
+label = face_xpos
+bc_dof = [0]
+db_initial.label = Dirichlet BC on +x
+
+# -x face
+[pylithapp.timedependent.bc.x_neg]
+label = face_xneg
+bc_dof = [0]
+db_initial.label = Dirichlet BC on -x
+
+# +y face
+[pylithapp.timedependent.bc.y_pos]
+label = face_ypos
+bc_dof = [1]
+db_initial.label = Dirichlet BC on +y
+
+# -y face
+[pylithapp.timedependent.bc.y_neg]
+label = face_yneg
+bc_dof = [1]
+db_initial.label = Dirichlet BC on -y
+
+# -z face
+[pylithapp.timedependent.bc.z_neg]
+label = face_zneg
+bc_dof = [2]
+db_initial.label = Dirichlet BC on -z
+
+# +z face -- change bc type to Neumann
+[pylithapp.timedependent.bc]
+z_pos = pylith.bc.Neumann
+
+[pylithapp.timedependent.bc.z_pos]
+label = face_zpos
+
+db_initial = spatialdata.spatialdb.SimpleDB
+db_initial.label = Neumann BC on +z
+db_initial.iohandler.filename = spatialdb/tractions_axial_pressure.spatialdb
+# Use linear interpolation
+db_initial.query_type = linear
+
+output.cell_info_fields = [initial-value]
+output.writer.filename = output/step18-traction.vtk
+output.cell_filter = pylith.meshio.CellFilterAvgSubMesh
+
+# We must specify quadrature information for the cell faces.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+# Because normal for +z surface is [0,0,1], the horizontal and
+# vertical shear directions are ambiguous. We provide a "fake" up
+# direction of [0,1,0] so that the horizontal shear direction ("up" x
+# normal) is [1,0,0] and the vertical shear direction (normal x horiz
+# shear dir) is [0,1,0].
+up_dir = [0,1,0]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.domain.writer]
+filename = output/step18.vtk
+
+# Give basename for VTK domain output of solution over ground surface.
+[pylithapp.problem.formulation.output.subdomain]
+label = face_zpos ; Name of nodeset for subdomain
+writer.filename = output/step18-groundsurf.vtk
+
+# Give basename for VTK output of upper_crust state variables.
+[pylithapp.timedependent.materials.upper_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step18-upper_crust.vtk
+
+# Give basename for VTK output of lower_crust state variables.
+[pylithapp.timedependent.materials.lower_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step18-lower_crust.vtk

Copied: short/3D/PyLith/trunk/examples/3d/hex8/step19.cfg (from rev 18744, short/3D/PyLith/branches/v1.6-stable/examples/3d/hex8/step19.cfg)
===================================================================
--- short/3D/PyLith/trunk/examples/3d/hex8/step19.cfg	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/3d/hex8/step19.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -0,0 +1,157 @@
+# -*- Python -*-
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+#
+# This is a purely elastic quasi-static problem using time-dependent
+# Neumann (traction) boundary conditions. We apply normal tractions to
+# the top surface that increase and then decrease while applying
+# roller (fixed normal but free lateral motion) boundary conditions on
+# the lateral sides and bottom surfaces.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATON
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies parameters specific to tutorial step19.
+# The general parameters are specificed in the pylithapp.cfg
+# file which PyLith reads by default.
+#
+# To run the simulation:
+# pylith step19.cfg
+#
+# Output will be directed to directory output.
+
+# ----------------------------------------------------------------------
+# problem
+# ----------------------------------------------------------------------
+[pylithapp.timedependent]
+# Set bc to an array of 6 boundary conditions (one for each side of the domain).
+bc = [x_pos,x_neg,y_pos,y_neg,z_neg,z_pos]
+
+[pylithapp.timedependent.implicit]
+# Set the output to an array of 2 output managers.
+# We will output the solution over the domain and the ground surface.
+output = [domain,subdomain]
+
+# Set subdomain component to OutputSolnSubset (subset of domain).
+output.subdomain = pylith.meshio.OutputSolnSubset
+
+# Change the total simulation time to 700 years, and set the time
+# step to 10 years.
+[pylithapp.timedependent.implicit.time_step]
+total_time = 600.0*year
+dt = 20.0*year
+
+
+# ----------------------------------------------------------------------
+# boundary conditions
+# ----------------------------------------------------------------------
+# Set the parameters for Dirichlet boundary conditions applied on the
+# +x, -x, +y, -y, and -z faces of the box, and the Neumann boundary
+# conditions applied on the +z face of the box.
+#
+# We fix the x DOF on the +x and -x faces, the y DOF on the +y and -y
+# faces, and the z DOF on the bottom (-z) face. We use the ZeroDispDB
+# (default) since we want zero displacements.
+#
+# We apply axial tractions on the +z face.
+
+# The label corresponds to the name of the nodeset in CUBIT.
+
+# +x face
+[pylithapp.timedependent.bc.x_pos]
+label = face_xpos
+bc_dof = [0]
+db_initial.label = Dirichlet BC on +x
+
+# -x face
+[pylithapp.timedependent.bc.x_neg]
+label = face_xneg
+bc_dof = [0]
+db_initial.label = Dirichlet BC on -x
+
+# +y face
+[pylithapp.timedependent.bc.y_pos]
+label = face_ypos
+bc_dof = [1]
+db_initial.label = Dirichlet BC on +y
+
+# -y face
+[pylithapp.timedependent.bc.y_neg]
+label = face_yneg
+bc_dof = [1]
+db_initial.label = Dirichlet BC on -y
+
+# -z face
+[pylithapp.timedependent.bc.z_neg]
+label = face_zneg
+bc_dof = [2]
+db_initial.label = Dirichlet BC on -z
+
+# +z face -- change bc type to Neumann
+[pylithapp.timedependent.bc]
+z_pos = pylith.bc.Neumann
+
+[pylithapp.timedependent.bc.z_pos]
+label = face_zpos
+
+db_change = spatialdata.spatialdb.SimpleDB
+db_change.label = Amplitude of Neumann BC on +z
+db_change.iohandler.filename = spatialdb/tractions_axial_pressure.spatialdb
+# Use linear interpolation
+db_change.query_type = linear
+
+th_change = spatialdata.spatialdb.TimeHistory
+th_change.label = Time history for Neumann BC on +z
+th_change.filename = spatialdb/loadcycle.timedb
+
+output.cell_info_fields = [change-in-value,change-start-time]
+output.writer.filename = output/step19-traction.vtk
+output.cell_filter = pylith.meshio.CellFilterAvgSubMesh
+
+# We must specify quadrature information for the cell faces.
+quadrature.cell = pylith.feassemble.FIATLagrange
+quadrature.cell.dimension = 2
+quadrature.cell.quad_order = 2
+
+# Because normal for +z surface is [0,0,1], the horizontal and
+# vertical shear directions are ambiguous. We provide a "fake" up
+# direction of [0,1,0] so that the horizontal shear direction ("up" x
+# normal) is [1,0,0] and the vertical shear direction (normal x horiz
+# shear dir) is [0,1,0].
+up_dir = [0,1,0]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.domain.writer]
+filename = output/step19.vtk
+time_constant = 1.0*year
+time_format = %04.0f
+
+# Give basename for VTK domain output of solution over ground surface.
+[pylithapp.problem.formulation.output.subdomain]
+label = face_zpos ; Name of nodeset for subdomain
+writer.filename = output/step19-groundsurf.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f
+
+# Give basename for VTK output of upper_crust state variables.
+[pylithapp.timedependent.materials.upper_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step19-upper_crust.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f
+
+# Give basename for VTK output of lower_crust state variables.
+[pylithapp.timedependent.materials.lower_crust.output]
+cell_filter = pylith.meshio.CellFilterAvgMesh
+writer.filename = output/step19-lower_crust.vtk
+writer.time_constant = 1.0*year
+writer.time_format = %04.0f

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/hex8/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/hex8/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/hex8/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -78,7 +78,7 @@
 
 [pylithapp.timedependent.formulation.time_step]
 total_time = 12.0*s
-dt = 0.05*s
+dt = 0.04*s
 
 # ----------------------------------------------------------------------
 # materials
@@ -92,6 +92,7 @@
 id = 1
 
 # Spatial database with physical properties for elastic material
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set the basis functions and quadrature:
@@ -178,12 +179,15 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying the final slip.
+slip.label = Final slip
 slip.iohandler.filename = shearwave_slip.spatialdb
 
 # Database specifying rise time.
+rise_time.label = Rise time
 rise_time.iohandler.filename = shearwave_risetime.spatialdb
 
 # Database specifying time at which slip begins at each point.
+slip_time.label = Slip time
 slip_time.iohandler.filename = shearwave_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -33,6 +33,7 @@
 # Use rate- and state-friction with the ageing law for evolution of
 # the state variable.
 friction = pylith.friction.RateStateAgeing
+friction.label = Rate and state
 
 # Set the friction model parameters.
 #  reference coefficient of friction: 0.6

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -32,6 +32,7 @@
 
 # Use slip-weakening friction
 friction = pylith.friction.SlipWeakening
+friction.label = Slip weakening
 
 # Set the slip-weakening friction model parameters.
 #  static coefficient of friction: 0.6

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -30,6 +30,7 @@
 
 # Use static friction
 friction = pylith.friction.StaticFriction
+friction.label = Static friction
 
 # Set the static friction model parameters.
 #  static coefficient of friction: 0.6

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/quad4/kinematic.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/quad4/kinematic.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/quad4/kinematic.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -57,12 +57,15 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying the final slip.
+slip.label = Final slip
 slip.iohandler.filename = kinematic_slip.spatialdb
 
 # Database specifying rise_time.
+rise_time.label = Rise time
 rise_time.iohandler.filename = kinematic_risetime.spatialdb
 
 # Database specifying time at which slip begins at each point.
+slip_time.label = Slip initiation time
 slip_time.iohandler.filename = kinematic_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/quad4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/quad4/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/quad4/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -84,6 +84,7 @@
 id = 1
 
 # Spatial database with physical properties for elastic material
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set the basis functions and quadrature:

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/tet4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/tet4/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/tet4/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -99,6 +99,7 @@
 id = 1
 
 # Spatial database with physical properties for elastic material
+db_properties.label = Elastic properties for +x material
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set the basis functions and quadrature:
@@ -116,6 +117,7 @@
 id = 2
 
 # Spatial database with physical properties for elastic material
+db_properties.label = Elastic properties for -x material
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set the basis functions and quadrature:
@@ -200,12 +202,15 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying the final slip.
+slip.label = Final slip
 slip.iohandler.filename = shearwave_slip.spatialdb
 
 # Database specifying rise time.
+rise_time.label = Rise time
 rise_time.iohandler.filename = shearwave_risetime.spatialdb
 
 # Database specifying time at which slip begins at each point.
+slip_time.label = Slip time
 slip_time.iohandler.filename = shearwave_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/bar_shearwave/tri3/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/bar_shearwave/tri3/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/bar_shearwave/tri3/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -96,6 +96,7 @@
 id = 1
 
 # Spatial database with physical properties for elastic material
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set the basis functions and quadrature:
@@ -182,12 +183,15 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying the final slip.
+slip.label = Final slip
 slip.iohandler.filename = shearwave_slip.spatialdb
 
 # Database specifying rise time.
+rise_time.label = Rise time
 rise_time.iohandler.filename = shearwave_risetime.spatialdb
 
 # Database specifying time at which slip begins at each point.
+slip_time.label = Slip time
 slip_time.iohandler.filename = shearwave_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/README
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/README	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/README	2011-07-12 23:26:08 UTC (rev 18746)
@@ -31,9 +31,9 @@
 create a skin surface using Cubit (see Cubit documentation).
 
 3.  We then just run Cubit and playback the hikurangi_mksurf.jou file
-to create an ACIS NURBS surface (hikurangi_sub_geom.sab).
+to create an ACIS NURBS surface (hikurangi_sub_geom.sat).
 
 Once the NURBS surface has been created, it may be used in future
 Cubit sessions by importing it:
 
-import acis 'hikurangi_sub_geom.sab'
+import acis 'hikurangi_sub_geom.sat'

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/cont2lines.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/cont2lines.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/contours/cont2lines.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -3,4 +3,4 @@
 in_file = hikurangi_shiftrot_fill.txt
 out_root = journal/hikurangi_shiftrot_fill
 journal_out = hikurangi_mksurf.jou
-surface_out = hikurangi_sub_geom.sab
+surface_out = hikurangi_sub_geom.sat

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/Makefile.am	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/Makefile.am	2011-07-12 23:26:08 UTC (rev 18746)
@@ -25,7 +25,6 @@
 	README \
 	dem2lines.cfg \
 	dem2lines.py \
-	dem_taper.py \
 	ruapehu-nzmg-1km.txt
 
 

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/README
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/README	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/README	2011-07-12 23:26:08 UTC (rev 18746)
@@ -37,10 +37,10 @@
 
 4.  Once you have created the necessary journal files, you can create the
 surface yourself by running Cubit and playing back the 'ruapehu_topo.jou'
-file. This will create the NURBS surface (ruapehu_topo.sab).
+file. This will create the NURBS surface (ruapehu_topo.sat).
 
 5.  Once the surface has been created, you can import it in future
 Cubit sessions and use it just as you would any surface created within
 Cubit.  For example, to use this surface within Cubit, you would type:
 
-import acis 'ruapehu_topo.sab'
+import acis 'ruapehu_topo.sat'

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -4,8 +4,10 @@
 vtk_output_file = ruapehu-nzmg-1km-resampled.vtk
 master_journal = ruapehu_topo.jou
 u_line_prefix = ulines/ruapehu-nzmg-1km
+u_line_journal = u_lines.jou
 v_line_prefix = vlines/ruapehu-nzmg-1km
-acis_filename = ruapehu_topo.sab
+v_line_journal = v_lines.jou
+acis_filename = ruapehu_topo.sat
 x_min = 2724000.0
 x_max = 2744000.0
 y_min = 6200000.0

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.py
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem2lines.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -333,8 +333,8 @@
             comment + newLine + separator + \
             "# Create u-lines and v-lines, then create a net surface.\n" + \
             separator + \
-            "playback 'ulines.jou'\n" + \
-            "playback 'vlines.jou'\n"
+            "playback " + "'" + self.uLineJournal + "'" + "\n" + \
+            "playback " + "'" + self.vLineJournal + "'" + "\n"
     m = open(self.masterJournal, 'w')
     m.write(playCmd)
     c1 = 1

Deleted: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem_taper.py
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem_taper.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/dem/dem_taper.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,398 +0,0 @@
-#!/usr/bin/env python
-
-## @file dem_taper.py
-
-## @brief Python application to read an ASCII (x,y,z) representation of a DEM
-## and create a set of lines suitable for use in Cubit. The original DEM is
-## tapered at the edges to a constant value.
-
-import math
-import numpy
-import pdb
-
-from pyre.applications.Script import Script as Application
-
-class DemTaper(Application):
-  """
-  Python application to read an ASCII (x,y,z) representation and
-  create a set of lines suitable for use in Cubit. The original DEM is
-  tapered at the edges to a constant value.
-  The DEM is assumed to be ordered by rows (left to right).
-  """
-
-  class Inventory(Application.Inventory):
-    """
-    Python object for managing DemTaper facilities and properties.
-    """
-    
-    ## @class Inventory
-    ## Python object for managing DemTaper facilities and properties.
-    ##
-    ## \b Properties
-    ## @li \b input_dem Input DEM file (ASCII).
-    ## @li \b vtk_output_file Filename of VTK output file.
-    ## @li \b u_line_prefix Prefix for u (east) output lines.
-    ## @li \b u_line_journal Output journal file for u_lines.
-    ## @li \b v_line_prefix Prefix for v (north) output lines.
-    ## @li \b v_line_journal Output journal file for v_lines.
-    ## @li \b master_journal Output master journal file.
-    ## @li \b acis_filename Name of ACIS output file created by Cubit.
-    ## @li \b taper_len Number of pixels over which to taper DEM.
-    ## @li \b edge_value_source How to determine DEM values on outer edges.
-    ## @li \b edge_value User-specified edge value.
-    ## @li \b interpolation_type Interpolation method to use.
-
-    import pyre.inventory
-    from pyre.units.angle import degree
-    
-    inputDem = pyre.inventory.str("input_dem", default="DEM.txt")
-    inputDem.meta['tip'] = "Input DEM file."
-    
-    vtkOutputFile = pyre.inventory.str("vtk_output_file", default="DEM.vtk")
-    vtkOutputFile.meta['tip'] = "VTK output file."
-    
-    uLinePrefix = pyre.inventory.str("u_line_prefix", default="u_lines")
-    uLinePrefix.meta['tip'] = "Prefix for u (east) lines."
-    
-    uLineJournal = pyre.inventory.str("u_line_journal", default="u_lines.jou")
-    uLineJournal.meta['tip'] = "Output journal file for u (east) lines."
-    
-    vLinePrefix = pyre.inventory.str("v_line_prefix", default="v_lines")
-    vLinePrefix.meta['tip'] = "Prefix for v (north) lines."
-    
-    vLineJournal = pyre.inventory.str("v_line_journal", default="v_lines.jou")
-    vLineJournal.meta['tip'] = "Output journal file for v (north) lines."
-    
-    masterJournal = pyre.inventory.str("master_journal", default="master.jou")
-    masterJournal.meta['tip'] = "Output master journal file."
-    
-    acisFilename = pyre.inventory.str("acis_filename", default="topo.sab")
-    acisFilename.meta['tip'] = "Name of ACIS output file created by Cubit."
-    
-    taperLen = pyre.inventory.int("taper_len", default=10)
-    taperLen.meta['tip'] = "Number of pixels over which to taper DEM."
-    
-    edgeValueSource = pyre.inventory.str("edge_value_source",
-      default="mean",
-      validator=pyre.inventory.choice(["mean","user_specified"]))
-    edgeValueSource.meta['tip'] = "How to determine DEM values on outer edges."
-    
-    edgeValue = pyre.inventory.int("edge_value", default=0)
-    edgeValue.meta['tip'] = "User-specified value for DEM edges."
-    
-    interpolationType = pyre.inventory.str("interpolation_type",
-      default="linear",
-      validator=pyre.inventory.choice(["nearest","linear","cubic"]))
-    interpolationType.meta['tip'] = "Interpolation method to use."
-    
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="dem_taper"):
-    Application.__init__(self, name)
-    self.xDim = 0
-    self.yDim = 0
-    self.zDim = 0
-    self.meanZ = 0
-    self.keepIndicesX = []
-    self.replaceIndicesX = []
-    self.keepIndicesY = []
-    self.replaceIndicesY = []
-    self.xIn = None
-    self.yIn = None
-    self.zIn = None
-    self.xLine = None
-    self.yLine = None
-    self.valuesOut = None
-
-    return
-
-
-  def main(self):
-    # pdb.set_trace()
-    self._readDem()
-    self._taperDem()
-    self._writeCubitJournals()
-    self._writeDemVtk()
-
-    return
-  
-
-  # PRIVATE METHODS /////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Setup members using inventory.
-    """
-    Application._configure(self)
-
-    # Filenames
-    self.inputDem = self.inventory.inputDem
-    self.vtkOutputFile = self.inventory.vtkOutputFile
-    self.uLinePrefix = self.inventory.uLinePrefix
-    self.uLineJournal = self.inventory.uLineJournal
-    self.vLinePrefix = self.inventory.vLinePrefix
-    self.vLineJournal = self.inventory.vLineJournal
-    self.masterJournal = self.inventory.masterJournal
-    self.acisFilename = self.inventory.acisFilename
-
-    # Parameters
-    self.taperLen = self.inventory.taperLen
-    self.edgeValueSource = self.inventory.edgeValueSource
-    self.edgeValue = self.inventory.edgeValue
-    self.interpolationType = self.inventory.interpolationType
-
-    return
-
-
-  def _readDem(self):
-    """
-    Read coordinates defining DEM and create vectors of x, y, and z values.
-    """
-
-    # Load each coordinate as a numpy array.
-    x, y, z = numpy.loadtxt(self.inputDem, dtype=numpy.float64, unpack=True)
-
-    self.zDim = len(z)
-    if (y[0] == y[1]):
-      # Ordered by rows.
-      self.xDim = max(numpy.argmax(x) + 1, numpy.argmin(x) + 1)
-      self.xLine = x[0:self.xDim]
-      self.yDim = self.zDim/self.xDim
-      self.yLine = y[0:self.zDim:self.xDim]
-      self.xIn = numpy.reshape(x, (self.yDim, self.xDim))
-      self.yIn = numpy.reshape(y, (self.yDim, self.xDim))
-      self.zIn = numpy.reshape(z, (self.yDim, self.xDim))
-    else:
-      # Ordered by columns.
-      self.yDim = max(numpy.argmax(y) + 1, numpy.argmin(y) + 1)
-      self.yLine = y[0:self.yDim]
-      self.xDim = self.zDim/self.yDim
-      self.xLine = x[0:self.zDim:self.yDim]
-      self.xIn = numpy.transpose(numpy.reshape(x, (self.xDim, self.yDim)))
-      self.yIn = numpy.transpose(numpy.reshape(y, (self.xDim, self.yDim)))
-      self.zIn = numpy.transpose(numpy.reshape(z, (self.xDim, self.yDim)))
-
-    # Flip everything so that it is ordered left-to-right and bottom-to-top.
-    if (self.xLine[0] > self.xLine[1]):
-      self.xLine = numpy.flipud(self.xLine)
-      self.xIn = numpy.fliplr(self.xIn)
-      self.yIn = numpy.fliplr(self.yIn)
-      self.zIn = numpy.fliplr(self.zIn)
-    if (self.yLine[0] > self.yLine[1]):
-      self.yLine = numpy.flipud(self.yLine)
-      self.xIn = numpy.flipud(self.xIn)
-      self.yIn = numpy.flipud(self.yIn)
-      self.zIn = numpy.flipud(self.zIn)
-
-    return
-
-  
-  def _taperDem(self):
-    """
-    Taper DEM over specified region.
-    """
-
-    import matplotlib.mlab
-
-    # Determine regions over which to replace existing values.
-    xLeftOuter = 0
-    xLeftInner = xLeftOuter + self.taperLen
-    xRightOuter = self.xDim - 1
-    xRightInner = xRightOuter - self.taperLen
-    yBottomOuter = 0
-    yBottomInner = yBottomOuter + self.taperLen
-    yTopOuter = self.yDim - 1
-    yTopInner = yTopOuter - self.taperLen
-    self.keepIndicesX = range(xLeftInner + 1, xRightInner - 1)
-    self.replaceIndicesX = range(xLeftOuter, xLeftInner) + \
-                           range(xRightInner, xRightOuter)
-    self.keepIndicesY = range(yBottomInner + 1, yTopInner - 1)
-    self.replaceIndicesY = range(yBottomOuter, yBottomInner) + \
-                           range(yTopInner, yTopOuter)
-
-    # Get edge values.
-    xEdge1 = self.xIn[yBottomOuter, :]
-    yEdge1 = self.yIn[yBottomOuter, :]
-    zEdge1 = self.zIn[yBottomOuter, :]
-    xEdge2 = self.xIn[yTopOuter, :]
-    yEdge2 = self.yIn[yTopOuter, :]
-    zEdge2 = self.zIn[yTopOuter, :]
-    xEdge3 = self.xIn[yBottomOuter+1:yTopOuter, xLeftOuter]
-    yEdge3 = self.yIn[yBottomOuter+1:yTopOuter, xLeftOuter]
-    zEdge3 = self.zIn[yBottomOuter+1:yTopOuter, xLeftOuter]
-    xEdge4 = self.xIn[yBottomOuter+1:yTopOuter, xRightOuter]
-    yEdge4 = self.yIn[yBottomOuter+1:yTopOuter, xRightOuter]
-    zEdge4 = self.zIn[yBottomOuter+1:yTopOuter, xRightOuter]
-    zEdge = numpy.concatenate((zEdge1, zEdge2, zEdge3, zEdge4))
-    self.zMean = int(numpy.mean(zEdge))
-    edgeValue = self.zMean
-    if (self.edgeValueSource == "user_specified"):
-      edgeValue = self.edgeValue
-
-    print "Mean elevation around DEM edges:  %i" % self.zMean
-    
-    # Create arrays with taper values missing.
-    xTmp = numpy.take(self.xIn, self.keepIndicesY, axis=0)
-    xInner = numpy.take(xTmp, self.keepIndicesX, axis=1)
-    xOuter = numpy.concatenate((xEdge1, xEdge2, xEdge3, xEdge4))
-    xReduced = numpy.concatenate((xInner.flatten(), xOuter))
-    yTmp = numpy.take(self.yIn, self.keepIndicesY, axis=0)
-    yInner = numpy.take(yTmp, self.keepIndicesX, axis=1)
-    yOuter = numpy.concatenate((yEdge1, yEdge2, yEdge3, yEdge4))
-    yReduced = numpy.concatenate((yInner.flatten(), yOuter))
-    zTmp = numpy.take(self.zIn, self.keepIndicesY, axis=0)
-    zInner = numpy.take(zTmp, self.keepIndicesX, axis=1)
-    zOuter = float(edgeValue) * numpy.ones_like(yOuter)
-    zReduced = numpy.concatenate((zInner.flatten(), zOuter))
-
-    # Interpolate missing values using selected method.
-    self.valuesOut = matplotlib.mlab.griddata(xReduced, yReduced, zReduced,
-                                              self.xIn, self.yIn)
-
-    return
-    
-    
-  def _writeCubitJournals(self):
-    """
-    Writes Cubit journal files to create a NURBS surface representing the DEM.
-    """
-
-    numWidth = 4
-    fmt = " location %15.11e %15.11e %15.11e"
-    newLine = "\n"
-    masterPref = "playback '"
-    separator = "# ------------------------------------------------------------"
-
-
-    # Write out u (east) lines.
-    um = open(self.uLineJournal, 'w')
-    for row in range(self.yDim):
-      y = self.yLine[row]
-      uString = repr(row + 1).rjust(numWidth, '0')
-      outputFileName = self.uLinePrefix + "_u" + uString + ".jou"
-      masterString = masterPref + outputFileName + "'" + newLine
-      um.write(masterString)
-      u = open(outputFileName, 'w')
-      u.write('create curve spline')
-      for column in range(self.xDim):
-        u.write(fmt % (self.xLine[column], y, self.valuesOut[row, column]))
-
-      u.close()
-
-    um.close()
-    print "Number of u-lines = " + repr(self.yDim)
-
-    # Write out v (north) lines.
-    vm = open(self.vLineJournal, 'w')
-    for column in range(self.xDim):
-      x = self.xLine[column]
-      vString = repr(column + 1).rjust(numWidth, '0')
-      outputFileName = self.vLinePrefix + "_v" + vString + ".jou"
-      masterString = masterPref + outputFileName + "'" + newLine
-      vm.write(masterString)
-      v = open(outputFileName, 'w')
-      v.write('create curve spline')
-      for row in range(self.yDim):
-        v.write(fmt % (x, self.yLine[row], self.valuesOut[row, column]))
-
-      v.close()
-
-    vm.close()
-    print "Number of v-lines = " + repr(self.xDim)
-
-    # Write master journal file.
-    m = open(self.masterJournal, 'w')
-    m.write("reset" + newLine)
-    m.write(separator + newLine)
-    comment1 = "# Create u-lines and v-lines, and then create a net surface."
-    m.write(comment1 + newLine)
-    m.write(separator + newLine)
-    m.write("playback '" + self.uLineJournal + "'" + newLine)
-    m.write("playback '" + self.vLineJournal + "'" + newLine)
-
-    uBegin = 1
-    uEnd = self.yDim
-    vBegin = uEnd + 1
-    vEnd = vBegin + self.xDim - 1
-    surfString = "create surface net u curve " + repr(uBegin) + " to " + \
-                 repr(uEnd) + " v curve " + repr(vBegin) + " to " + \
-                 repr(vEnd) + newLine
-    m.write(surfString)
-    m.write(newLine)
-
-    m.write(separator + newLine)
-    comment2 = "# Delete curves and any extra vertices." + newLine
-    m.write(comment2)
-    m.write(separator + newLine)
-    curveDel = "delete curve " + repr(uBegin) + " to " + repr(vEnd) + newLine
-    m.write(curveDel)
-    m.write("delete vertex all" + newLine)
-    m.write(newLine)
-    
-    m.write(separator + newLine)
-    comment3 = "# Export binary ACIS file." + newLine
-    m.write(comment3)
-    m.write(separator + newLine)
-    exportCmd = "export Acis '" + self.acisFilename + "'" + newLine
-    m.write(exportCmd)
-    m.close()
-
-    return
-
-  
-  def _writeDemVtk(self):
-    """
-    Write DEM as a rectilinear grid VTK file with z-values as point data.
-    """
-    zDim = 1
-    v = open(self.vtkOutputFile, 'w')
-    v.write('# vtk DataFile Version 2.0\n')
-    v.write('Resampled DEM\n')
-    v.write('ASCII\n')
-    v.write('DATASET RECTILINEAR_GRID\n')
-    dimString = 'DIMENSIONS ' + str(self.xDim) + ' ' + str(self.yDim) + \
-                ' ' + str(zDim) + '\n'
-    v.write(dimString)
-
-    xString = 'X_COORDINATES ' + str(self.xDim) + ' double\n'
-    v.write(xString)
-    for point in range(self.xDim):
-      v.write("%15.11e  " % self.xLine[point])
-      if ((point + 1)%5 == 0):
-        v.write("\n")
-
-    yString = '\nY_COORDINATES ' + str(self.yDim) + ' double\n'
-    v.write(yString)
-    for point in range(self.yDim):
-      v.write("%15.11e  " % self.yLine[point])
-      if ((point + 1)%5 == 0):
-        v.write("\n")
-
-    zString = '\nZ_COORDINATES ' + str(zDim) + ' double\n'
-    v.write(zString)
-    v.write('0.0\n')
-
-    zString1 = 'POINT_DATA ' + str(self.zDim) + '\n'
-    v.write(zString1)
-    zString2 = 'SCALARS elevation double 1\n'
-    v.write(zString2)
-    zString3 = 'LOOKUP_TABLE default\n'
-    v.write(zString3)
-    for yPoint in range(self.yDim):
-      for xPoint in range(self.xDim):
-        v.write("%15.11e  " % self.valuesOut[yPoint, xPoint])
-        if ((xPoint + 1)%5 == 0):
-          v.write("\n")
-
-    v.close()      
-    return
-
-
-# ----------------------------------------------------------------------
-if __name__ == '__main__':
-  app = DemTaper()
-  app.run()
-
-# End of file
-

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/Makefile.am	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/Makefile.am	2011-07-12 23:26:08 UTC (rev 18746)
@@ -18,7 +18,7 @@
 
 dist_noinst_DATA = \
 	README \
-	mkfacets.sh \
+	mkfacets.py \
 	mksurface.jou
 
 

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/README
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/README	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/README	2011-07-12 23:26:08 UTC (rev 18746)
@@ -2,7 +2,7 @@
 triangulated surface using Cubit. We use the same original data as we did
 for the dem example (coarsely-sampled DEM of Mt Ruapehu volcano, New
 Zealand). There are only two files in this directory in addition to this
-README. The first (mkfacets.sh) is a shell script to create a Facets file
+README. The first (mkfacets.py) is a python script to create a Facets file
 (readable by Cubit) from the DEM. We use the GMT 'triangulate' utility to
 perform this task. Once the Facets file has been created, we can then use
 the 'mksurface.jou' file within Cubit to create the NURBS surface. Note

Copied: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.py (from rev 18744, short/3D/PyLith/branches/v1.6-stable/examples/meshing/surface_nurbs/triangles/mkfacets.py)
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.py	                        (rev 0)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# Python script to create a triangulated surface in Facets format from a
+# set of points. The Facets file can be read by Cubit.
+# This script uses the GMT triangulate command, which invokes the triangle
+# meshing package if you have installed it.
+
+# Import necessary packages.
+import subprocess
+# import pdb
+# pdb.set_trace()
+
+# Define filenames.
+vertexFile = "../dem/ruapehu-nzmg-1km.txt"
+connectFile = "ruapehu-nzmg-1km.connect"
+facetsOut = "ruapehu-nzmg-1km.fac"
+
+# Triangulate the points to get connectivities.
+c = open(connectFile, 'w')
+triCall = ["triangulate", vertexFile, "-V"]
+retCode = subprocess.Popen(triCall, stdout=c)
+c.close()
+
+# Read connectivities and vertices.
+v = open(vertexFile, 'r')
+vertices = v.readlines()
+v.close()
+numVertices = len(vertices)
+c = open(connectFile, 'r')
+connect = c.readlines()
+c.close()
+numTriangles = len(connect)
+
+# Create factes file header and write it to facets file.
+header = "%d  %d\n" % (numVertices, numTriangles)
+f = open(facetsOut, 'w')
+f.write(header)
+
+# Write numbered vertices to facets file.
+vertFormat = "%d  %s"
+for vertex in range(numVertices):
+  outLine = vertFormat % (vertex, vertices[vertex])
+  f.write(outLine)
+  
+# Write numbered connectivities to facets file.
+connectFormat = "%d  %s"
+for triangle in range(numTriangles):
+  outLine = connectFormat % (triangle, connect[triangle])
+  f.write(outLine)
+f.close()

Deleted: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.sh
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.sh	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mkfacets.sh	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,28 +0,0 @@
-#! /bin/sh
-# Shell script to create a triangulated surface in Facets format from a
-# set of points. The Facets file can be read by Cubit.
-# This script uses the GMT triangulate command, which invokes the triangle
-# meshing package if you have installed it.
-
-# Define filenames.
-vertfile=../dem/ruapehu-nzmg-1km.txt
-connectfile=ruapehu-nzmg-1km.connect
-outfile=ruapehu-nzmg-1km.fac
-vertidfile=ruapehu-nzmg-1km-id.vert
-connectidfile=ruapehu-nzmg-1km-id.connect
-
-# Triangulate the points to get connectivities.
-triangulate $vertfile -V > $connectfile
-
-# Count the number of vertices and cells to create a header.
-numverts=$(wc -l < $vertfile)
-numcells=$(wc -l < $connectfile)
-header="$numverts $numcells"
-
-# Create numbered versions of vertex and connectivity files (0-based).
-nl -p -v0 $vertfile > $vertidfile
-nl -p -v0 $connectfile > $connectidfile
-
-# Cat files together to create Facets file.
-echo $header > $outfile
-cat $vertidfile $connectidfile >> $outfile

Modified: short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mksurface.jou
===================================================================
--- short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mksurface.jou	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/meshing/surface_nurbs/triangles/mksurface.jou	2011-07-12 23:26:08 UTC (rev 18746)
@@ -23,6 +23,7 @@
 
 # Export the surface in binary ACIS format.
 set geometry engine acis
-export acis "ruapehu-nzmg-1km.sab" surface 2 binary overwrite
+export acis "ruapehu-nzmg-1km.sat" surface 2 overwrite
 
 
+

Modified: short/3D/PyLith/trunk/examples/twocells/twohex8/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twohex8/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twohex8/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -100,9 +100,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying fault slip (0.01 m of left-lateral slip).
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twohex8/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twohex8/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twohex8/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -80,6 +80,7 @@
 # We define uniform material properties for this problem rather than
 # using a spatial database file.
 db_properties = spatialdata.spatialdb.UniformDB
+db_properties.label = Elastic properties
 db_properties.values = [vp,vs,density,viscosity]
 db_properties.data = [5291.502622129181*m/s,3000.0*m/s,2700.0*kg/m**3,7.10046e19*Pa*s]
 

Modified: short/3D/PyLith/trunk/examples/twocells/twoquad4/axialtract.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twoquad4/axialtract.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twoquad4/axialtract.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -149,9 +149,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying zero fault slip.
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip_zero.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twoquad4/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twoquad4/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twoquad4/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -101,9 +101,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying fault slip (0.01 m of left-lateral slip).
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twoquad4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twoquad4/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twoquad4/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -79,6 +79,7 @@
 
 # The properties for this material are given in the spatial database file
 # 'matprops.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set cell type to quadrilateral (2-d Lagrange).

Modified: short/3D/PyLith/trunk/examples/twocells/twotet4/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotet4/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twotet4/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -85,9 +85,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying fault slip (0.01 m of left-lateral slip).
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twotet4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotet4/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twotet4/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -81,6 +81,7 @@
 
 # The properties for this material are given in the spatial database file
 # 'matprops.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # We are doing 3D quadrature for a tetrahedron.

Modified: short/3D/PyLith/trunk/examples/twocells/twotet4-geoproj/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotet4-geoproj/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twotet4-geoproj/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -91,9 +91,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying fault slip (0.01 m of left-lateral slip).
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twotri3/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotri3/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twotri3/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -86,9 +86,11 @@
 [pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
 
 # Database specifying fault slip (0.01 m of left-lateral slip).
+slip.label = Final slip
 slip.iohandler.filename = dislocation_slip.spatialdb
 
 # Database specifying time at which fault slips (0.0 s).
+slip_time.label = Slip time
 slip_time.iohandler.filename = dislocation_sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/examples/twocells/twotri3/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/examples/twocells/twotri3/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/examples/twocells/twotri3/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -80,6 +80,7 @@
 
 # The properties for this material are given in the spatial database file
 # 'matprops.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # We are doing 2D quadrature for a triangle.

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-07-12 23:26:08 UTC (rev 18746)
@@ -60,6 +60,9 @@
 typedef ALE::ISieveVisitor::IndicesVisitor<RealSection,SieveSubMesh::order_type,PetscInt> IndicesVisitor;
 
 // ----------------------------------------------------------------------
+const double pylith::faults::FaultCohesiveDyn::_slipRateTolerance = 1.0e-12;
+
+// ----------------------------------------------------------------------
 // Default constructor.
 pylith::faults::FaultCohesiveDyn::FaultCohesiveDyn(void) :
   _dbInitialTract(0),
@@ -1485,6 +1488,11 @@
         slipRateVertex[iDim] +=
           velocityVertexP[kDim] * +orientationVertex[iDim*spaceDim+kDim];
 
+    // Limit velocity to resolvable range
+    for (int iDim = 0; iDim < spaceDim; ++iDim)
+      if (fabs(slipRateVertex[iDim]) < _slipRateTolerance)
+	slipRateVertex[iDim] = 0.0;
+
     // Update slip rate field.
     assert(slipRateVertex.size() == 
 	   slipRateSection->getFiberDimension(v_fault));

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.hh	2011-07-12 23:26:08 UTC (rev 18746)
@@ -290,6 +290,9 @@
 
   PetscKSP _ksp; ///< PETSc KSP linear solver for sensitivity problem.
 
+  /// Minimum resolvable slip rate accounting for roundoff errors
+  static const double _slipRateTolerance;
+
 // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveKin.cc	2011-07-12 23:26:08 UTC (rev 18746)
@@ -219,14 +219,36 @@
 
     const srcs_type::const_iterator s_iter = _eqSrcs.find(value);
     assert(s_iter != _eqSrcs.end());
-    return s_iter->second->finalSlip();
 
+    // Need to append name of rupture to final slip label. Because
+    // Field is const, we use a buffer.
+    _allocateBufferVectorField();
+    topology::Field<topology::SubMesh>& buffer =
+        _fields->get("buffer (vector)");
+    buffer.copy(s_iter->second->finalSlip());
+    assert(value.length() > 0);
+    const std::string& label = std::string("final_slip_") + std::string(value);
+    buffer.label(label.c_str());
+
+    return buffer;
+
   } else if (0 == strncasecmp("slip_time_X", name, timeStrLen)) {
     const std::string value = std::string(name).substr(timeStrLen + 1);
     const srcs_type::const_iterator s_iter = _eqSrcs.find(value);
     assert(s_iter != _eqSrcs.end());
-    return s_iter->second->slipTime();
 
+    // Need to append name of rupture to final slip label. Because
+    // Field is const, we use a buffer.
+    _allocateBufferScalarField();
+    topology::Field<topology::SubMesh>& buffer =
+        _fields->get("buffer (scalar)");
+    buffer.copy(s_iter->second->slipTime());
+    assert(value.length() > 0);
+    const std::string& label = std::string("slip_time_") + std::string(value);
+    buffer.label(label.c_str());
+
+    return buffer;
+
   } else if (0 == strcasecmp("traction_change", name)) {
     assert(0 != fields);
     const topology::Field<topology::Mesh>& dispT = fields->get("disp(t)");

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1826,6 +1826,7 @@
   topology::Field<topology::SubMesh>& area = _fields->get("area");
   const topology::Field<topology::SubMesh>& slip = _fields->get("slip");
   area.newSection(slip, 1);
+  area.vectorFieldType(topology::FieldBase::SCALAR);
   area.allocate();
   area.zero();
   const ALE::Obj<RealSection>& areaSection = area.section();

Modified: short/3D/PyLith/trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc	2011-07-12 23:26:08 UTC (rev 18746)
@@ -347,14 +347,14 @@
 	const int numTimeSteps
 	  = DataWriter<mesh_type, field_type>::_numTimeSteps;
 	const hsize_t ndims = (numTimeSteps > 0) ? 3 : 2;
-	hsize_t dims[3];
+	hsize_t maxDims[3];
 	if (3 == ndims) {
-	  dims[0] = 1; // external file only constains 1 time step so far.
-	  dims[1] = vNumbering->getGlobalSize();
-	  dims[2] = fiberDim;
+	  maxDims[0] = H5S_UNLIMITED;
+	  maxDims[1] = vNumbering->getGlobalSize();
+	  maxDims[2] = fiberDim;
 	} else {
-	  dims[0] = vNumbering->getGlobalSize();
-	  dims[1] = fiberDim;
+	  maxDims[0] = vNumbering->getGlobalSize();
+	  maxDims[1] = fiberDim;
 	} // else
 	// Create 'vertex_fields' group if necessary.
 	if (!_h5->hasGroup("/vertex_fields"))
@@ -362,7 +362,7 @@
 	
 	_h5->createDatasetRawExternal("/vertex_fields", field.label(),
 				      _datasetFilename(field.label()).c_str(),
-				      dims, ndims, H5T_IEEE_F64BE);
+				      maxDims, ndims, H5T_IEEE_F64BE);
 	std::string fullName = std::string("/vertex_fields/") + field.label();
 	_h5->writeAttribute(fullName.c_str(), "vector_field_type",
 			    topology::FieldBase::vectorFieldString(field.vectorFieldType()));
@@ -484,14 +484,14 @@
 	const int numTimeSteps =
 	  DataWriter<mesh_type, field_type>::_numTimeSteps;
 	const hsize_t ndims = (numTimeSteps > 0) ? 3 : 2;
-	hsize_t dims[3];
+	hsize_t maxDims[3];
 	if (3 == ndims) {
-	  dims[0] = 1; // external file only constains 1 time step so far.
-	  dims[1] = numbering->getGlobalSize();
-	  dims[2] = fiberDim;
+	  maxDims[0] = H5S_UNLIMITED;
+	  maxDims[1] = numbering->getGlobalSize();
+	  maxDims[2] = fiberDim;
 	} else {
-	  dims[0] = numbering->getGlobalSize();
-	  dims[1] = fiberDim;
+	  maxDims[0] = numbering->getGlobalSize();
+	  maxDims[1] = fiberDim;
 	} // else
 	// Create 'cell_fields' group if necessary.
 	if (!_h5->hasGroup("/cell_fields"))
@@ -499,7 +499,7 @@
 	
 	_h5->createDatasetRawExternal("/cell_fields", field.label(),
 				      _datasetFilename(field.label()).c_str(),
-				      dims, ndims, H5T_IEEE_F64BE);
+				      maxDims, ndims, H5T_IEEE_F64BE);
 	std::string fullName = std::string("/cell_fields/") + field.label();
 	_h5->writeAttribute(fullName.c_str(), "vector_field_type",
 			    topology::FieldBase::vectorFieldString(field.vectorFieldType()));

Modified: short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/bc/BoundaryCondition.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -31,6 +31,16 @@
 from pylith.utils.PetscComponent import PetscComponent
 from bc import BoundaryCondition as ModuleBoundaryCondition
 
+# Validator for label
+def validateLabel(value):
+  """
+  Validate label for group/nodeset/pset.
+  """
+  if 0 == len(value):
+    raise ValueError("Label for group/nodeset/pset in mesh not specified.")
+  return value
+
+
 # Validator for direction
 def validateDir(value):
   """
@@ -76,7 +86,7 @@
 
     import pyre.inventory
 
-    label = pyre.inventory.str("label", default="")
+    label = pyre.inventory.str("label", default="", validator=validateLabel)
     label.meta['tip'] = "Label identifier for boundary."
 
     upDir = pyre.inventory.list("up_dir", default=[0, 0, 1],
@@ -132,10 +142,16 @@
     """
     Setup members using inventory.
     """
-    PetscComponent._configure(self)
-    ModuleBoundaryCondition.label(self, self.inventory.label)
-    self.upDir = map(float, self.inventory.upDir)
-    self.perfLogger = self.inventory.perfLogger
+    try:
+      PetscComponent._configure(self)
+      ModuleBoundaryCondition.label(self, self.inventory.label)
+      self.upDir = map(float, self.inventory.upDir)
+      self.perfLogger = self.inventory.perfLogger
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring boundary condition "
+                       "(%s):\n%s" % (aliases, err.message))
+                         
     return
 
 

Modified: short/3D/PyLith/trunk/pylith/bc/DirichletBC.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/DirichletBC.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/bc/DirichletBC.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -114,8 +114,13 @@
     """
     Setup members using inventory.
     """
-    BoundaryCondition._configure(self)
-    TimeDependentPoints._configure(self)
+    try:
+      BoundaryCondition._configure(self)
+      TimeDependentPoints._configure(self)
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring Dirichlet boundary condition "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
 

Modified: short/3D/PyLith/trunk/pylith/bc/ZeroDispDB.py
===================================================================
--- short/3D/PyLith/trunk/pylith/bc/ZeroDispDB.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/bc/ZeroDispDB.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -56,7 +56,9 @@
     values = ["displacement-x", "displacement-y", "displacement-z"]
     data = [0.0*m, 0.0*m, 0.0*m]
 
+    label = pyre.inventory.str("label", default="Zero displacement BC.")
 
+
   # PUBLIC METHODS /////////////////////////////////////////////////////
 
   def __init__(self, name="zerodispdb"):

Modified: short/3D/PyLith/trunk/pylith/faults/Fault.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/Fault.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/faults/Fault.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -29,6 +29,16 @@
 from pylith.utils.PetscComponent import PetscComponent
 from faults import Fault as ModuleFault
 
+# Validator for label
+def validateLabel(value):
+  """
+  Validate label for group/nodeset/pset.
+  """
+  if 0 == len(value):
+    raise ValueError("Label for group/nodeset/pset in mesh not specified.")
+  return value
+
+
 # Validator for direction
 def validateDir(value):
   """
@@ -77,8 +87,8 @@
   matId.meta['tip'] = "Fault identifier (must be unique across all faults " \
       "and materials)."
   
-  faultLabel = pyre.inventory.str("label", default="")
-  faultLabel.meta['tip'] = "Name of fault."
+  faultLabel = pyre.inventory.str("label", default="", validator=validateLabel)
+  faultLabel.meta['tip'] = "Label identifier for fault."
   
   upDir = pyre.inventory.list("up_dir", default=[0, 0, 1],
                               validator=validateDir)
@@ -216,12 +226,17 @@
     """
     Setup members using inventory.
     """
-    PetscComponent._configure(self)
-    self.faultQuadrature = self.inventory.faultQuadrature
-    self.upDir = map(float, self.inventory.upDir)
-    ModuleFault.id(self, self.inventory.matId)
-    ModuleFault.label(self, self.inventory.faultLabel)
-    self.perfLogger = self.inventory.perfLogger
+    try:
+      PetscComponent._configure(self)
+      self.faultQuadrature = self.inventory.faultQuadrature
+      self.upDir = map(float, self.inventory.upDir)
+      ModuleFault.id(self, self.inventory.matId)
+      ModuleFault.label(self, self.inventory.faultLabel)
+      self.perfLogger = self.inventory.perfLogger
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring fault "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/feassemble/FIATLagrange.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/FIATLagrange.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/feassemble/FIATLagrange.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -406,13 +406,18 @@
     """
     Set members based using inventory.
     """
-    ReferenceCell._configure(self)
-    self.cellDim = self.inventory.dimension
-    self.degree = self.inventory.degree
-    self.order = self.inventory.order
-
-    if self.order == -1:
-      self.order = self.degree+1
+    try:
+      ReferenceCell._configure(self)
+      self.cellDim = self.inventory.dimension
+      self.degree = self.inventory.degree
+      self.order = self.inventory.order
+      
+      if self.order == -1:
+        self.order = self.degree+1
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring quadrature "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
 

Modified: short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py
===================================================================
--- short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/feassemble/FIATSimplex.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -158,12 +158,17 @@
     """
     Set members based using inventory.
     """
-    ReferenceCell._configure(self)
-    self.shape = self.inventory.shape
-    self.degree = self.inventory.degree
-    self.order = self.inventory.order
-    if self.order == -1:
-      self.order = self.degree
+    try:
+      ReferenceCell._configure(self)
+      self.shape = self.inventory.shape
+      self.degree = self.inventory.degree
+      self.order = self.inventory.order
+      if self.order == -1:
+        self.order = self.degree
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring quadrature "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/friction/FrictionModel.py
===================================================================
--- short/3D/PyLith/trunk/pylith/friction/FrictionModel.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/friction/FrictionModel.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -32,6 +32,16 @@
 
 from pylith.utils.PetscComponent import PetscComponent
 
+# Validator for label
+def validateLabel(value):
+  """
+  Validate descriptive label.
+  """
+  if 0 == len(value):
+    raise ValueError("Discriptive label for friction model not specified.")
+  return value
+
+
 # FrictionModel class
 class FrictionModel(PetscComponent):
   """
@@ -63,8 +73,8 @@
 
     import pyre.inventory
 
-    label = pyre.inventory.str("label", default="")
-    label.meta['tip'] = "Name of the friction model."
+    label = pyre.inventory.str("label", default="", validator=validateLabel)
+    label.meta['tip'] = "Descriptive label for friction model."
 
     from spatialdata.spatialdb.SimpleDB import SimpleDB
     dbProperties = pyre.inventory.facility("db_properties",
@@ -109,14 +119,19 @@
     """
     Setup members using inventory.
     """
-    PetscComponent._configure(self)
-    self.label(self.inventory.label)
-    self.dbProperties(self.inventory.dbProperties)
-    from pylith.utils.NullComponent import NullComponent
-    if not isinstance(self.inventory.dbInitialState, NullComponent):
-      self.dbInitialState(self.inventory.dbInitialState)
+    try:
+      PetscComponent._configure(self)
+      self.label(self.inventory.label)
+      self.dbProperties(self.inventory.dbProperties)
+      from pylith.utils.NullComponent import NullComponent
+      if not isinstance(self.inventory.dbInitialState, NullComponent):
+        self.dbInitialState(self.inventory.dbInitialState)
 
-    self.perfLogger = self.inventory.perfLogger
+      self.perfLogger = self.inventory.perfLogger
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring friction model "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/materials/Material.py
===================================================================
--- short/3D/PyLith/trunk/pylith/materials/Material.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/materials/Material.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -32,6 +32,16 @@
 
 from pylith.utils.PetscComponent import PetscComponent
 
+# Validator for label
+def validateLabel(value):
+  """
+  Validate descriptive label.
+  """
+  if 0 == len(value):
+    raise ValueError("Descriptive label for material not specified.")
+  return value
+
+
 # Material class
 class Material(PetscComponent):
   """
@@ -56,7 +66,7 @@
     ##
     ## \b Properties
     ## @li \b id Material identifier (from mesh generator)
-    ## @li \b name Name of material
+    ## @li \b label Descriptive label for material.
     ##
     ## \b Facilities
     ## @li \b db_properties Database of material property parameters
@@ -68,8 +78,8 @@
     id = pyre.inventory.int("id", default=0)
     id.meta['tip'] = "Material identifier (from mesh generator)."
 
-    label = pyre.inventory.str("label", default="")
-    label.meta['tip'] = "Name of material."
+    label = pyre.inventory.str("label", default="", validator=validateLabel)
+    label.meta['tip'] = "Descriptive label for material."
 
     from spatialdata.spatialdb.SimpleDB import SimpleDB
     dbProperties = pyre.inventory.facility("db_properties",
@@ -169,16 +179,21 @@
     """
     Setup members using inventory.
     """
-    PetscComponent._configure(self)
-    self.id(self.inventory.id)
-    self.label(self.inventory.label)
-    self.dbProperties(self.inventory.dbProperties)
-    from pylith.utils.NullComponent import NullComponent
-    if not isinstance(self.inventory.dbInitialState, NullComponent):
-      self.dbInitialState(self.inventory.dbInitialState)
+    try:
+      PetscComponent._configure(self)
+      self.id(self.inventory.id)
+      self.label(self.inventory.label)
+      self.dbProperties(self.inventory.dbProperties)
+      from pylith.utils.NullComponent import NullComponent
+      if not isinstance(self.inventory.dbInitialState, NullComponent):
+        self.dbInitialState(self.inventory.dbInitialState)
 
-    self.quadrature = self.inventory.quadrature
-    self.perfLogger = self.inventory.perfLogger
+      self.quadrature = self.inventory.quadrature
+      self.perfLogger = self.inventory.perfLogger
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring material "
+                       "(%s):\n%s" % (aliases, err.message))
     return
 
   

Modified: short/3D/PyLith/trunk/pylith/meshio/DataWriterVTK.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/DataWriterVTK.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/meshio/DataWriterVTK.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -82,4 +82,19 @@
     return
 
 
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Configure object.
+    """
+    try:
+      DataWriter._configure(self)
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring VTK output "
+                       "(%s):\n%s" % (aliases, err.message))
+
+    return
+
 # End of file 

Modified: short/3D/PyLith/trunk/pylith/meshio/MeshIOAscii.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/MeshIOAscii.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/meshio/MeshIOAscii.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -26,6 +26,16 @@
 from MeshIOObj import MeshIOObj
 from meshio import MeshIOAscii as ModuleMeshIOAscii
 
+# Validator for filename
+def validateFilename(value):
+  """
+  Validate filename.
+  """
+  if 0 == len(value):
+    raise ValueError("Filename for ASCII input mesh not specified.")
+  return value
+
+
 # MeshIOAscii class
 class MeshIOAscii(MeshIOObj, ModuleMeshIOAscii):
   """
@@ -53,7 +63,8 @@
 
     import pyre.inventory
 
-    filename = pyre.inventory.str("filename", default="")
+    filename = pyre.inventory.str("filename", default="", 
+                                  validator=validateFilename)
     filename.meta['tip'] = "Name of mesh file"
 
     from spatialdata.geocoords.CSCart import CSCart

Modified: short/3D/PyLith/trunk/pylith/meshio/MeshIOCubit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/MeshIOCubit.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/meshio/MeshIOCubit.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -26,6 +26,16 @@
 from MeshIOObj import MeshIOObj
 from meshio import MeshIOCubit as ModuleMeshIOCubit
 
+# Validator for filename
+def validateFilename(value):
+  """
+  Validate filename.
+  """
+  if 0 == len(value):
+    raise ValueError("Filename for CUBIT input mesh not specified.")
+  return value
+
+
 # MeshIOCubit class
 class MeshIOCubit(MeshIOObj, ModuleMeshIOCubit):
   """
@@ -53,7 +63,8 @@
 
     import pyre.inventory
 
-    filename = pyre.inventory.str("filename", default="mesh.exo")
+    filename = pyre.inventory.str("filename", default="mesh.exo",
+                                  validator=validateFilename)
     filename.meta['tip'] = "Name of Cubit Exodus file."
 
     useNames = pyre.inventory.bool("use_nodeset_names", default=True)

Modified: short/3D/PyLith/trunk/pylith/meshio/MeshIOLagrit.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/MeshIOLagrit.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/meshio/MeshIOLagrit.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -26,6 +26,26 @@
 from MeshIOObj import MeshIOObj
 from meshio import MeshIOLagrit as ModuleMeshIOLagrit
 
+# Validator for filename
+def validateFilenameGmv(value):
+  """
+  Validate filename.
+  """
+  if 0 == len(value):
+    raise ValueError("Filename for LaGriT input mesh not specified.")
+  return value
+
+
+# Validator for filename
+def validateFilenamePset(value):
+  """
+  Validate filename.
+  """
+  if 0 == len(value):
+    raise ValueError("Filename for LaGriT pset file not specified.")
+  return value
+
+
 # MeshIOLagrit class
 class MeshIOLagrit(MeshIOObj, ModuleMeshIOLagrit):
   """
@@ -56,10 +76,12 @@
 
     import pyre.inventory
 
-    filenameGmv = pyre.inventory.str("filename_gmv", default="mesh.gmv")
+    filenameGmv = pyre.inventory.str("filename_gmv", default="mesh.gmv",
+                                     validator=validateFilenameGmv)
     filenameGmv.meta['tip'] = "Name of mesh GMV file."
 
-    filenamePset = pyre.inventory.str("filename_pset", default="mesh.pset")
+    filenamePset = pyre.inventory.str("filename_pset", default="mesh.pset",
+                                      validator=validateFilenamePset)
     filenamePset.meta['tip'] = "Name of mesh PSET file."
 
     flipEndian = pyre.inventory.bool("flip_endian", default=False)

Modified: short/3D/PyLith/trunk/pylith/meshio/OutputSolnSubset.py
===================================================================
--- short/3D/PyLith/trunk/pylith/meshio/OutputSolnSubset.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/pylith/meshio/OutputSolnSubset.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -26,6 +26,16 @@
 from OutputManager import OutputManager
 from meshio import OutputSolnSubset as ModuleOutputSolnSubset
 
+# Validator for label
+def validateLabel(value):
+  """
+  Validate label for group/nodeset/pset.
+  """
+  if 0 == len(value):
+    raise ValueError("Label for group/nodeset/pset in mesh not specified.")
+  return value
+
+
 # OutputSolnSubset class
 class OutputSolnSubset(OutputManager, ModuleOutputSolnSubset):
   """
@@ -53,7 +63,7 @@
                                          default=["displacement"])
   vertexDataFields.meta['tip'] = "Names of vertex data fields to output."
   
-  label = pyre.inventory.str("label", default="")
+  label = pyre.inventory.str("label", default="", validator=validateLabel)
   label.meta['tip'] = "Label identifier for subdomain."
 
   from DataWriterVTKSubMesh import DataWriterVTKSubMesh
@@ -138,15 +148,21 @@
     """
     Set members based using inventory.
     """
-    OutputManager._configure(self)
-    ModuleOutputSolnSubset.label(self, self.label)
-    ModuleOutputSolnSubset.coordsys(self, self.inventory.coordsys)
-    ModuleOutputSolnSubset.writer(self, self.inventory.writer)
-    from pylith.utils.NullComponent import NullComponent
-    if not isinstance(self.inventory.vertexFilter, NullComponent):
-      ModuleOutputSolnSubset.vertexFilter(self, self.inventory.vertexFilter)
-    if not isinstance(self.inventory.cellFilter, NullComponent):
-      ModuleOutputSolnSubset.cellFilter(self, self.inventory.cellFilter)
+    try:
+      OutputManager._configure(self)
+      ModuleOutputSolnSubset.label(self, self.label)
+      ModuleOutputSolnSubset.coordsys(self, self.inventory.coordsys)
+      ModuleOutputSolnSubset.writer(self, self.inventory.writer)
+      from pylith.utils.NullComponent import NullComponent
+      if not isinstance(self.inventory.vertexFilter, NullComponent):
+        ModuleOutputSolnSubset.vertexFilter(self, self.inventory.vertexFilter)
+      if not isinstance(self.inventory.cellFilter, NullComponent):
+        ModuleOutputSolnSubset.cellFilter(self, self.inventory.cellFilter)
+    except ValueError as err:
+      aliases = ", ".join(self.aliases)
+      raise ValueError("Error while configuring output over boundary "
+                       "(%s):\n%s" % (aliases, err.message))
+
     return
 
 

Modified: short/3D/PyLith/trunk/setup.py
===================================================================
--- short/3D/PyLith/trunk/setup.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/setup.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -22,7 +22,7 @@
 setup(
     
     name = 'PyLith', 
-    version = '1.6.0',
+    version = '1.6.1',
 
     zip_safe = False,
     packages = find_packages(),

Modified: short/3D/PyLith/trunk/tests/2d/faultstrip/dynamic_slipweakening.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/faultstrip/dynamic_slipweakening.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests/2d/faultstrip/dynamic_slipweakening.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -8,9 +8,10 @@
 
 # Use slip-weakening friction
 friction = pylith.friction.SlipWeakening
+friction.label = Slip weakening
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
-friction.db_properties.label = Slip weakening
+friction.db_properties.label = Slip weakening parameters
 friction.db_properties.values = [static-coefficient,dynamic-coefficient,slip-weakening-parameter,cohesion]
 friction.db_properties.data = [0.6,0.3,0.2*m,0.0*Pa]
 

Modified: short/3D/PyLith/trunk/tests/2d/faultstrip/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/2d/faultstrip/pylithapp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests/2d/faultstrip/pylithapp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -64,6 +64,7 @@
 label = Elastic material
 id = 1
 db_properties = spatialdata.spatialdb.UniformDB
+db_properties.label = Elastic properties
 db_properties.values = [density,vp,vs]
 db_properties.data = [2500*kg/m**3,1732.0*m/s,1000.0*m/s]
 

Deleted: short/3D/PyLith/trunk/tests/refinefaulttip/Makefile.in
===================================================================
--- short/3D/PyLith/trunk/tests/refinefaulttip/Makefile.in	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests/refinefaulttip/Makefile.in	2011-07-12 23:26:08 UTC (rev 18746)
@@ -1,447 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-# -*- Makefile -*-
-#
-# ----------------------------------------------------------------------
-#
-# Brad T. Aagaard, U.S. Geological Survey
-# Charles A. Williams, GNS Science
-# Matthew G. Knepley, University of Chicago
-#
-# This code was developed as part of the Computational Infrastructure
-# for Geodynamics (http://geodynamics.org).
-#
-# Copyright (c) 2010-2011 University of California, Davis
-#
-# See COPYING for license information.
-#
-# ----------------------------------------------------------------------
-#
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = tests/refinefaulttip
-DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ac_pkg_swig.m4 \
-	$(top_srcdir)/m4/cit_cppunit.m4 $(top_srcdir)/m4/cit_cuda.m4 \
-	$(top_srcdir)/m4/cit_funcstring.m4 \
-	$(top_srcdir)/m4/cit_hdf5.m4 $(top_srcdir)/m4/cit_mpi.m4 \
-	$(top_srcdir)/m4/cit_netcdf.m4 $(top_srcdir)/m4/cit_numpy.m4 \
-	$(top_srcdir)/m4/cit_petsc.m4 $(top_srcdir)/m4/cit_proj4.m4 \
-	$(top_srcdir)/m4/cit_python.m4 \
-	$(top_srcdir)/m4/cit_spatialdata.m4 \
-	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
-	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
-	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/portinfo
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-DATA = $(dist_noinst_DATA)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_LDFLAGS = @AM_LDFLAGS@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-NUMPY_INCDIR = @NUMPY_INCDIR@
-NVCC = @NVCC@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PETSC_ARCH = @PETSC_ARCH@
-PETSC_CC = @PETSC_CC@
-PETSC_CC_INCLUDES = @PETSC_CC_INCLUDES@
-PETSC_CXX = @PETSC_CXX@
-PETSC_CXX_INCLUDE = @PETSC_CXX_INCLUDE@
-PETSC_CXX_LIB = @PETSC_CXX_LIB@
-PETSC_DIR = @PETSC_DIR@
-PETSC_FC = @PETSC_FC@
-PETSC_FC_INCLUDES = @PETSC_FC_INCLUDES@
-PETSC_FORTRAN_LIB = @PETSC_FORTRAN_LIB@
-PETSC_LIB = @PETSC_LIB@
-PETSC_MPI_INCLUDE = @PETSC_MPI_INCLUDE@
-PETSC_MPI_LIB = @PETSC_MPI_LIB@
-PETSC_SIEVE_FLAGS = @PETSC_SIEVE_FLAGS@
-PETSC_VERSION_MAJOR = @PETSC_VERSION_MAJOR@
-PETSC_VERSION_MINOR = @PETSC_VERSION_MINOR@
-PETSC_VERSION_SUBMINOR = @PETSC_VERSION_SUBMINOR@
-PYLITH_SWIG_CPPFLAGS = @PYLITH_SWIG_CPPFLAGS@
-PYTHON = @PYTHON@
-PYTHONPATH = @PYTHONPATH@
-PYTHON_BLDLIBRARY = @PYTHON_BLDLIBRARY@
-PYTHON_EGG_CFLAGS = @PYTHON_EGG_CFLAGS@
-PYTHON_EGG_CPPFLAGS = @PYTHON_EGG_CPPFLAGS@
-PYTHON_EGG_LDFLAGS = @PYTHON_EGG_LDFLAGS@
-PYTHON_EGG_LIBS = @PYTHON_EGG_LIBS@
-PYTHON_EGG_PYXFLAGS = @PYTHON_EGG_PYXFLAGS@
-PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
-PYTHON_INCDIR = @PYTHON_INCDIR@
-PYTHON_LA_LDFLAGS = @PYTHON_LA_LDFLAGS@
-PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
-PYTHON_LDLAST = @PYTHON_LDLAST@
-PYTHON_LDLIBRARY = @PYTHON_LDLIBRARY@
-PYTHON_LIBDIR = @PYTHON_LIBDIR@
-PYTHON_LIBP = @PYTHON_LIBP@
-PYTHON_LIBPL = @PYTHON_LIBPL@
-PYTHON_LIBS = @PYTHON_LIBS@
-PYTHON_LINKFORSHARED = @PYTHON_LINKFORSHARED@
-PYTHON_MODLIBS = @PYTHON_MODLIBS@
-PYTHON_PLATFORM = @PYTHON_PLATFORM@
-PYTHON_PREFIX = @PYTHON_PREFIX@
-PYTHON_SYSLIBS = @PYTHON_SYSLIBS@
-PYTHON_VERSION = @PYTHON_VERSION@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-SWIG = @SWIG@
-SWIG_LIB = @SWIG_LIB@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-have_doxygen = @have_doxygen@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-pkgpyexecdir = @pkgpyexecdir@
-pkgpythondir = @pkgpythondir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-pyexecdir = @pyexecdir@
-pythondir = @pythondir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-dist_noinst_DATA = \
-	tri3.cfg \
-	tri3.mesh \
-	quad4.cfg \
-	quad4.mesh \
-	tet4.cfg \
-	tet4.mesh \
-	hex8.cfg \
-	hex8.mesh
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/refinefaulttip/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign tests/refinefaulttip/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(DATA)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
-
-# End of file 
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:

Modified: short/3D/PyLith/trunk/tests_auto/1d/line2/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line2/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line2/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -51,6 +51,7 @@
 [dislocation.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 
@@ -75,7 +76,9 @@
 quadrature.cell.shape = point
 
 [dislocation.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
+slip.label = Final slip
 slip.iohandler.filename = finalslip.spatialdb
+slip_time.label = Slip time
 slip_time.iohandler.filename = sliptime.spatialdb
 
 

Modified: short/3D/PyLith/trunk/tests_auto/1d/line2/extensiondisp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line2/extensiondisp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line2/extensiondisp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [extensiondisp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 

Modified: short/3D/PyLith/trunk/tests_auto/1d/line2/extensionforce.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line2/extensionforce.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line2/extensionforce.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -48,6 +48,7 @@
 [extensionforce.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 
@@ -64,6 +65,7 @@
 [extensionforce.timedependent.bc.fixed]
 bc_dof = [0]
 label = fault
+#db_initial.label = Zero displacement bc.
 
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/tests_auto/1d/line2/lgdeformtranslation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line2/lgdeformtranslation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line2/lgdeformtranslation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -50,6 +50,7 @@
 [pylithapp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 

Modified: short/3D/PyLith/trunk/tests_auto/1d/line3/axialextension.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line3/axialextension.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line3/axialextension.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [axialextension.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 quadrature.cell.degree = 2

Modified: short/3D/PyLith/trunk/tests_auto/1d/line3/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/1d/line3/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/1d/line3/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [dislocation.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = line
 quadrature.cell.degree = 2
@@ -74,7 +75,9 @@
 quadrature.cell.shape = point
 
 [dislocation.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
+slip.label = Final slip
 slip.iohandler.filename = finalslip.spatialdb
+slip_time.label = Slip time
 slip_time.iohandler.filename = sliptime.spatialdb
 
 # ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/axialdisp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/axialdisp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/axialdisp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [axialdisp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -50,6 +50,7 @@
 [dislocation.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation2.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation2.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/dislocation2.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -55,6 +55,7 @@
 [pylithapp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_compression.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_compression.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_compression.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -40,13 +40,10 @@
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 3 boundary conditions: 'x_neg', 'y_neg' and 'x_pos'.
 bc = [x_neg,y_neg,x_pos]
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
-
 [friction_compression.timedependent.formulation.time_step]
 total_time = 0.0*s
 dt = 1.0*s
@@ -61,19 +58,12 @@
 material = pylith.materials.ElasticPlaneStrain
 
 [friction_compression.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
-label = elastic material
-
-# The cells associated with this material are given a material ID of 1
-# in the mesh file.
+label = Elastic material
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matprops.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
@@ -82,17 +72,14 @@
 # ----------------------------------------------------------------------
 # Provide information on the boundary conditions.
 
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [friction_compression.timedependent.bc.x_neg]
 bc_dof = [0]
 label = 21
 
-# Boundary conditions to be applied to the negative y-side of the mesh.
 [friction_compression.timedependent.bc.y_neg]
 bc_dof = [1]
 label = 24
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [friction_compression.timedependent.bc.x_pos]
 bc_dof = [0]
 label = 20
@@ -110,13 +97,10 @@
 
 fault = pylith.faults.FaultCohesiveDyn
 
-# Define fault properties.
 [friction_compression.timedependent.interfaces.fault]
 
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
 
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -125,6 +109,7 @@
 db_initial_tractions.values = [traction-shear,traction-normal]
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
+friction.label = Static friction
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Static friction
 friction.db_properties.values = [friction-coefficient,cohesion]

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_opening.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_opening.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_opening.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -41,24 +41,15 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [friction_opening.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
 bc = [x_neg,x_pos]
 bc.x_pos=pylith.bc.DirichletBoundary
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 
@@ -70,51 +61,28 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [friction_opening.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [friction_opening.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
-label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
+label = Elastic material
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [friction_opening.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [friction_opening.timedependent.bc.x_pos]
-
-# We are fixing the 1 (y) and prescribing 0 (x) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -130,32 +98,18 @@
 
 fault = pylith.faults.FaultCohesiveDyn
 
-# Define fault properties.
 [friction_opening.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
 
-# NOTE: It is possible to assign an ID number to a fault (e.g.,
-# 'id = 10').  Care must be taken when doing this, however, because the
-# assigned ID will become the material ID for the cohesive element.
-# This ID must not conflict with any of the material ID numbers for
-# volume elements.  The default ID for a fault is 100.  If you have a
-# fault in your mesh you must:
-# 1.  If you create your own fault ID, make sure it does not conflict
-#     with any of you material ID's.
-# 2.  If you use the default fault ID, make sure that none of your
-#     material ID's are equal to 100.
-
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 db_initial_tractions = spatialdata.spatialdb.UniformDB
-db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.label = Initial fault tractions
 db_initial_tractions.values = [traction-shear,traction-normal]
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
+friction.label = Static friction
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Static friction
 friction.db_properties.values = [friction-coefficient,cohesion]

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_sliding.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_sliding.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_sliding.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -30,9 +30,6 @@
 #debug = 1
 reader = pylith.meshio.MeshIOCubit
 
-# This component specification means we are using PyLith ASCII format,
-# and we then specify the filename and number of space dimensions for
-# the mesh.
 [friction_shear_sliding.mesh_generator.reader]
 filename = mesh.exo
 use_nodeset_names = False
@@ -41,26 +38,17 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [friction_shear_sliding.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
 bc = [x_neg,x_pos,y_pos_fault,y_neg_fault]
 bc.x_pos = pylith.bc.DirichletBoundary
 bc.y_pos_fault = pylith.bc.Neumann
 bc.y_neg_fault = pylith.bc.Neumann
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 
@@ -72,51 +60,27 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [friction_shear_sliding.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [friction_shear_sliding.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
-label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
+label = Elastic material
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
-
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [friction_shear_sliding.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degrees of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [friction_shear_sliding.timedependent.bc.x_pos]
-
-# We are fixing the 0 (x) and prescribing 1 (y) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -126,11 +90,7 @@
 
 
 
-# Boundary conditions to be applied to the positive y-side of the mesh.
 [friction_shear_sliding.timedependent.bc.y_pos_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_pos_fault' in the mesh file.
 label = 22
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -138,15 +98,10 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-0.6*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
-# Boundary conditions to be applied to the negative y-side of the mesh.
 [friction_shear_sliding.timedependent.bc.y_neg_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_neg_fault' in the mesh file.
 label = 23
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -154,7 +109,6 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-0.6*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -163,35 +117,19 @@
 # ----------------------------------------------------------------------
 # Provide information on the fault (interface).
 [friction_shear_sliding.timedependent.interfaces]
-
 fault = pylith.faults.FaultCohesiveDyn
 
-# Define fault properties.
 [friction_shear_sliding.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
-
-# NOTE: It is possible to assign an ID number to a fault (e.g.,
-# 'id = 10').  Care must be taken when doing this, however, because the
-# assigned ID will become the material ID for the cohesive element.
-# This ID must not conflict with any of the material ID numbers for
-# volume elements.  The default ID for a fault is 100.  If you have a
-# fault in your mesh you must:
-# 1.  If you create your own fault ID, make sure it does not conflict
-#     with any of you material ID's.
-# 2.  If you use the default fault ID, make sure that none of your
-#     material ID's are equal to 100.
-
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 db_initial_tractions = spatialdata.spatialdb.UniformDB
-db_initial_tractions.label = "Initial fault tractions"
+db_initial_tractions.label = Initial fault tractions
 db_initial_tractions.values = [traction-shear,traction-normal]
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
+friction.label = Static friction
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Static friction
 friction.db_properties.values = [friction-coefficient,cohesion]

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_stick.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_stick.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/friction_shear_stick.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -24,15 +24,10 @@
 # ----------------------------------------------------------------------
 # mesh_generator
 # ----------------------------------------------------------------------
-# The settings below control the mesh generation (importing mesh info).
-# Turn on debugging output for mesh generation.
 [friction_shear_stick.mesh_generator]
 #debug = 1
 reader = pylith.meshio.MeshIOCubit
 
-# This component specification means we are using PyLith ASCII format,
-# and we then specify the filename and number of space dimensions for
-# the mesh.
 [friction_shear_stick.mesh_generator.reader]
 filename = mesh.exo
 use_nodeset_names = False
@@ -41,26 +36,17 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [friction_shear_stick.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 3 boundary conditions: 'x_neg', 'x_pos_disp', 'x_pos_tract'
 bc = [x_neg,x_pos_disp,x_pos_tract,y_pos_fault,y_neg_fault]
 bc.x_pos_tract = pylith.bc.Neumann
 bc.y_pos_fault = pylith.bc.Neumann
 bc.y_neg_fault = pylith.bc.Neumann
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 [friction_shear_stick.timedependent.formulation.time_step]
@@ -71,22 +57,14 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [friction_shear_stick.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [friction_shear_stick.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
 label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
 # Set cell type to quadrilateral (2-d Lagrange).
@@ -96,33 +74,15 @@
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [friction_shear_stick.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degrees of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [friction_shear_stick.timedependent.bc.x_pos_disp]
-
-# We are fixing the 0 (x) degree of freedom.
 bc_dof = [0]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [friction_shear_stick.timedependent.bc.x_pos_tract]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -130,18 +90,11 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [1.0*MPa,0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 
-
-
-# Boundary conditions to be applied to the positive y-side of the mesh.
 [friction_shear_stick.timedependent.bc.y_pos_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_pos_fault' in the mesh file.
 label = 22
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -149,15 +102,10 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-1.0*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
-# Boundary conditions to be applied to the negative y-side of the mesh.
 [friction_shear_stick.timedependent.bc.y_neg_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_neg_fault' in the mesh file.
 label = 23
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -165,7 +113,6 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-1.0*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -205,6 +152,7 @@
 db_initial_tractions.values = [traction-shear,traction-normal]
 db_initial_tractions.data = [0.0*Pa, -10.0*MPa]
 
+friction.label = Static friction
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Static friction
 friction.db_properties.values = [friction-coefficient,cohesion]

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformrigidbody.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformrigidbody.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformrigidbody.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -52,6 +52,7 @@
 [lgdeformrigidbody.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformtraction.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformtraction.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/lgdeformtraction.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -52,6 +52,7 @@
 [lgdeformtraction.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/sheardisp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/sheardisp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/sheardisp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [sheardisp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_compression.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_compression.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_compression.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -40,10 +40,7 @@
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 3 boundary conditions: 'x_neg', 'y_neg' and 'x_pos'.
 bc = [x_neg,y_neg,x_pos]
-
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 
@@ -55,34 +52,22 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [slipweakening_compression.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [slipweakening_compression.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
-label = elastic material
-
-# The cells associated with this material are given a material ID of 1
-# in the mesh file.
+label = Elastic material
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matprops.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [slipweakening_compression.timedependent.bc.x_neg]
 bc_dof = [0]
 label = 21
@@ -112,11 +97,8 @@
 
 # Define fault properties.
 [slipweakening_compression.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
 
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -126,6 +108,7 @@
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
 friction = pylith.friction.SlipWeakening
+friction.label = Slip-weakening friction
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Slip weakening

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_opening.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_opening.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_opening.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -24,15 +24,10 @@
 # ----------------------------------------------------------------------
 # mesh_generator
 # ----------------------------------------------------------------------
-# The settings below control the mesh generation (importing mesh info).
-# Turn on debugging output for mesh generation.
 [slipweakening_opening.mesh_generator]
 #debug = 1
 reader = pylith.meshio.MeshIOCubit
 
-# This component specification means we are using PyLith ASCII format,
-# and we then specify the filename and number of space dimensions for
-# the mesh.
 [slipweakening_opening.mesh_generator.reader]
 filename = mesh.exo
 use_nodeset_names = False
@@ -41,24 +36,15 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [slipweakening_opening.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
 bc = [x_neg,x_pos]
 bc.x_pos=pylith.bc.DirichletBoundary
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 
@@ -70,51 +56,30 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [slipweakening_opening.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [slipweakening_opening.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
 label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
 # Boundary conditions to be applied to the negative x-side of the mesh.
 [slipweakening_opening.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
 # Boundary conditions to be applied to the positive x-side of the mesh.
 [slipweakening_opening.timedependent.bc.x_pos]
-
-# We are fixing the 1 (y) and prescribing 0 (x) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -132,22 +97,7 @@
 
 # Define fault properties.
 [slipweakening_opening.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
-
-# NOTE: It is possible to assign an ID number to a fault (e.g.,
-# 'id = 10').  Care must be taken when doing this, however, because the
-# assigned ID will become the material ID for the cohesive element.
-# This ID must not conflict with any of the material ID numbers for
-# volume elements.  The default ID for a fault is 100.  If you have a
-# fault in your mesh you must:
-# 1.  If you create your own fault ID, make sure it does not conflict
-#     with any of you material ID's.
-# 2.  If you use the default fault ID, make sure that none of your
-#     material ID's are equal to 100.
-
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -157,6 +107,7 @@
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
 friction = pylith.friction.SlipWeakening
+friction.label = Slip-weakening friction
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Slip weakening

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_sliding.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_sliding.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_sliding.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -24,15 +24,10 @@
 # ----------------------------------------------------------------------
 # mesh_generator
 # ----------------------------------------------------------------------
-# The settings below control the mesh generation (importing mesh info).
-# Turn on debugging output for mesh generation.
 [slipweakening_shear_sliding.mesh_generator]
 #debug = 1
 reader = pylith.meshio.MeshIOCubit
 
-# This component specification means we are using PyLith ASCII format,
-# and we then specify the filename and number of space dimensions for
-# the mesh.
 [slipweakening_shear_sliding.mesh_generator.reader]
 filename = mesh.exo
 use_nodeset_names = False
@@ -41,26 +36,17 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [slipweakening_shear_sliding.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 2 boundary conditions: 'x_neg', 'x_pos'
 bc = [x_neg,x_pos,y_pos_fault,y_neg_fault]
 bc.x_pos = pylith.bc.DirichletBoundary
 bc.y_pos_fault = pylith.bc.Neumann
 bc.y_neg_fault = pylith.bc.Neumann
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 
@@ -72,51 +58,30 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [slipweakening_shear_sliding.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [slipweakening_shear_sliding.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
 label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
 # Boundary conditions to be applied to the negative x-side of the mesh.
 [slipweakening_shear_sliding.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degrees of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
 # Boundary conditions to be applied to the positive x-side of the mesh.
 [slipweakening_shear_sliding.timedependent.bc.x_pos]
-
-# We are fixing the 0 (x) and prescribing 1 (y) degree of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -125,12 +90,8 @@
 db_initial.data = [0.0*m,1.0*m]
 
 
-
 # Boundary conditions to be applied to the positive y-side of the mesh.
 [slipweakening_shear_sliding.timedependent.bc.y_pos_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_pos_fault' in the mesh file.
 label = 22
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -138,15 +99,11 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-0.6*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 # Boundary conditions to be applied to the negative y-side of the mesh.
 [slipweakening_shear_sliding.timedependent.bc.y_neg_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_neg_fault' in the mesh file.
 label = 23
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -154,36 +111,18 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-0.6*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 # ----------------------------------------------------------------------
 # faults
 # ----------------------------------------------------------------------
-# Provide information on the fault (interface).
 [slipweakening_shear_sliding.timedependent.interfaces]
 
 fault = pylith.faults.FaultCohesiveDyn
 
-# Define fault properties.
 [slipweakening_shear_sliding.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
-
-# NOTE: It is possible to assign an ID number to a fault (e.g.,
-# 'id = 10').  Care must be taken when doing this, however, because the
-# assigned ID will become the material ID for the cohesive element.
-# This ID must not conflict with any of the material ID numbers for
-# volume elements.  The default ID for a fault is 100.  If you have a
-# fault in your mesh you must:
-# 1.  If you create your own fault ID, make sure it does not conflict
-#     with any of you material ID's.
-# 2.  If you use the default fault ID, make sure that none of your
-#     material ID's are equal to 100.
-
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -193,6 +132,7 @@
 db_initial_tractions.data = [0.0*Pa, -1.0*MPa]
 
 friction = pylith.friction.SlipWeakening
+friction.label = Slip-weakening friction
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Slip weakening

Modified: short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_stick.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_stick.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/quad4/slipweakening_shear_stick.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -24,15 +24,10 @@
 # ----------------------------------------------------------------------
 # mesh_generator
 # ----------------------------------------------------------------------
-# The settings below control the mesh generation (importing mesh info).
-# Turn on debugging output for mesh generation.
 [slipweakening_shear_stick.mesh_generator]
 #debug = 1
 reader = pylith.meshio.MeshIOCubit
 
-# This component specification means we are using PyLith ASCII format,
-# and we then specify the filename and number of space dimensions for
-# the mesh.
 [slipweakening_shear_stick.mesh_generator.reader]
 filename = mesh.exo
 use_nodeset_names = False
@@ -41,26 +36,17 @@
 # ----------------------------------------------------------------------
 # problem
 # ----------------------------------------------------------------------
-# Specify the problem settings.
-# This is a time-dependent problem, so we select this as our problem type.
-# We select a total time of 0 sec, and a time step size of 1 sec, so we
-# are performing a single time step.
-# The spatial dimension for this problem is 2.
-# For an implicit formulation (using implicit.cfg), we will perform 1
-# implicit time step from t = -1.0 to t = 0.0 (elastic solution step).
 [slipweakening_shear_stick.timedependent]
 dimension = 2
 normalizer.length_scale = 1.0*m
 formulation = pylith.problems.Implicit
 formulation.solver = pylith.problems.SolverNonlinear
 
-# Set bc to an array with 3 boundary conditions: 'x_neg', 'x_pos_disp', 'x_pos_tract'
 bc = [x_neg,x_pos_disp,x_pos_tract,y_pos_fault,y_neg_fault]
 bc.x_pos_tract = pylith.bc.Neumann
 bc.y_pos_fault = pylith.bc.Neumann
 bc.y_neg_fault = pylith.bc.Neumann
 
-# Set interfaces to an array with 1 fault: 'fault'.
 interfaces = [fault]
 
 [slipweakening_shear_stick.timedependent.formulation.time_step]
@@ -71,58 +57,31 @@
 # ----------------------------------------------------------------------
 # materials
 # ----------------------------------------------------------------------
-# Specify the material information for the problem.
-# The material type is isotropic elastic formulated for plane strain.
 [slipweakening_shear_stick.timedependent.materials]
 material = pylith.materials.ElasticPlaneStrain
 
 [slipweakening_shear_stick.timedependent.materials.material]
-
-# We give a label of 'elastic material' to this material.
 label = elastic material
-
-# The cells associated with this material are given a material ID of 0
-# in the mesh file.
 id = 1
 
-# The properties for this material are given in the spatial database file
-# 'matelastic2D.spatialdb'.
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 
-# Set cell type to quadrilateral (2-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 2
 
 # ----------------------------------------------------------------------
 # boundary conditions
 # ----------------------------------------------------------------------
-# Provide information on the boundary conditions.
-
-# Boundary conditions to be applied to the negative x-side of the mesh.
 [slipweakening_shear_stick.timedependent.bc.x_neg]
-
-# We are fixing the 0 (x) and 1 (y) degrees of freedom.
 bc_dof = [0,1]
-
-# The nodes associated with this boundary condition have the name
-# 'x_neg' in the mesh file.
 label = 21
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [slipweakening_shear_stick.timedependent.bc.x_pos_disp]
-
-# We are fixing the 0 (x) degree of freedom.
 bc_dof = [0]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
-# Boundary conditions to be applied to the positive x-side of the mesh.
 [slipweakening_shear_stick.timedependent.bc.x_pos_tract]
-
-# The nodes associated with this boundary condition have the name
-# 'x_pos' in the mesh file.
 label = 20
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -130,18 +89,11 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [1.0*MPa,0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
 
-
-
-# Boundary conditions to be applied to the positive y-side of the mesh.
 [slipweakening_shear_stick.timedependent.bc.y_pos_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_pos_fault' in the mesh file.
 label = 22
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -149,15 +101,10 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-1.0*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
-# Boundary conditions to be applied to the negative y-side of the mesh.
 [slipweakening_shear_stick.timedependent.bc.y_neg_fault]
-
-# The nodes associated with this boundary condition have the name
-# 'y_neg_fault' in the mesh file.
 label = 23
 
 db_initial = spatialdata.spatialdb.UniformDB
@@ -165,7 +112,6 @@
 db_initial.values = [traction-shear,traction-normal]
 db_initial.data = [-1.0*MPa, 0.0*MPa]
 
-# Set cell type to quadrilateral (1-d Lagrange).
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -179,24 +125,8 @@
 
 fault = pylith.faults.FaultCohesiveDyn
 
-# Define fault properties.
 [slipweakening_shear_stick.timedependent.interfaces.fault]
-
-# The nodes associated with this fault have the name 'fault' in the mesh file.
 label = 10
-
-# NOTE: It is possible to assign an ID number to a fault (e.g.,
-# 'id = 10').  Care must be taken when doing this, however, because the
-# assigned ID will become the material ID for the cohesive element.
-# This ID must not conflict with any of the material ID numbers for
-# volume elements.  The default ID for a fault is 100.  If you have a
-# fault in your mesh you must:
-# 1.  If you create your own fault ID, make sure it does not conflict
-#     with any of you material ID's.
-# 2.  If you use the default fault ID, make sure that none of your
-#     material ID's are equal to 100.
-
-# The quadrature for a 2D fault is 1D with a linear shape.
 quadrature.cell = pylith.feassemble.FIATLagrange
 quadrature.cell.dimension = 1
 
@@ -206,6 +136,7 @@
 db_initial_tractions.data = [0.0*Pa, -10.0*MPa]
 
 friction = pylith.friction.SlipWeakening
+friction.label = Slip weakening friction
 
 friction.db_properties = spatialdata.spatialdb.UniformDB
 friction.db_properties.label = Slip weakening

Modified: short/3D/PyLith/trunk/tests_auto/2d/tri3/axialdisp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/tri3/axialdisp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/tri3/axialdisp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [axialdisp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATSimplex
 quadrature.cell.shape = triangle

Modified: short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -47,6 +47,7 @@
 [dislocation.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = triangle
 

Modified: short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation2.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation2.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/tri3/dislocation2.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -47,6 +47,7 @@
 [dislocation2.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell.shape = triangle
 

Modified: short/3D/PyLith/trunk/tests_auto/2d/tri3/sheardisp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests_auto/2d/tri3/sheardisp.cfg	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/tests_auto/2d/tri3/sheardisp.cfg	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
 [sheardisp.timedependent.materials.elastic]
 label = Elastic material
 id = 1
+db_properties.label = Elastic properties
 db_properties.iohandler.filename = matprops.spatialdb
 quadrature.cell = pylith.feassemble.FIATSimplex
 quadrature.cell.shape = triangle

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/TestDirichletBC.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestDirichletBC.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestDirichletBC.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -45,6 +45,7 @@
     """
     from spatialdata.spatialdb.SimpleDB import SimpleDB
     db = SimpleDB()
+    db.inventory.label = "simple database"
     db._configure()
 
     from spatialdata.spatialdb.TimeHistory import TimeHistory
@@ -53,6 +54,7 @@
 
     from pylith.bc.DirichletBC import DirichletBC
     bc = DirichletBC()
+    bc.inventory.label = "abc"
     bc.inventory.dbInitial = db
     bc.inventory.dbRate = db
     bc.inventory.dbChange = db

Modified: short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/bc/TestNeumann.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -188,7 +188,6 @@
     """
     from spatialdata.spatialdb.SimpleDB import SimpleDB
     db = SimpleDB()
-    db._configure()
     db.inventory.label = "TestNeumann tri3"
     db.inventory.iohandler.inventory.filename = "data/tri3_tractions.spatialdb"
     db.inventory.iohandler._configure()

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveDyn.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -46,6 +46,7 @@
     Test _configure().
     """
     fault = FaultCohesiveDyn()
+    fault.inventory.faultLabel = "fault group"
     fault._configure()
     return
 
@@ -299,6 +300,7 @@
     
     from pylith.friction.StaticFriction import StaticFriction
     friction = StaticFriction()
+    friction.inventory.label = "Static friction"
     friction.inventory.dbProperties = dbFriction
     friction._configure()
 

Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -46,6 +46,7 @@
     Test _configure().
     """
     fault = FaultCohesiveKin()
+    fault.inventory.faultLabel = "fault group"
     fault._configure()
     return
 
@@ -65,6 +66,7 @@
     Test useFaultMesh().
     """
     fault = FaultCohesiveKin()
+    fault.inventory.faultLabel = "fault group"
     fault._configure()
 
     fault.useFaultMesh(True);
@@ -77,7 +79,8 @@
     """
     Test faultMeshFilename().
     """
-    fault = FaultCohesiveKin()
+    fault = FaultCohesiveKin() 
+    fault.inventory.faultLabel = "fault group"
     fault._configure()
 
     filename = "SanAndreas.inp"

Modified: short/3D/PyLith/trunk/unittests/pytests/materials/TestElasticMaterial.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/materials/TestElasticMaterial.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/materials/TestElasticMaterial.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -49,6 +49,7 @@
     db._configure()
 
     material = self.material
+    material.inventory.label = "Elastic material"
     material.inventory.dbInitialStress = db
     material.inventory.useInitialStress = True
     material._configure()
@@ -69,6 +70,7 @@
     db._configure()
 
     material = self.material
+    material.inventory.label = "Elastic material"
     material.inventory.dbInitialStrain = db
     material.inventory.useInitialStrain = True
     material._configure()

Modified: short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputSolnSubset.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputSolnSubset.py	2011-07-12 23:11:00 UTC (rev 18745)
+++ short/3D/PyLith/trunk/unittests/pytests/meshio/TestOutputSolnSubset.py	2011-07-12 23:26:08 UTC (rev 18746)
@@ -67,6 +67,7 @@
     """
     output = OutputSolnSubset()
     output.inventory.writer._configure()
+    output.inventory.label = "nodeset"
     output._configure()
     return
 



More information about the CIG-COMMITS mailing list