[cig-commits] r20751 - in short/3D/PyLith/branches/v1.7-trunk: doc/userguide doc/userguide/runpylith doc/userguide/tutorials doc/userguide/tutorials/shearwave examples/bar_shearwave/hex8 examples/bar_shearwave/quad4 examples/bar_shearwave/tet4 examples/bar_shearwave/tri3 libsrc/pylith/faults libsrc/pylith/feassemble libsrc/pylith/materials libsrc/pylith/meshio libsrc/pylith/problems libsrc/pylith/topology modulesrc/feassemble modulesrc/problems pylith pylith/problems tests/2d/faultstrip tests/2d/plasticity/cyclic tests/3d/plasticity/dynamic tests_auto/1d unittests/libtests/feassemble unittests/libtests/feassemble/data unittests/pytests/feassemble

brad at geodynamics.org brad at geodynamics.org
Thu Sep 20 14:37:42 PDT 2012


Author: brad
Date: 2012-09-20 14:37:41 -0700 (Thu, 20 Sep 2012)
New Revision: 20751

Added:
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_risetime.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_slip.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_sliptime.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_ratestateageing.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_slipweakening.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_staticfriction.cfg
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTet4.py
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTri3.py
Removed:
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_risetime.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_slip.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_sliptime.spatialdb
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumped.py
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTet4.py
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTri3.py
Modified:
   short/3D/PyLith/branches/v1.7-trunk/doc/userguide/components.lyx
   short/3D/PyLith/branches/v1.7-trunk/doc/userguide/runpylith/runpylith.lyx
   short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/quad4.lyx
   short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/tri3.lyx
   short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/tutorials.lyx
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/hex8/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/Makefile.am
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/README
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tet4/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tri3/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesive.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveLagrange.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticityLgDeform.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/ElasticMaterial.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/Material.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterVTK.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/OutputSolnPoints.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Explicit.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Implicit.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.hh
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicit.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitLgDeform.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTet4.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTri3.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/problems/Formulation.i
   short/3D/PyLith/branches/v1.7-trunk/pylith/Makefile.am
   short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLgDeform.py
   short/3D/PyLith/branches/v1.7-trunk/tests/2d/faultstrip/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/tests/2d/plasticity/cyclic/dynamic.cfg
   short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/pylithapp.cfg
   short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/tet4.cfg
   short/3D/PyLith/branches/v1.7-trunk/tests_auto/1d/Makefile.am
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitApp.py
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeform.py
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityLgDeformExplicitApp.py
   short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicit.py
   short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py
Log:
Removed explicit time stepping with consistent mass matrix. Only allow a lumped Jacobian. Changed ExplicitLumped* to Explicit*.

Modified: short/3D/PyLith/branches/v1.7-trunk/doc/userguide/components.lyx
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/doc/userguide/components.lyx	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/doc/userguide/components.lyx	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,1510 +1,1498 @@
-#LyX 2.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 413
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-
-\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
-\papersize default
-\use_geometry true
-\use_amsmath 1
-\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
-\bottommargin 2in
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 2
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Chapter
-\begin_inset CommandInset label
-LatexCommand label
-name "cha:components"
-
-\end_inset
-
-PyLith and Spatialdata Components
-\end_layout
-
-\begin_layout Standard
-The name of the component is followed by the full path name and description.
- The full path name is used when setting a component to a facility in a
- 
-\family typewriter
-.cfg
-\family default
- file or with command line arguments.
-\end_layout
-
-\begin_layout Section
-Application components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-PyLithApp pylith.apps.PyLithApp
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-PyLith application.
-\end_layout
-
-\begin_layout Subsection
-Problem Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeDependent pylith.problems.TimeDependent
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Time-dependent problem.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-GreensFns pylith.problems.GreensFns
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Static Green's function problem with slip impulses.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Implicit pylith.problems.Implicit
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Implicit time stepping for static and quasi-static simulations with infinitesima
-l strains.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ImplicitLgDeform pylith.problems.ImplicitLgDeform
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Implicit time stepping for static and quasi-static simulations including
- the effects of rigid body motion and small strains.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Explicit pylith.problems.Explicit
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Explicit time stepping for dynamic simulations with infinitesimal strains.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ExplicitLgDeform pylith.problems.ExplicitLgDeform
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Explicit time stepping for dynamic simulations including the effects of
- rigid body motion and small strains.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ExplicitLumped pylith.problems.ExplicitLumped
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Explicit time stepping for dynamic simulations with a lumped system Jacobian
- matrix.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ExplicitLumpedTri3 pylith.problems.ExplicitLumpedTri3
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Optimized elasticity formulation for linear triangular cells and one quadrature
- point for explicit time stepping in dynamic simulations.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ExplicitLumpedTet4 pylith.problems.ExplicitLumpedTet4
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Optimized elasticity formulation for linear tetrahedral cells and one quadrature
- point for explicit time stepping in dynamic simulations.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SolverLinear pylith.problems.SolverLinear
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linear PETSc solver (KSP).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SolverNonlinear pylith.problems.SolverNonlinear
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Nonlinear PETSc solver (SNES).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SolverLumped pylith.problems.SolverLumped
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Built-in simple, optimized solver for solving systems with a lumped Jacobian.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeStepUniform pylith.problems.TimeStepUniform
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Uniform time stepping.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeStepAdapt pylith.problems.TimeStepAdapt
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Adaptive time stepping (time step selected based on estimated stable time
- step).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeStepUser pylith.problems.TimeStepUser
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-User defined time stepping (variable time step set by user).
-\end_layout
-
-\begin_layout Subsection
-Utility Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-NullComponent pylith.utils.NullComponent
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Null component used to set a facility to an empty value.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-EventLogger pylith.utils.EventLogger
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-PETSc event logger.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MemoryLogger pylith.perf.MemoryLogger
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Memory model logger for reporting memory use by Sieve.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-VTKDataReader pylith.utils.VTKDataReader
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Data reader for VTK files, requires TVTK Enthought package available from
- 
-\family typewriter
-
-\begin_inset Newline newline
-\end_inset
-
-https://github.com/enthought/mayavi.
-\end_layout
-
-\begin_layout Subsection
-Topology Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Distributor pylith.topology.Distributor
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Distributor of mesh among processors in parallel simulations.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-JacobianViewer pylith.topology.JacobianViewer
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Viewer for writing Jacobian sparse matrix to file.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshGenerator pylith.topology.MeshGenerator
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Mesh generator/importer.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshImporter pylith.topology.MeshImporter
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Mesh importer/reader.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshRefiner pylith.topology.MeshRefiner
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Default (null) mesh refinement object that does not refine the mesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-RefineUniform pylith.topology.RefineUniform
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Uniform global mesh refinement.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ReverseCuthillMcKee pylith.topology.ReverseCuthillMcKee
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Object used to manage reordering cells and vertices using the reverse Cuthill-Mc
-Kee algorithm.
-\end_layout
-
-\begin_layout Subsection
-Material Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ElasticStrain1D pylith.materials.ElasticStrain1D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linearly elastic 1D bulk constitutive model with 1D strain (
-\begin_inset Formula $\epsilon_{yy}=\epsilon_{zz}=0$
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ElasticStress1D pylith.materials.ElasticStress1D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linearly elastic 1D bulk constitutive model with 1D stress (
-\begin_inset Formula $\sigma_{yy}=\sigma_{zz}=0$
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ElasticPlaneStrain pylith.materials.ElasticPlaneStrain
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linearly elastic 2D bulk constitutive model with plane strain (
-\begin_inset Formula $\epsilon_{zz}=0$
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ElasticPlaneStress pylith.materials.ElasticPlaneStress
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linearly elastic 2D bulk constitutive model with plane stress (
-\begin_inset Formula $\sigma_{zz}=0$
-\end_inset
-
-).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ElasticIsotropic3D pylith.materials.ElasticIsotropic3D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linearly elastic 3D bulk constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MaxwellIsotropic3D pylith.materials.MaxwellIsotropic3D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linear Maxwell viscoelastic bulk constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MaxwellPlaneStrain pylith.materials.MaxwellPlaneStrain
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linear Maxwell viscoelastic bulk constitutive model for plane strain problems.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-GenMaxwellIsotropic3D pylith.materials.GenMaxwellIsotropic3D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Generalized Maxwell viscoelastic bulk constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-GenMaxwellPlaneStrain pylith.materials.GenMaxwellPlaneStrain
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Generalized Maxwell viscoelastic bulk constitutive model for plane strain
- problems.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-PowerLaw3D pylith.materials.PowerLaw3D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Power-law viscoelastic bulk constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-PowerLawPlaneStrain pylith.materials.PowerLawPlaneStrain
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Power-law viscoelastic bulk constitutive model for plane strain problems.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DruckerPrage3D pylith.materials.DruckerPrager3D
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Drucker-Prager elastoplastic bulk constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DruckerPragePlaneStrain pylith.materials.DruckerPragerPlaneStrain
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Drucker-Prager elastoplastic bulk constitutive model for plane strain problems.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Homogeneous pylith.materials.Homogeneous
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Container with a single bulk material.
-\end_layout
-
-\begin_layout Subsection
-Boundary Condition Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-AbsorbingDampers pylith.bc.AbsorbingDampers
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Absorbing boundary condition using simple dashpots.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DirichletBC pylith.bc.DirichletBC
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Dirichlet (prescribed displacements) boundary condition for a set of points.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DirichletBoundary pylith.bc.DirichletBoundary
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Dirichlet (prescribed displacements) boundary condition for a set of points
- associated with a boundary surface.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Neumann pylith.bc.Neumann
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Neumann (traction) boundary conditions applied to a boundary surface.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-PointForce pylith.bc.PointForce
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Point forces applied to a set of vertices.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ZeroDispDB pylith.bc.ZeroDispDB
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Specialized UniformDB with uniform zero displacements at all degrees of
- freedom.
-\end_layout
-
-\begin_layout Subsection
-Fault Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-FaultCohesiveKin pylith.faults.FaultCohesiveKin
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Fault surface with kinematic (prescribed) slip implemented using cohesive
- elements.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-FaultCohesiveDyn pylith.faults.FaultCohesiveDyn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Fault surface with dynamic (friction) slip implemented using cohesive elements.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-FaultCohesiveImpulses pylith.faults.FaultCohesiveImpulses
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Fault surface with Green's functions slip impulses implemented using cohesive
- elements.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-EqKinSrc pylith.faults.EqKinSrc
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Kinematic (prescribed) slip earthquake rupture.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SingleRupture pylith.faults.SingleRupture
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Container with one kinematic earthquake rupture.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-StepSlipFn pylith.faults.StepSlipFn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Step function slip-time function.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-ConstRateSlipFn pylith.faults.ConstRateSlipFn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Constant slip rate slip-time function.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-BruneSlipFn pylith.faults.BruneSlipFn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Slip-time function where slip rate is equal to Brune's far-field slip function.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-LiuCosSlipFn pylith.faults.LiuCosSlipFn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Slip-time function composed of three sine/cosine functions.
- Similar to Brune's far-field time function but with more abrupt termination
- of slip.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeHistorySlipFn pylith.faults.TimeHistorySlipFn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Slip-time function with a user-defined slip time function.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TractPerturbation pylith.faults.TractPerturbation
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Prescribed traction perturbation applied to fault with constitituve model
- in additional to tractions from deformation (generally used to nucleate
- a rupture).
-\end_layout
-
-\begin_layout Subsection
-Friction Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-StaticFriction pylith.friction.StaticFriction
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Static friction fault constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SlipWeakening pylith.friction.SlipWeakening
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linear slip-weakening friction fault constitutive model.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-RateStateAgeing pylith.friction.RateStateAgeing
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Dieterich-Ruina rate and state friction with ageing law state variable evolution.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeWeakening pylith.friction.TimeWeakening
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Linear time-weakening friction fault constitutive model.
-\end_layout
-
-\begin_layout Subsection
-Discretization Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-FIATLagrange pylith.feassemble.FIATLagrange
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Finite-element basis functions and quadrature rules for a Lagrange reference
- finite-element cell (point, line, quadrilateral, or hexahedron) using FIAT.
- The basis functions are constructed from the tensor produce of 1D Lagrange
- reference cells.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-FIATSimplex pylith.feassemble.FIATSimplex
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Finite-element basis functions and quadrature rules for a simplex finite-element
- cell (point, line, triangle, or tetrahedron) using FIAT.
-\end_layout
-
-\begin_layout Subsection
-Output Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshIOAscii pylith.meshio.MeshIOAscii
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Reader for simple mesh ASCII files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshIOCubit pylith.meshio.MeshIOCubit
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Reader for CUBIT Exodus files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-MeshIOLagrit pylith.meshio.MeshIOLagrit
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Reader for LaGriT GMV/Pset files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputManagerMesh pylith.meshio.OutputManagerMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for mesh information and data.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputManagerSubMesh pylith.meshio.OutputManagerSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for submesh information and data.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputSoln pylith.meshio.OutputSoln
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for solution data.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputSolnSubset pylith.meshio.OutputSolnSubset
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for solution data over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputSolnPoints pylith.meshio.OutputSolnPoints
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for solution data at arbitrary points in the domain.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputDirichlet pylith.meshio.OutputDirichlet
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for Dirichlet boundary condition information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputNeumann pylith.meshio.OutputNeumann
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for Neumann boundary condition information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputFaultKin pylith.meshio.OutputFaultKin
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for fault with kinematic (prescribed) earthquake ruptures.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputFaultDyn pylith.meshio.OutputFaultDyn
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for fault with dynamic (friction) earthquake ruptures.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputFaultImpulses pylith.meshio.OutputFaultImpulses
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for fault with static slip impulses.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-OutputMatElastic pylith.meshio.OutputMatElastic
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Output manager for bulk constitutive models for elasticity.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SingleOutput pylith.meshio.SingleOutput
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Container with single output manger.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-PointsList pylith.meshio.PointsList
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Manager for text file container points for 
-\family typewriter
-OutputSolnPoints
-\family default
-.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterVTKMesh pylith.meshio.DataWriterVTKMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to VTK files with mesh information.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterVTKSubMesh pylith.meshio.DataWriterVTKSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to VTK files with mesh information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterVTKSubSubMesh pylith.meshio.DataWriterVTKSubSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to VTK files with submesh information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5Mesh pylith.meshio.DataWriterHDF5Mesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with mesh information.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5SubMesh pylith.meshio.DataWriterHDF5SubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with mesh information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5ExtSubSubMesh pylith.meshio.DataWriterHDF5ExtSubSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with submesh information over a submesh
- with datasets written to external raw binary files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5ExtMesh pylith.meshio.DataWriterHDF5ExtMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with mesh information with datasets written
- to external raw binary files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5ExtSubMesh pylith.meshio.DataWriterHDF5ExtSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with mesh information over a submesh with
- datasets written to external raw binary files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-DataWriterHDF5SubSubMesh pylith.meshio.DataWriterHDF5SubSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Writer for output to HDF5 files with submesh information over a submesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CellFilterAvgMesh pylith.meshio.CellFilterAvgMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Filter that averages information over quadrature points of mesh cells.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CellFilterAvgSubMesh pylith.meshio.CellFilterAvgSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Filter that averages information over quadrature points of submesh cells.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-VertexFilterVecNormMesh pylith.meshio.VertexFilterVecNormMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Filter that computes magnitude of vectors for vertex field over mesh.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-VertexFilterVecNormSubMesh pylith.meshio.VertexFilterVecNormSubMesh
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Filter that computes magnitude of vectors for vertex field over submesh.
-\end_layout
-
-\begin_layout Section
-Spatialdata Components
-\end_layout
-
-\begin_layout Subsection
-Coordinate System Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CSCart spatialdata.geocoords.CSCart
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Cartesian coordinate system (0D, 1D, 2D, or 3D).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CSGeo spatialdata.geocoords.CSGeo
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Geographic coordinate system.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CSGeoProj spatialdata.geocoords.CSGeoProj
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Coordinate system associated with a geographic projection.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CSGeoLocalCart spatialdata.geocoords.CSGeoLocalCart
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Local, georeferenced Cartesian coordinate system.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Projector spatialdata.geocoords.Projector
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Geographic projection.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Converter spatialdata.geocoords.Converter
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Converter for transforming coordinates of points from one coordinate system
- to another.
-\end_layout
-
-\begin_layout Subsection
-Spatial database Components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-UniformDB spatialdata.spatialdb.UniformDB
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Spatial database with uniform values.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SimpleDB spatialdata.spatialdb.SimpleDB
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Simple spatial database that defines fields using a point cloud.
- Values are determined using a nearest neighbor search or linear interpolation
- in 0D, 1D, 2D, or 3D.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SimpleIOAscii spatialdata.spatialdb.SimpleIOAscii
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Reader/writer for simple spatial database files.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-SCECCVMH spatialdata.spatialdb.SCECCVMH
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Spatial database interface to the SCEC CVM-H (seismic velocity model).
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-CompositeDB spatialdata.spatialdb.CompositeDB
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Spatial database composed from multiple other spatial databases.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-TimeHistory spatialdata.spatialdb.TimeHistory
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Time history for temporal variations of a parameter.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-GravityField spatialdata.spatialdb.GravityField
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Spatial database providing vector for body forces associated with gravity.
-\end_layout
-
-\begin_layout Subsection
-Nondimensionalization components
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-Nondimensional spatialdata.units.Nondimensional
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Nondimensionalization of length, time, and pressure scales.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-NondimensionalElasticDynamic spatialdata.units.NondimensionalElasticDynamic
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Nondimensionalization of scales for dynamic problems.
-\end_layout
-
-\begin_layout Description
-
-\family typewriter
-NondimensionalElasticQuasistatic spatialdata.units.NondimensionalElasticQuasistati
-c
-\family default
-
-\begin_inset Newline newline
-\end_inset
-
-Nondimensionalization of scales for quasi-static problems.
-\end_layout
-
-\end_body
-\end_document
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass book
+\begin_preamble
+
+\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
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\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
+\bottommargin 2in
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 2
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Chapter
+\begin_inset CommandInset label
+LatexCommand label
+name "cha:components"
+
+\end_inset
+
+PyLith and Spatialdata Components
+\end_layout
+
+\begin_layout Standard
+The name of the component is followed by the full path name and description.
+ The full path name is used when setting a component to a facility in a
+ 
+\family typewriter
+.cfg
+\family default
+ file or with command line arguments.
+\end_layout
+
+\begin_layout Section
+Application components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PyLithApp pylith.apps.PyLithApp
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+PyLith application.
+\end_layout
+
+\begin_layout Subsection
+Problem Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeDependent pylith.problems.TimeDependent
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Time-dependent problem.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+GreensFns pylith.problems.GreensFns
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Static Green's function problem with slip impulses.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Implicit pylith.problems.Implicit
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Implicit time stepping for static and quasi-static simulations with infinitesima
+l strains.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ImplicitLgDeform pylith.problems.ImplicitLgDeform
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Implicit time stepping for static and quasi-static simulations including
+ the effects of rigid body motion and small strains.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Explicit pylith.problems.Explicit
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Explicit time stepping for dynamic simulations with a lumped system Jacobian
+ matrix.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ExplicitLgDeform pylith.problems.ExplicitLgDeform
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Explicit time stepping for dynamic simulations including the effects of
+ rigid body motion and small strains with a lumped system Jacobian matrix.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ExplicitTri3 pylith.problems.ExplicitTri3
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Optimized elasticity formulation for linear triangular cells and one quadrature
+ point for explicit time stepping in dynamic simulations.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ExplicitTet4 pylith.problems.ExplicitTet4
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Optimized elasticity formulation for linear tetrahedral cells and one quadrature
+ point for explicit time stepping in dynamic simulations.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SolverLinear pylith.problems.SolverLinear
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linear PETSc solver (KSP).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SolverNonlinear pylith.problems.SolverNonlinear
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Nonlinear PETSc solver (SNES).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SolverLumped pylith.problems.SolverLumped
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Built-in simple, optimized solver for solving systems with a lumped Jacobian.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeStepUniform pylith.problems.TimeStepUniform
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Uniform time stepping.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeStepAdapt pylith.problems.TimeStepAdapt
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Adaptive time stepping (time step selected based on estimated stable time
+ step).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeStepUser pylith.problems.TimeStepUser
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+User defined time stepping (variable time step set by user).
+\end_layout
+
+\begin_layout Subsection
+Utility Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+NullComponent pylith.utils.NullComponent
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Null component used to set a facility to an empty value.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+EventLogger pylith.utils.EventLogger
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+PETSc event logger.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MemoryLogger pylith.perf.MemoryLogger
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Memory model logger for reporting memory use by Sieve.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+VTKDataReader pylith.utils.VTKDataReader
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Data reader for VTK files, requires TVTK Enthought package available from
+ 
+\family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
+https://github.com/enthought/mayavi.
+\end_layout
+
+\begin_layout Subsection
+Topology Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Distributor pylith.topology.Distributor
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Distributor of mesh among processors in parallel simulations.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+JacobianViewer pylith.topology.JacobianViewer
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Viewer for writing Jacobian sparse matrix to file.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshGenerator pylith.topology.MeshGenerator
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Mesh generator/importer.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshImporter pylith.topology.MeshImporter
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Mesh importer/reader.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshRefiner pylith.topology.MeshRefiner
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Default (null) mesh refinement object that does not refine the mesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+RefineUniform pylith.topology.RefineUniform
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Uniform global mesh refinement.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ReverseCuthillMcKee pylith.topology.ReverseCuthillMcKee
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Object used to manage reordering cells and vertices using the reverse Cuthill-Mc
+Kee algorithm.
+\end_layout
+
+\begin_layout Subsection
+Material Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ElasticStrain1D pylith.materials.ElasticStrain1D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linearly elastic 1D bulk constitutive model with 1D strain (
+\begin_inset Formula $\epsilon_{yy}=\epsilon_{zz}=0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ElasticStress1D pylith.materials.ElasticStress1D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linearly elastic 1D bulk constitutive model with 1D stress (
+\begin_inset Formula $\sigma_{yy}=\sigma_{zz}=0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ElasticPlaneStrain pylith.materials.ElasticPlaneStrain
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linearly elastic 2D bulk constitutive model with plane strain (
+\begin_inset Formula $\epsilon_{zz}=0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ElasticPlaneStress pylith.materials.ElasticPlaneStress
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linearly elastic 2D bulk constitutive model with plane stress (
+\begin_inset Formula $\sigma_{zz}=0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ElasticIsotropic3D pylith.materials.ElasticIsotropic3D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linearly elastic 3D bulk constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MaxwellIsotropic3D pylith.materials.MaxwellIsotropic3D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linear Maxwell viscoelastic bulk constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MaxwellPlaneStrain pylith.materials.MaxwellPlaneStrain
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linear Maxwell viscoelastic bulk constitutive model for plane strain problems.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+GenMaxwellIsotropic3D pylith.materials.GenMaxwellIsotropic3D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Generalized Maxwell viscoelastic bulk constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+GenMaxwellPlaneStrain pylith.materials.GenMaxwellPlaneStrain
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Generalized Maxwell viscoelastic bulk constitutive model for plane strain
+ problems.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PowerLaw3D pylith.materials.PowerLaw3D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Power-law viscoelastic bulk constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PowerLawPlaneStrain pylith.materials.PowerLawPlaneStrain
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Power-law viscoelastic bulk constitutive model for plane strain problems.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DruckerPrage3D pylith.materials.DruckerPrager3D
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Drucker-Prager elastoplastic bulk constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DruckerPragePlaneStrain pylith.materials.DruckerPragerPlaneStrain
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Drucker-Prager elastoplastic bulk constitutive model for plane strain problems.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Homogeneous pylith.materials.Homogeneous
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Container with a single bulk material.
+\end_layout
+
+\begin_layout Subsection
+Boundary Condition Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+AbsorbingDampers pylith.bc.AbsorbingDampers
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Absorbing boundary condition using simple dashpots.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DirichletBC pylith.bc.DirichletBC
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Dirichlet (prescribed displacements) boundary condition for a set of points.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DirichletBoundary pylith.bc.DirichletBoundary
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Dirichlet (prescribed displacements) boundary condition for a set of points
+ associated with a boundary surface.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Neumann pylith.bc.Neumann
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Neumann (traction) boundary conditions applied to a boundary surface.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PointForce pylith.bc.PointForce
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Point forces applied to a set of vertices.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ZeroDispDB pylith.bc.ZeroDispDB
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Specialized UniformDB with uniform zero displacements at all degrees of
+ freedom.
+\end_layout
+
+\begin_layout Subsection
+Fault Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+FaultCohesiveKin pylith.faults.FaultCohesiveKin
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Fault surface with kinematic (prescribed) slip implemented using cohesive
+ elements.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+FaultCohesiveDyn pylith.faults.FaultCohesiveDyn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Fault surface with dynamic (friction) slip implemented using cohesive elements.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+FaultCohesiveImpulses pylith.faults.FaultCohesiveImpulses
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Fault surface with Green's functions slip impulses implemented using cohesive
+ elements.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+EqKinSrc pylith.faults.EqKinSrc
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Kinematic (prescribed) slip earthquake rupture.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SingleRupture pylith.faults.SingleRupture
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Container with one kinematic earthquake rupture.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+StepSlipFn pylith.faults.StepSlipFn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Step function slip-time function.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+ConstRateSlipFn pylith.faults.ConstRateSlipFn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Constant slip rate slip-time function.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+BruneSlipFn pylith.faults.BruneSlipFn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Slip-time function where slip rate is equal to Brune's far-field slip function.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+LiuCosSlipFn pylith.faults.LiuCosSlipFn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Slip-time function composed of three sine/cosine functions.
+ Similar to Brune's far-field time function but with more abrupt termination
+ of slip.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeHistorySlipFn pylith.faults.TimeHistorySlipFn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Slip-time function with a user-defined slip time function.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TractPerturbation pylith.faults.TractPerturbation
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Prescribed traction perturbation applied to fault with constitituve model
+ in additional to tractions from deformation (generally used to nucleate
+ a rupture).
+\end_layout
+
+\begin_layout Subsection
+Friction Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+StaticFriction pylith.friction.StaticFriction
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Static friction fault constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SlipWeakening pylith.friction.SlipWeakening
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linear slip-weakening friction fault constitutive model.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+RateStateAgeing pylith.friction.RateStateAgeing
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Dieterich-Ruina rate and state friction with ageing law state variable evolution.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeWeakening pylith.friction.TimeWeakening
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Linear time-weakening friction fault constitutive model.
+\end_layout
+
+\begin_layout Subsection
+Discretization Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+FIATLagrange pylith.feassemble.FIATLagrange
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Finite-element basis functions and quadrature rules for a Lagrange reference
+ finite-element cell (point, line, quadrilateral, or hexahedron) using FIAT.
+ The basis functions are constructed from the tensor produce of 1D Lagrange
+ reference cells.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+FIATSimplex pylith.feassemble.FIATSimplex
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Finite-element basis functions and quadrature rules for a simplex finite-element
+ cell (point, line, triangle, or tetrahedron) using FIAT.
+\end_layout
+
+\begin_layout Subsection
+Output Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshIOAscii pylith.meshio.MeshIOAscii
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Reader for simple mesh ASCII files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshIOCubit pylith.meshio.MeshIOCubit
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Reader for CUBIT Exodus files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+MeshIOLagrit pylith.meshio.MeshIOLagrit
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Reader for LaGriT GMV/Pset files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputManagerMesh pylith.meshio.OutputManagerMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for mesh information and data.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputManagerSubMesh pylith.meshio.OutputManagerSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for submesh information and data.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputSoln pylith.meshio.OutputSoln
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for solution data.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputSolnSubset pylith.meshio.OutputSolnSubset
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for solution data over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputSolnPoints pylith.meshio.OutputSolnPoints
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for solution data at arbitrary points in the domain.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputDirichlet pylith.meshio.OutputDirichlet
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for Dirichlet boundary condition information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputNeumann pylith.meshio.OutputNeumann
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for Neumann boundary condition information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputFaultKin pylith.meshio.OutputFaultKin
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for fault with kinematic (prescribed) earthquake ruptures.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputFaultDyn pylith.meshio.OutputFaultDyn
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for fault with dynamic (friction) earthquake ruptures.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputFaultImpulses pylith.meshio.OutputFaultImpulses
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for fault with static slip impulses.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+OutputMatElastic pylith.meshio.OutputMatElastic
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Output manager for bulk constitutive models for elasticity.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SingleOutput pylith.meshio.SingleOutput
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Container with single output manger.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+PointsList pylith.meshio.PointsList
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Manager for text file container points for 
+\family typewriter
+OutputSolnPoints
+\family default
+.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterVTKMesh pylith.meshio.DataWriterVTKMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to VTK files with mesh information.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterVTKSubMesh pylith.meshio.DataWriterVTKSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to VTK files with mesh information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterVTKSubSubMesh pylith.meshio.DataWriterVTKSubSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to VTK files with submesh information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5Mesh pylith.meshio.DataWriterHDF5Mesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with mesh information.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5SubMesh pylith.meshio.DataWriterHDF5SubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with mesh information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5ExtSubSubMesh pylith.meshio.DataWriterHDF5ExtSubSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with submesh information over a submesh
+ with datasets written to external raw binary files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5ExtMesh pylith.meshio.DataWriterHDF5ExtMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with mesh information with datasets written
+ to external raw binary files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5ExtSubMesh pylith.meshio.DataWriterHDF5ExtSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with mesh information over a submesh with
+ datasets written to external raw binary files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+DataWriterHDF5SubSubMesh pylith.meshio.DataWriterHDF5SubSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Writer for output to HDF5 files with submesh information over a submesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CellFilterAvgMesh pylith.meshio.CellFilterAvgMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Filter that averages information over quadrature points of mesh cells.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CellFilterAvgSubMesh pylith.meshio.CellFilterAvgSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Filter that averages information over quadrature points of submesh cells.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+VertexFilterVecNormMesh pylith.meshio.VertexFilterVecNormMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Filter that computes magnitude of vectors for vertex field over mesh.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+VertexFilterVecNormSubMesh pylith.meshio.VertexFilterVecNormSubMesh
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Filter that computes magnitude of vectors for vertex field over submesh.
+\end_layout
+
+\begin_layout Section
+Spatialdata Components
+\end_layout
+
+\begin_layout Subsection
+Coordinate System Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CSCart spatialdata.geocoords.CSCart
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Cartesian coordinate system (0D, 1D, 2D, or 3D).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CSGeo spatialdata.geocoords.CSGeo
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Geographic coordinate system.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CSGeoProj spatialdata.geocoords.CSGeoProj
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Coordinate system associated with a geographic projection.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CSGeoLocalCart spatialdata.geocoords.CSGeoLocalCart
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Local, georeferenced Cartesian coordinate system.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Projector spatialdata.geocoords.Projector
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Geographic projection.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Converter spatialdata.geocoords.Converter
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Converter for transforming coordinates of points from one coordinate system
+ to another.
+\end_layout
+
+\begin_layout Subsection
+Spatial database Components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+UniformDB spatialdata.spatialdb.UniformDB
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Spatial database with uniform values.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SimpleDB spatialdata.spatialdb.SimpleDB
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Simple spatial database that defines fields using a point cloud.
+ Values are determined using a nearest neighbor search or linear interpolation
+ in 0D, 1D, 2D, or 3D.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SimpleIOAscii spatialdata.spatialdb.SimpleIOAscii
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Reader/writer for simple spatial database files.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+SCECCVMH spatialdata.spatialdb.SCECCVMH
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Spatial database interface to the SCEC CVM-H (seismic velocity model).
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+CompositeDB spatialdata.spatialdb.CompositeDB
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Spatial database composed from multiple other spatial databases.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+TimeHistory spatialdata.spatialdb.TimeHistory
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Time history for temporal variations of a parameter.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+GravityField spatialdata.spatialdb.GravityField
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Spatial database providing vector for body forces associated with gravity.
+\end_layout
+
+\begin_layout Subsection
+Nondimensionalization components
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+Nondimensional spatialdata.units.Nondimensional
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Nondimensionalization of length, time, and pressure scales.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+NondimensionalElasticDynamic spatialdata.units.NondimensionalElasticDynamic
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Nondimensionalization of scales for dynamic problems.
+\end_layout
+
+\begin_layout Description
+
+\family typewriter
+NondimensionalElasticQuasistatic spatialdata.units.NondimensionalElasticQuasistati
+c
+\family default
+
+\begin_inset Newline newline
+\end_inset
+
+Nondimensionalization of scales for quasi-static problems.
+\end_layout
+
+\end_body
+\end_document

Modified: short/3D/PyLith/branches/v1.7-trunk/doc/userguide/runpylith/runpylith.lyx
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/doc/userguide/runpylith/runpylith.lyx	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/doc/userguide/runpylith/runpylith.lyx	2012-09-20 21:37:41 UTC (rev 20751)
@@ -3206,38 +3206,31 @@
 
 \begin_layout Description
 Explicit Explicit time stepping for dynamic problems with infinitesimal
- strains.
- This formulation uses consistent mass and damping matrices for the system
- Jacobian matrix.
+ strains and lumped system Jacobian.
+ The cell matrices are lumped before assembly, permitting use of a vector
+ for the diagonal system Jacobian matrix.
+ The built-in lumped solver is selected automatically.
 \end_layout
 
 \begin_layout Description
 ExplicitLgDeform Explicit time stepping for dynamic problems including the
  effects of rigid body motion and small strains.
- This formulation requires the use of the nonlinear solver, which is selected
- automatically.
-\end_layout
-
-\begin_layout Description
-ExplicitLumped Explicit time stepping for dynamic problems with infinitesimal
- strains and lumped system Jacobian.
  The cell matrices are lumped before assembly, permitting use of a vector
  for the diagonal system Jacobian matrix.
  The built-in lumped solver is selected automatically.
 \end_layout
 
 \begin_layout Description
-ExplicitLumpedTri3 Optimized elasticity formulation for linear triangular
- cells with one point quadrature for dynamic problems with infinitesimal
- strains and lumped system Jacobian.
+ExplicitTri3 Optimized elasticity formulation for linear triangular cells
+ with one point quadrature for dynamic problems with infinitesimal strains
+ and lumped system Jacobian.
  The built-in lumped solver is selected automatically.
 \end_layout
 
 \begin_layout Description
-ExplicitLumpedTet4 Optimized elasticity formulation for linear tetrahedral
- cells with one point quadrature for dynamic problems with infinitesimal
- strains and lumped system Jacobian.The built-in lumped solver is selected
- automatically.
+ExplicitTet4 Optimized elasticity formulation for linear tetrahedral cells
+ with one point quadrature for dynamic problems with infinitesimal strains
+ and lumped system Jacobian.The built-in lumped solver is selected automatically.
 \end_layout
 
 \begin_layout Standard

Modified: short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/quad4.lyx
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/quad4.lyx	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/quad4.lyx	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,704 +1,704 @@
-#LyX 2.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 413
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-
-\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
-\papersize default
-\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
-\bottommargin 1in
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Section
-\begin_inset CommandInset label
-LatexCommand label
-name "sec:tutorial:shearwave:quad4"
-
-\end_inset
-
-3D Bar Discretized with Quadrilaterals
-\end_layout
-
-\begin_layout Standard
-PyLith features discussed in this tutorial:
-\end_layout
-
-\begin_layout Itemize
-Dynamic solution
-\end_layout
-
-\begin_layout Itemize
-CUBIT mesh format
-\end_layout
-
-\begin_layout Itemize
-Absorbing dampers boundary conditions
-\end_layout
-
-\begin_layout Itemize
-Kinematic fault interface conditions
-\end_layout
-
-\begin_layout Itemize
-Dynamic fault interface conditions
-\end_layout
-
-\begin_layout Itemize
-Plane strain linearly elastic material
-\end_layout
-
-\begin_layout Itemize
-VTK output
-\end_layout
-
-\begin_layout Itemize
-Linear quadrilateral cells
-\end_layout
-
-\begin_layout Itemize
-SimpleDB spatial database
-\end_layout
-
-\begin_layout Itemize
-ZeroDispDB spatial database
-\end_layout
-
-\begin_layout Itemize
-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
-
-\begin_layout Standard
-The mesh is a simple rectangular prism 8 km by 400 m by 400 m (Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:quad4:mesh"
-
-\end_inset
-
-).
- We provide documented CUBIT journal files in 
-\family typewriter
-examples/bar_shearwave/quad4.
-
-\family default
- We first create the geometry, mesh the domain using quadrilateral cells,
- and then create blocks and nodesets associated with the materials and boundary
- conditions.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/quad4mesh.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Mesh composed of hexahedral cells generated by CUBIT used for the example
- problem.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:quad4:mesh"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Kinematic Fault
-\end_layout
-
-\begin_layout Standard
-The simulation parameters match those in the tri3, tet4, and hex8 examples.
- Using four-point quadrature permits use of a time step of 1/20 s, which
- is slightly larger than the time step of 1/30 s used in the tri3 and tet4
- simulations.
- In contrast to the tri3, tet4, and hex8 shear wave examples which only
- contained a single simulation in a directory, in this example we consider
- several different simulations.
- Consequently, we separate the parameters into multiple 
-\family typewriter
-.cfg
-\family default
- files.
- The common parameters are placed in 
-\family typewriter
-pylithapp.cfg
-\family default
- with the parameters specific to the kinematic fault example in 
-\family typewriter
-kinematic.cfg
-\family default
-.
- To run the problem, simply run PyLith via:
-\end_layout
-
-\begin_layout LyX-Code
-pylith kinematic.cfg
-\end_layout
-
-\begin_layout Standard
-The VTK files will be written to the 
-\family typewriter
-output
-\family default
- directory with the prefix 
-\family typewriter
-kinematic
-\family default
-.
- The output includes the displacement field over the entire domain at every
- other time step (0.10 s), the slip and traction vectors on the fault surface
- in along-strike and normal directions at every other time step (0.10 s),
- and the strain and stress tensors for each cell at every 20th time step
- (1.0 s).
- If the problem ran correctly, you should be able to generate a figure such
- as Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:quad4:kinematic"
-
-\end_inset
-
-, which was generated using ParaView.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/quad4kinematic30.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Displacement field in the bar at 3.0 s.
- Deformation has been exaggerated by a factor of 800.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:quad4:kinematic"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Dynamic Fault
-\end_layout
-
-\begin_layout Standard
-In this set of examples we replace the kinematic fault interface with the
- dynamic fault interface, resulting in fault slip controlled by a fault-constitu
-tive model.
- See Section 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "sec:fault:constitutive:models"
-
-\end_inset
-
- for detailed information about the fault constitutive models available
- in PyLith.
- Because this is a dynamic simulation we want the generated shear wave to
- continue to be absorbed at the ends of the bar, so we drive the fault by
- imposing initial tractions directly on the fault surface rather than through
- deformation within the bar.
- We employ a UniformDB object to specify 6.1 MPa of right-lateral shear and
- 10.0 MPa of normal compression for the initial fault tractions.
- The parameters common to the dynamic fault simulations are in 
-\family typewriter
-dynamic.cfg
-\family default
-.
- We use the explicit time-stepping with a lumped Jacobian matrix.
- We also request that the fault output include slip, slip rate, and traction
- fields:
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.interfaces.fault.output]
-\end_layout
-
-\begin_layout LyX-Code
-vertex_data_fields = [slip,slip_rate,traction]
-\end_layout
-
-\begin_layout Subsubsection
-Dynamic Fault with Static Friction
-\end_layout
-
-\begin_layout Standard
-The parameters specific to this example are related to the use of the static
- friction fault constitutive model.
- We set the fault constitutive model via
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.interfaces.fault]
-\end_layout
-
-\begin_layout LyX-Code
-friction = pylith.friction.StaticFriction
-\end_layout
-
-\begin_layout Standard
-and use a UniformDB to set the static friction parameters.
- We use a coefficient of friction of 0.6 and no cohesion (0 MPa).
- The parameters specific to this example are in 
-\family typewriter
-dynamic_staticfriction.cfg
-\family default
-, so we run the problem via:
-\end_layout
-
-\begin_layout LyX-Code
-pylith dynamic.cfg dynamic_staticfriction.cfg
-\end_layout
-
-\begin_layout Standard
-The VTK files will be written to the 
-\family typewriter
-output
-\family default
- directory with the prefix 
-\family typewriter
-staticfriction
-\family default
-.
- The output includes the displacement and velocity fields over the entire
- domain at every other time step (0.10 s), the slip, slip rate, and traction
- vectors on the fault surface in along-strike and normal directions at every
- other time step (0.10 s), and the strain and stress tensors for each cell
- at every 20th time step (1.0 s).
- If the problem ran correctly, you should be able to generate a figure such
- as Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:quad4:staticfriction"
-
-\end_inset
-
-, which was generated using ParaView.
- The steady-state solution is a constant slip rate of 0.08 m/s, a shear traction
- of 6.0 MPa on the fault surface, and a uniform shear strain of 2e-5 in the
- bar with uniform, constant velocities in the y-direction of +0.04 m/s and
- -0.04 m/s on the -x and +x sides of the fault, respectively.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/quad4staticfriction30.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Velocity field in the bar at 3.0 s for the static friction fault constitutive
- model.
- Deformation has been exaggerated by a factor of 800.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:quad4:staticfriction"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-Dynamic Fault with Slip-Weakening Friction
-\end_layout
-
-\begin_layout Standard
-The parameters specific to this example are related to the use of the slip-weake
-ning friction fault constitutive model (see Section 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "sec:fault:constitutive:models"
-
-\end_inset
-
-).
- We set the fault constitutive model via
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.interfaces.fault]
-\end_layout
-
-\begin_layout LyX-Code
-friction = pylith.friction.SlipWeakening
-\end_layout
-
-\begin_layout Standard
-and use a UniformDB to set the slip-weakening friction parameters.
- We use a static coefficient of friction of 0.6, a dynamic coefficient of
- friction of 0.5, a slip-weakening parameter of 0.2 m, and no cohesion (0
- MPa).
- The fault constitutive model is associated with the fault, so we can append
- the fault constitutive model parameters to the vertex information fields
- and the fault constitutive model state variables to the vertex data fields:
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.interfaces.fault.output]
-\end_layout
-
-\begin_layout LyX-Code
-vertex_info_fields = [strike_dir,normal_dir,initial_traction,static_coefficient,
-\begin_inset Newline newline
-\end_inset
-
-dynamic_coefficient,slip_weakening_parameter,cohesion]
-\end_layout
-
-\begin_layout LyX-Code
-vertex_data_fields = [slip,traction,cumulative_slip,previous_slip]
-\end_layout
-
-\begin_layout Standard
-The parameters specific to this example are in 
-\family typewriter
-dynamic_slipweakening.cfg
-\family default
-, so we run the problem via:
-\end_layout
-
-\begin_layout LyX-Code
-pylith dynamic.cfg dynamic_slipweakening.cfg
-\end_layout
-
-\begin_layout Standard
-The VTK files will be written to the 
-\family typewriter
-output
-\family default
- directory with the prefix 
-\family typewriter
-slipweakening
-\family default
-.
- If the problem ran correctly, you should be able to generate a figure such
- as Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:quad4:slipweakening"
-
-\end_inset
-
-, which was generated using ParaView.
- The steady-state solution is a constant slip rate of 0.88 m/s and shear
- traction of 5.0 MPa on the fault surface, a uniform shear strain of 2.2e-4
- in the bar with uniform, constant velocities in the y-direction of +0.44
- m/s and -0.44 m/s on the -x and +x sides of the fault, respectively.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/quad4slipweakening30.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Velocity field in the bar at 3.0 s for the slip-weakening friction fault
- constitutive model.
- Deformation has been exaggerated by a factor of 800.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:quad4:slipweakening"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsubsection
-Dynamic Fault with Rate-State Friction
-\end_layout
-
-\begin_layout Standard
-The parameters specific to this example are related to the use of the rate-
- and state-friction fault constitutive model (see Section 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "sec:fault:constitutive:models"
-
-\end_inset
-
-).
- The evolution of the state variable uses the ageing law.
- We set the fault constitutive model via
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.interfaces.fault]
-\end_layout
-
-\begin_layout LyX-Code
-friction = pylith.friction.RateStateAgeing
-\end_layout
-
-\begin_layout Standard
-and use a UniformDB to set the static friction parameters.
- We use a reference coefficient of friction of 0.6, reference slip rate of
- 1.0e-6 m/s, characteristic slip distance of 0.037 m, coefficients a and b
- of 0.0125 and 0.0172, and no cohesion (0 MPa).
- The parameters specific to this example are in 
-\family typewriter
-dynamic_ratestateageing.cfg
-\family default
-, so we run the problem via:
-\end_layout
-
-\begin_layout LyX-Code
-pylith dynamic.cfg dynamic_ratestateageing.cfg
-\end_layout
-
-\begin_layout Standard
-The VTK files will be written to the 
-\family typewriter
-output
-\family default
- directory with the prefix 
-\family typewriter
-ratestateageing
-\family default
-.
- If the problem ran correctly, you should be able to generate a figure such
- as Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:quad4:ratestateageing"
-
-\end_inset
-
-, which was generated using ParaView.
- The steady-state solution is a constant slip rate of 0.572 m/s and shear
- traction of 5.385 MPa on the fault surface, a uniform shear strain of 1.43e-4
- in the bar with uniform, constant velocities in the y-direction of +0.286
- m/s and -0.286 m/s on the -x and +x sides of the fault, respectively.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/quad4ratestateageing30.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Velocity field in the bar at 3.0 s for the rate- and state-friction fault
- constitutive model.
- Deformation has been exaggerated by a factor of 800.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:quad4:ratestateageing"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass book
+\begin_preamble
+
+\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
+\papersize default
+\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
+\bottommargin 1in
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:tutorial:shearwave:quad4"
+
+\end_inset
+
+3D Bar Discretized with Quadrilaterals
+\end_layout
+
+\begin_layout Standard
+PyLith features discussed in this tutorial:
+\end_layout
+
+\begin_layout Itemize
+Dynamic solution
+\end_layout
+
+\begin_layout Itemize
+CUBIT mesh format
+\end_layout
+
+\begin_layout Itemize
+Absorbing dampers boundary conditions
+\end_layout
+
+\begin_layout Itemize
+Kinematic fault interface conditions
+\end_layout
+
+\begin_layout Itemize
+Dynamic fault interface conditions
+\end_layout
+
+\begin_layout Itemize
+Plane strain linearly elastic material
+\end_layout
+
+\begin_layout Itemize
+VTK output
+\end_layout
+
+\begin_layout Itemize
+Linear quadrilateral cells
+\end_layout
+
+\begin_layout Itemize
+SimpleDB spatial database
+\end_layout
+
+\begin_layout Itemize
+ZeroDispDB spatial database
+\end_layout
+
+\begin_layout Itemize
+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
+
+\begin_layout Standard
+The mesh is a simple rectangular prism 8 km by 400 m by 400 m (Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:quad4:mesh"
+
+\end_inset
+
+).
+ We provide documented CUBIT journal files in 
+\family typewriter
+examples/bar_shearwave/quad4.
+
+\family default
+ We first create the geometry, mesh the domain using quadrilateral cells,
+ and then create blocks and nodesets associated with the materials and boundary
+ conditions.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/quad4mesh.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Mesh composed of hexahedral cells generated by CUBIT used for the example
+ problem.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:quad4:mesh"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Kinematic Fault
+\end_layout
+
+\begin_layout Standard
+The simulation parameters match those in the tri3, tet4, and hex8 examples.
+ Using four-point quadrature permits use of a time step of 1/20 s, which
+ is slightly larger than the time step of 1/30 s used in the tri3 and tet4
+ simulations.
+ In contrast to the tri3, tet4, and hex8 shear wave examples which only
+ contained a single simulation in a directory, in this example we consider
+ several different simulations.
+ Consequently, we separate the parameters into multiple 
+\family typewriter
+.cfg
+\family default
+ files.
+ The common parameters are placed in 
+\family typewriter
+pylithapp.cfg
+\family default
+ with the parameters specific to the kinematic fault (prescribed rupture)
+ example in 
+\family typewriter
+prescribedrup.cfg
+\family default
+.
+ To run the problem, simply run PyLith via:
+\end_layout
+
+\begin_layout LyX-Code
+pylith prescribedrup.cfg
+\end_layout
+
+\begin_layout Standard
+The VTK files will be written to the 
+\family typewriter
+output
+\family default
+ directory with the prefix 
+\family typewriter
+prescribedrup
+\family default
+.
+ The output includes the displacement field over the entire domain at every
+ other time step (0.10 s), the slip and traction vectors on the fault surface
+ in along-strike and normal directions at every other time step (0.10 s),
+ and the strain and stress tensors for each cell at every 20th time step
+ (1.0 s).
+ If the problem ran correctly, you should be able to generate a figure such
+ as Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:quad4:kinematic"
+
+\end_inset
+
+, which was generated using ParaView.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/quad4kinematic30.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Displacement field in the bar at 3.0 s.
+ Deformation has been exaggerated by a factor of 800.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:quad4:kinematic"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Dynamic Fault
+\end_layout
+
+\begin_layout Standard
+In this set of examples we replace the kinematic fault interface with the
+ dynamic fault interface, resulting in fault slip controlled by a fault-constitu
+tive model.
+ See Section 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:fault:constitutive:models"
+
+\end_inset
+
+ for detailed information about the fault constitutive models available
+ in PyLith.
+ Because this is a dynamic simulation we want the generated shear wave to
+ continue to be absorbed at the ends of the bar, so we drive the fault by
+ imposing initial tractions directly on the fault surface rather than through
+ deformation within the bar.
+ We employ a UniformDB object to specify 6.1 MPa of right-lateral shear and
+ 10.0 MPa of normal compression for the initial fault tractions.
+ The parameters common to the dynamic fault simulations are in 
+\family typewriter
+spontaneousrup.cfg
+\family default
+.
+ We also request that the fault output include slip, slip rate, and traction
+ fields:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.interfaces.fault.output]
+\end_layout
+
+\begin_layout LyX-Code
+vertex_data_fields = [slip,slip_rate,traction]
+\end_layout
+
+\begin_layout Subsubsection
+Dynamic Fault with Static Friction
+\end_layout
+
+\begin_layout Standard
+The parameters specific to this example are related to the use of the static
+ friction fault constitutive model.
+ We set the fault constitutive model via
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.interfaces.fault]
+\end_layout
+
+\begin_layout LyX-Code
+friction = pylith.friction.StaticFriction
+\end_layout
+
+\begin_layout Standard
+and use a UniformDB to set the static friction parameters.
+ We use a coefficient of friction of 0.6 and no cohesion (0 MPa).
+ The parameters specific to this example are in 
+\family typewriter
+spontaneousrup_staticfriction.cfg
+\family default
+, so we run the problem via:
+\end_layout
+
+\begin_layout LyX-Code
+pylith spontaneousrup.cfg spontaneousrup_staticfriction.cfg
+\end_layout
+
+\begin_layout Standard
+The VTK files will be written to the 
+\family typewriter
+output
+\family default
+ directory with the prefix 
+\family typewriter
+staticfriction
+\family default
+.
+ The output includes the displacement and velocity fields over the entire
+ domain at every other time step (0.10 s), the slip, slip rate, and traction
+ vectors on the fault surface in along-strike and normal directions at every
+ other time step (0.10 s), and the strain and stress tensors for each cell
+ at every 20th time step (1.0 s).
+ If the problem ran correctly, you should be able to generate a figure such
+ as Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:quad4:staticfriction"
+
+\end_inset
+
+, which was generated using ParaView.
+ The steady-state solution is a constant slip rate of 0.08 m/s, a shear traction
+ of 6.0 MPa on the fault surface, and a uniform shear strain of 2e-5 in the
+ bar with uniform, constant velocities in the y-direction of +0.04 m/s and
+ -0.04 m/s on the -x and +x sides of the fault, respectively.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/quad4staticfriction30.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Velocity field in the bar at 3.0 s for the static friction fault constitutive
+ model.
+ Deformation has been exaggerated by a factor of 800.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:quad4:staticfriction"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Dynamic Fault with Slip-Weakening Friction
+\end_layout
+
+\begin_layout Standard
+The parameters specific to this example are related to the use of the slip-weake
+ning friction fault constitutive model (see Section 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:fault:constitutive:models"
+
+\end_inset
+
+).
+ We set the fault constitutive model via
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.interfaces.fault]
+\end_layout
+
+\begin_layout LyX-Code
+friction = pylith.friction.SlipWeakening
+\end_layout
+
+\begin_layout Standard
+and use a UniformDB to set the slip-weakening friction parameters.
+ We use a static coefficient of friction of 0.6, a dynamic coefficient of
+ friction of 0.5, a slip-weakening parameter of 0.2 m, and no cohesion (0
+ MPa).
+ The fault constitutive model is associated with the fault, so we can append
+ the fault constitutive model parameters to the vertex information fields
+ and the fault constitutive model state variables to the vertex data fields:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.interfaces.fault.output]
+\end_layout
+
+\begin_layout LyX-Code
+vertex_info_fields = [strike_dir,normal_dir,initial_traction,static_coefficient,
+\begin_inset Newline newline
+\end_inset
+
+dynamic_coefficient,slip_weakening_parameter,cohesion]
+\end_layout
+
+\begin_layout LyX-Code
+vertex_data_fields = [slip,traction,cumulative_slip,previous_slip]
+\end_layout
+
+\begin_layout Standard
+The parameters specific to this example are in 
+\family typewriter
+dynamic_slipweakening.cfg
+\family default
+, so we run the problem via:
+\end_layout
+
+\begin_layout LyX-Code
+pylith spontaneousrup.cfg spontaneousrup_slipweakening.cfg
+\end_layout
+
+\begin_layout Standard
+The VTK files will be written to the 
+\family typewriter
+output
+\family default
+ directory with the prefix 
+\family typewriter
+slipweakening
+\family default
+.
+ If the problem ran correctly, you should be able to generate a figure such
+ as Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:quad4:slipweakening"
+
+\end_inset
+
+, which was generated using ParaView.
+ The steady-state solution is a constant slip rate of 0.88 m/s and shear
+ traction of 5.0 MPa on the fault surface, a uniform shear strain of 2.2e-4
+ in the bar with uniform, constant velocities in the y-direction of +0.44
+ m/s and -0.44 m/s on the -x and +x sides of the fault, respectively.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/quad4slipweakening30.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Velocity field in the bar at 3.0 s for the slip-weakening friction fault
+ constitutive model.
+ Deformation has been exaggerated by a factor of 800.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:quad4:slipweakening"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Dynamic Fault with Rate-State Friction
+\end_layout
+
+\begin_layout Standard
+The parameters specific to this example are related to the use of the rate-
+ and state-friction fault constitutive model (see Section 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:fault:constitutive:models"
+
+\end_inset
+
+).
+ The evolution of the state variable uses the ageing law.
+ We set the fault constitutive model via
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.interfaces.fault]
+\end_layout
+
+\begin_layout LyX-Code
+friction = pylith.friction.RateStateAgeing
+\end_layout
+
+\begin_layout Standard
+and use a UniformDB to set the static friction parameters.
+ We use a reference coefficient of friction of 0.6, reference slip rate of
+ 1.0e-6 m/s, characteristic slip distance of 0.037 m, coefficients a and b
+ of 0.0125 and 0.0172, and no cohesion (0 MPa).
+ The parameters specific to this example are in 
+\family typewriter
+dynamic_ratestateageing.cfg
+\family default
+, so we run the problem via:
+\end_layout
+
+\begin_layout LyX-Code
+pylith spontaneousrup.cfg spontaneousrup_ratestateageing.cfg
+\end_layout
+
+\begin_layout Standard
+The VTK files will be written to the 
+\family typewriter
+output
+\family default
+ directory with the prefix 
+\family typewriter
+ratestateageing
+\family default
+.
+ If the problem ran correctly, you should be able to generate a figure such
+ as Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:quad4:ratestateageing"
+
+\end_inset
+
+, which was generated using ParaView.
+ The steady-state solution is a constant slip rate of 0.572 m/s and shear
+ traction of 5.385 MPa on the fault surface, a uniform shear strain of 1.43e-4
+ in the bar with uniform, constant velocities in the y-direction of +0.286
+ m/s and -0.286 m/s on the -x and +x sides of the fault, respectively.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/quad4ratestateageing30.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Velocity field in the bar at 3.0 s for the rate- and state-friction fault
+ constitutive model.
+ Deformation has been exaggerated by a factor of 800.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:quad4:ratestateageing"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document

Modified: short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/tri3.lyx
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/tri3.lyx	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/shearwave/tri3.lyx	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,352 +1,350 @@
-#LyX 2.0 created this file. For more info see http://www.lyx.org/
-\lyxformat 413
-\begin_document
-\begin_header
-\textclass book
-\begin_preamble
-
-\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
-\papersize default
-\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
-\bottommargin 1in
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\quotes_language english
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tracking_changes false
-\output_changes false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\end_header
-
-\begin_body
-
-\begin_layout Section
-\begin_inset CommandInset label
-LatexCommand label
-name "sec:tutorial:shearwave:tri3"
-
-\end_inset
-
-2D Bar Discretized with Triangles
-\end_layout
-
-\begin_layout Standard
-PyLith features discussed in this tutorial:
-\end_layout
-
-\begin_layout Itemize
-Dynamic solution
-\end_layout
-
-\begin_layout Itemize
-CUBIT format
-\end_layout
-
-\begin_layout Itemize
-Absorbing dampers boundary conditions
-\end_layout
-
-\begin_layout Itemize
-Kinematic fault interface conditions
-\end_layout
-
-\begin_layout Itemize
-Plane strain linearly elastic material
-\end_layout
-
-\begin_layout Itemize
-VTK output
-\end_layout
-
-\begin_layout Itemize
-Linear triangular cells
-\end_layout
-
-\begin_layout Itemize
-SimpleDB spatial database
-\end_layout
-
-\begin_layout Itemize
-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
-
-\begin_layout Standard
-The mesh is a simple rectangle 8 km by 400 m (Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:tet4:mesh"
-
-\end_inset
-
-).
- This mesh could be generated via a simple script, but it is even easier
- to generate this mesh using CUBIT.
- We provide documented journal files in 
-\family typewriter
-examples/bar_shearwave/tri3.
-
-\family default
- We first create the geometry, mesh the domain using triangular cells, and
- then create blocks and nodesets to associate the cells and vertices with
- materials and boundary conditions.
- See Section 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "sec:Tutorial-3d-hex8"
-
-\end_inset
-
- for more information on using CUBIT to generate meshes.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/tri3mesh.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Mesh composed of triangular cells generated by CUBIT used for the example
- problem.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:tri3:mesh"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Subsection
-Simulation Parameters
-\end_layout
-
-\begin_layout Standard
-All of the parameters are set in the 
-\family typewriter
-pylithapp.cfg
-\family default
- file.
- The structure of the file follows the same pattern as in all of the other
- examples.
- We set the parameters for the journal information followed by the mesh
- reader, problem, materials, boundary conditions, fault, and output.
- We change the time-stepping formulation from the default value of implicit
- time stepping to explicit time stepping by setting the formulation object
- via
-\end_layout
-
-\begin_layout LyX-Code
-formulation = pylith.problems.Explicit
-\end_layout
-
-\begin_layout Standard
-We can switch to explicit time stepping with a lumped Jacobian matrix (rather
- than the full Jacobian matrix) by changing Explicit to ExplicitLumped.
- Using the ExplicitLumped object automatically triggers lumping of the Jacobian
- cell matrices and assembly into a vector rather than a sparse matrix.
- Lumping the Jacobian decouples the equations, so we can use a very simple
- direct solver.
- Use of this simple solver is also triggered by the selection of the ExplicitLum
-ped object.
- 
-\end_layout
-
-\begin_layout Standard
-For dynamic problems we use the NondimElasticDynamic object to nondimensionalize
- the equations.
- This object provides scales associated with wave propagation for nondimensional
-ization, including the minimum wave period, the shear wave speed, and mass
- density.
- In this example we use the default values of a minimum wave period of 1.0
- s, a shear wave speed of 3 km/s, and a mass density of 3000 kg/m
-\begin_inset Formula $^{3}$
-\end_inset
-
-.
- We simulate 12.0 s of motion with a time step of 1/30 s.
- This time step must follow the Courant–Friedrichs–Lewy condition; that
- is, the time step must be smaller than the time it takes the P wave to
- propagate across the shortest edge of a cell.
- 
-\end_layout
-
-\begin_layout Standard
-The boundary conditions include the absorbing dampers at the ends of the
- bar and a Dirichlet boundary condition to prevent longitudinal motion.
- Because we cannot overlap the Dirichlet BC with the fault, we use the nodeset
- associated with all vertices except the fault.
- For the output over the entire domain, we request both displacement and
- velocity fields:
-\end_layout
-
-\begin_layout LyX-Code
-[pylithapp.timedependent.output]
-\end_layout
-
-\begin_layout LyX-Code
-vertex_data_fields = [displacement,velocity]
-\end_layout
-
-\begin_layout Standard
-To run the problem, simply run PyLith without any command line arguments:
-\end_layout
-
-\begin_layout LyX-Code
-pylith
-\end_layout
-
-\begin_layout Standard
-The VTK files will be written to the 
-\family typewriter
-output
-\family default
- directory.
- The output includes the displacement and velocity fields over the entire
- domain at every 3rd time step (0.10 s), the slip and change in traction
- vectors on the fault surface in along-strike and normal directions at every
- 3rd time step (0.10 s), and the strain and stress tensors for each cell
- at every 30th time step (1.0 s).
- If the problem ran correctly, you should be able to generate a figure such
- as Figure 
-\begin_inset CommandInset ref
-LatexCommand ref
-reference "fig:shearwave:tri3:deform"
-
-\end_inset
-
-, which was generated using ParaView.
-\end_layout
-
-\begin_layout Standard
-\noindent
-\align center
-\begin_inset Float figure
-wide false
-sideways false
-status open
-
-\begin_layout Plain Layout
-\align center
-\begin_inset Graphics
-	filename figs/tri3deform30.jpg
-	lyxscale 50
-	scale 50
-
-\end_inset
-
-
-\end_layout
-
-\begin_layout Plain Layout
-\begin_inset Caption
-
-\begin_layout Plain Layout
-Displacement field in the bar at 3.0 s.
- Deformation has been exaggerated by a factor of 800.
-\begin_inset CommandInset label
-LatexCommand label
-name "fig:shearwave:tri3:deform"
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_inset
-
-
-\end_layout
-
-\end_body
-\end_document
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass book
+\begin_preamble
+
+\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
+\papersize default
+\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
+\bottommargin 1in
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:tutorial:shearwave:tri3"
+
+\end_inset
+
+2D Bar Discretized with Triangles
+\end_layout
+
+\begin_layout Standard
+PyLith features discussed in this tutorial:
+\end_layout
+
+\begin_layout Itemize
+Dynamic solution
+\end_layout
+
+\begin_layout Itemize
+CUBIT format
+\end_layout
+
+\begin_layout Itemize
+Absorbing dampers boundary conditions
+\end_layout
+
+\begin_layout Itemize
+Kinematic fault interface conditions
+\end_layout
+
+\begin_layout Itemize
+Plane strain linearly elastic material
+\end_layout
+
+\begin_layout Itemize
+VTK output
+\end_layout
+
+\begin_layout Itemize
+Linear triangular cells
+\end_layout
+
+\begin_layout Itemize
+SimpleDB spatial database
+\end_layout
+
+\begin_layout Itemize
+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
+
+\begin_layout Standard
+The mesh is a simple rectangle 8 km by 400 m (Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:tet4:mesh"
+
+\end_inset
+
+).
+ This mesh could be generated via a simple script, but it is even easier
+ to generate this mesh using CUBIT.
+ We provide documented journal files in 
+\family typewriter
+examples/bar_shearwave/tri3.
+
+\family default
+ We first create the geometry, mesh the domain using triangular cells, and
+ then create blocks and nodesets to associate the cells and vertices with
+ materials and boundary conditions.
+ See Section 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:Tutorial-3d-hex8"
+
+\end_inset
+
+ for more information on using CUBIT to generate meshes.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/tri3mesh.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Mesh composed of triangular cells generated by CUBIT used for the example
+ problem.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:tri3:mesh"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Simulation Parameters
+\end_layout
+
+\begin_layout Standard
+All of the parameters are set in the 
+\family typewriter
+pylithapp.cfg
+\family default
+ file.
+ The structure of the file follows the same pattern as in all of the other
+ examples.
+ We set the parameters for the journal information followed by the mesh
+ reader, problem, materials, boundary conditions, fault, and output.
+ We change the time-stepping formulation from the default value of implicit
+ time stepping to explicit time stepping with a lumped Jacobian matrix by
+ setting the formulation object via
+\end_layout
+
+\begin_layout LyX-Code
+formulation = pylith.problems.Explicit
+\end_layout
+
+\begin_layout Standard
+Using the Explicit object automatically triggers lumping of the Jacobian
+ cell matrices and assembly into a vector rather than a sparse matrix.
+ Lumping the Jacobian decouples the equations, so we can use a very simple
+ direct solver.
+ Use of this simple solver is also triggered by the selection of any of
+ the Explicit formulation objects.
+ 
+\end_layout
+
+\begin_layout Standard
+For dynamic problems we use the NondimElasticDynamic object to nondimensionalize
+ the equations.
+ This object provides scales associated with wave propagation for nondimensional
+ization, including the minimum wave period, the shear wave speed, and mass
+ density.
+ In this example we use the default values of a minimum wave period of 1.0
+ s, a shear wave speed of 3 km/s, and a mass density of 3000 kg/m
+\begin_inset Formula $^{3}$
+\end_inset
+
+.
+ We simulate 12.0 s of motion with a time step of 1/30 s.
+ This time step must follow the Courant–Friedrichs–Lewy condition; that
+ is, the time step must be smaller than the time it takes the P wave to
+ propagate across the shortest edge of a cell.
+ 
+\end_layout
+
+\begin_layout Standard
+The boundary conditions include the absorbing dampers at the ends of the
+ bar and a Dirichlet boundary condition to prevent longitudinal motion.
+ Because we cannot overlap the Dirichlet BC with the fault, we use the nodeset
+ associated with all vertices except the fault.
+ For the output over the entire domain, we request both displacement and
+ velocity fields:
+\end_layout
+
+\begin_layout LyX-Code
+[pylithapp.timedependent.output]
+\end_layout
+
+\begin_layout LyX-Code
+vertex_data_fields = [displacement,velocity]
+\end_layout
+
+\begin_layout Standard
+To run the problem, simply run PyLith without any command line arguments:
+\end_layout
+
+\begin_layout LyX-Code
+pylith
+\end_layout
+
+\begin_layout Standard
+The VTK files will be written to the 
+\family typewriter
+output
+\family default
+ directory.
+ The output includes the displacement and velocity fields over the entire
+ domain at every 3rd time step (0.10 s), the slip and change in traction
+ vectors on the fault surface in along-strike and normal directions at every
+ 3rd time step (0.10 s), and the strain and stress tensors for each cell
+ at every 30th time step (1.0 s).
+ If the problem ran correctly, you should be able to generate a figure such
+ as Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:shearwave:tri3:deform"
+
+\end_inset
+
+, which was generated using ParaView.
+\end_layout
+
+\begin_layout Standard
+\noindent
+\align center
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\align center
+\begin_inset Graphics
+	filename figs/tri3deform30.jpg
+	lyxscale 50
+	scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Displacement field in the bar at 3.0 s.
+ Deformation has been exaggerated by a factor of 800.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:shearwave:tri3:deform"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document

Modified: short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/tutorials.lyx
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/tutorials.lyx	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/doc/userguide/tutorials/tutorials.lyx	2012-09-20 21:37:41 UTC (rev 20751)
@@ -269,7 +269,33 @@
 Additional Examples
 \end_layout
 
+\begin_layout Subsection
+CUBIT Meshing Examples
+\end_layout
+
 \begin_layout Standard
+The directory 
+\family typewriter
+examples/meshing
+\family default
+ contains several examples of using CUBIT to construct finite-element meshes
+ for complex geometry.
+ This includes features such as constructing nonplanar fault geometry from
+ contours, constructing topography from a DEM, and merging sheet bodies
+ (surfaces).
+ A separate examples discusses defining the discretization size using a
+ vertex field in an Exodus-II file.
+ See the 
+\family typewriter
+README files in the subdirectories for more detailed descriptions of these
+ examples.
+\end_layout
+
+\begin_layout Subsection
+Code Verification Benchmarks
+\end_layout
+
+\begin_layout Standard
 The CIG subversion software repository 
 \begin_inset Flex URL
 status collapsed
@@ -282,8 +308,8 @@
 \end_inset
 
  contains input files for a number of community benchmarks.
- Most of the benchmarks include complete sets of PyLith input files.
- Some of the dynamic benchmarks do not include the mesh files because they
+ Some of the benchmarks include complete sets of PyLith input files.
+ However, most of the benchmarks do not include the mesh files because they
  are so large; instead they include the CUBIT journal files that can be
  used to generate the meshes.
 \end_layout

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/hex8/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/hex8/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/hex8/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -57,7 +57,6 @@
 
 # Change to an explicit time stepping formulation
 formulation = pylith.problems.Explicit
-#formulation = pylith.problems.ExplicitLumped
 
 # Nondimensionalize problem using wave propagation parameters.
 normalizer = spatialdata.units.NondimElasticDynamic
@@ -193,19 +192,6 @@
 # PETSc
 # ----------------------------------------------------------------------
 [pylithapp.petsc]
-ksp_type = gmres
-pc_type = asm
-
-# Change the preconditioner settings.
-sub_pc_factor_shift_type = nonzero
-
-ksp_rtol = 1.0e-8
-ksp_atol = 1.0e-10
-ksp_max_it = 50
-ksp_gmres_restart = 75
-
-#ksp_monitor = true
-#ksp_view = true
 log_summary = true
 
 

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/Makefile.am	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/Makefile.am	2012-09-20 21:37:41 UTC (rev 20751)
@@ -26,13 +26,13 @@
 	matprops.spatialdb \
 	mesh_quad4_200m.jou \
 	pylithapp.cfg \
-	kinematic.cfg \
-	kinematic_slip.spatialdb \
-	kinematic_risetime.spatialdb \
-	kinematic_sliptime.spatialdb \
-	dynamic.cfg \
-	dynamic_staticfriction.cfg \
-	dynamic_slipweakening.cfg \
-	dynamic_ratestateageing.cfg
+	prescribedrup.cfg \
+	prescribedrup_slip.spatialdb \
+	prescribedrup_risetime.spatialdb \
+	prescribedrup_sliptime.spatialdb \
+	spontaneousrup.cfg \
+	spontaneousrup_staticfriction.cfg \
+	spontaneousrup_slipweakening.cfg \
+	spontaneousrup_ratestateageing.cfg
 
 # End of file 

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/README
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/README	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/README	2012-09-20 21:37:41 UTC (rev 20751)
@@ -5,14 +5,14 @@
 
 Example problems
 
-  * Kinematic fault slip (same as problem in tri3, tet4, and hex8
+  * Prescribed rupture (same as problem in tri3, tet4, and hex8
     subdirectories)
 
-  * Dynamic fault slip with static friction fault constitutive model
+  * Spontaneous rupture with static friction fault constitutive model
 
-  * Dynamic fault slip with linear slip-weakening fault constitutive model
+  * Spontaneous rupture with linear slip-weakening fault constitutive model
 
-  * Dynamic fault slip with rate- and state-friction fault constitutive model
+  * Spontaneous rupture with rate- and state-friction fault constitutive model
 
 
 Files common to all example problems
@@ -25,23 +25,23 @@
 
 Files associated with the example problems:
 
-  + Kinematic fault slip
-    - kinematic.cfg: Parameters for simulation
-    - kinematic_risetime.spatialdb: Spatial database for slip rise time
-    - kinematic_slip.spatialdb: Spatial database for final slip
-    - kinematic_sliptime.spatialdb: Spatial database for slip initiation time 
+  + Prescribed rupture
+    - prescribedrup.cfg: Parameters for simulation
+    - prescribedrup_risetime.spatialdb: Spatial database for slip rise time
+    - prescribedrup_slip.spatialdb: Spatial database for final slip
+    - prescribedrup_sliptime.spatialdb: Spatial database for slip initiation time 
 
-  + Dynamic fault slip with static friction fault constitutive model
+  + Spontaneous rupture with static friction fault constitutive model
 
-    - dynamic.cfg: Parameters common to dynamic friction problems
-    - dynamic_staticfriction.cfg: Parameters for simulation 
+    - spontaneousrup.cfg: Parameters common to dynamic friction problems
+    - spontaneousrup_staticfriction.cfg: Parameters for simulation 
 
-  + Dynamic fault slip with linear slip-weakening fault constitutive model
+  + Spontaneous rupture with linear slip-weakening fault constitutive model
 
-    - dynamic.cfg: Parameters common to dynamic friction problems
-    - dynamic_slipweakening.cfg: Parameters for simulation 
+    - spontaneousrup.cfg: Parameters common to dynamic friction problems
+    - spontaneousrup_slipweakening.cfg: Parameters for simulation 
 
-  + Dynamic fault slip with rate- and state-friction fault constitutive model
+  + Spontaneous rupture with rate- and state-friction fault constitutive model
 
-    - dynamic.cfg: Parameters common to dynamic friction problems
-    - dynamic_ratestateageing.cfg: Parameters for simulation 
+    - spontaneousrup.cfg: Parameters common to dynamic friction problems
+    - spontaneousrup_ratestateageing.cfg: Parameters for simulation 

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,51 +0,0 @@
-[pylithapp]
-
-# This is not a self-contained simulation configuration file. This
-# file only specifies the general parameters common to the dynamic
-# fault (friction interface) simulations in this directory.
-
-# ----------------------------------------------------------------------
-# journal
-# ----------------------------------------------------------------------
-# Turn on progress for the dynamic fault.
-[pylithapp.journal.info]
-faultcohesivedyn = 1
-
-# ----------------------------------------------------------------------
-# problem
-# ----------------------------------------------------------------------
-[pylithapp.timedependent]
-
-# Overwrite the use of explicit time stepping with a full Jacobian
-# matrix set in pylithapp.cfg with a lumped Jacobian matrix. The
-# lumped Jacobian reduces memory use and uncouples the degrees of
-# freedom in the solve, permitting use of a very fast, simple solver.
-formulation = pylith.problems.ExplicitLumped
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces]
-# Change fault to dynamic fault interface.
-fault = pylith.faults.FaultCohesiveDyn
-
-[pylithapp.timedependent.interfaces.fault]
-# Specify the initial tractions on the fault using a uniform DB.
-#  shear: 6.1 MPa (right-lateral)
-#  normal 10 MPa (compressive)
-traction_perturbation = pylith.faults.TractPerturbation
-
-[pylithapp.timedependent.interfaces.fault.traction_perturbation]
-db_initial = spatialdata.spatialdb.UniformDB
-db_initial.label = Initial fault tractions
-db_initial.values = [traction-shear,traction-normal]
-db_initial.data = [-6.1*MPa, -10.0*MPa]
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces.fault.output]
-vertex_info_fields=[traction_initial_value]
-vertex_data_fields=[slip,slip_rate,traction]
-skip = 1
-writer.time_format = %05.2f

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,66 +0,0 @@
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# PROBLEM DESCRIPTION
-# ----------------------------------------------------------------------
-
-# Use constant initial tractions on the fault to drive fault slip
-# subject to rate- and state-friction on the fault. Deformation
-# propagates to the edges of the bar where it is absorbed using
-# absorbing dampers boundary conditions. The steady state solution is
-# a constant slip rate on the fault with uniform strain in the bar.
-
-# ----------------------------------------------------------------------
-# RUNNING THE SIMULATION
-# ----------------------------------------------------------------------
-
-# This is not a self-contained simulation configuration file. This
-# file only specifies the specific parameters for an explicit
-# time-stepping problem using a dynamic fault interface condition with
-# static friction.
-#
-# To run the simulation:
-# pylith dynamicfault.cfg staticfriction.cfg
-#
-# Output will be directed to the directory output.
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces.fault]
-
-# 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
-#  reference slip rate: 1.0e-06 m/s
-#  slip weakening parameter: 0.037 m
-#  a: 0.0125
-#  b: 0.0172
-#  cohesion: 0 Pa
-friction.db_properties = spatialdata.spatialdb.UniformDB
-friction.db_properties.label = Rate State Ageing
-friction.db_properties.values = [reference-friction-coefficient,reference-slip-rate,characteristic-slip-distance,constitutive-parameter-a,constitutive-parameter-b,cohesion]
-friction.db_properties.data = [0.6,1.0e-6*m/s,0.0370*m,0.0125,0.0172,0.0*Pa]
-
-# Set spatial database for the initial value of the state variable.
-friction.db_initial_state = spatialdata.spatialdb.UniformDB
-friction.db_initial_state.label = Rate State Ageing State
-friction.db_initial_state.values = [state-variable]
-friction.db_initial_state.data = [92.7*s]
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-# Set filenames for output.
-[pylithapp.problem.formulation.output.output]
-writer.filename = output/ratestateageing.vtk
-
-[pylithapp.timedependent.interfaces.fault.output]
-writer.filename = output/ratestateageing-fault.vtk
-
-[pylithapp.timedependent.materials.elastic.output]
-writer.filename = output/ratestateageing-statevars.vtk

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,65 +0,0 @@
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# PROBLEM DESCRIPTION
-# ----------------------------------------------------------------------
-
-# Use constant initial tractions on the fault to drive fault slip
-# subject to linear slip-weakening friction on the fault. Deformation
-# propagates to the edges of the bar where it is absorbed using
-# absorbing dampers boundary conditions. The steady state solution is
-# a constant slip rate on the fault with uniform strain in the bar.
-
-# ----------------------------------------------------------------------
-# RUNNING THE SIMULATION
-# ----------------------------------------------------------------------
-
-# This is not a self-contained simulation configuration file. This
-# file only specifies the specific parameters for an explicit
-# time-stepping problem using a dynamic fault interface condition with
-# linear slip-weakening friction.
-#
-# To run the simulation:
-# pylith dynamicfault.cfg slipweakening.cfg
-#
-# Output will be directed to the directory output.
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces.fault]
-
-# 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
-#  dynamic coefficient of friction: 0.5
-#  slip-weakening parameter: 0.2 m
-#  cohesion: 0 Pa
-friction.db_properties = spatialdata.spatialdb.UniformDB
-friction.db_properties.label = Slip weakening
-friction.db_properties.values = [static-coefficient,dynamic-coefficient,slip-weakening-parameter,cohesion]
-friction.db_properties.data = [0.6,0.5,0.2*m,0.0*Pa]
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-[pylithapp.problem.formulation.output.output]
-writer.filename = output/slipweakening.vtk
-
-[pylithapp.timedependent.interfaces.fault.output]
-writer.filename = output/slipweakening-fault.vtk
-
-# Add friction model parameters to fault info file in addition to
-# default values.
-vertex_info_fields = [strike_dir,normal_dir,traction_initial_value,static_coefficient,dynamic_coefficient,slip_weakening_parameter,cohesion]
-
-# Add output of state variables cumulative slip and previous slip to default
-# values.
-vertex_data_fields = [slip,traction,cumulative_slip,previous_slip]
-
-
-[pylithapp.timedependent.materials.elastic.output]
-writer.filename = output/slipweakening-statevars.vtk

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,53 +0,0 @@
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# PROBLEM DESCRIPTION
-# ----------------------------------------------------------------------
-
-# Use constant initial tractions on the fault to drive fault slip
-# subject to static friction on the fault. Deformation propagates to
-# the edges of the bar where it is absorbed using absorbing dampers
-# boundary conditions. The steady state solution is a constant slip
-# rate on the fault with uniform strain in the bar.
-
-# ----------------------------------------------------------------------
-# RUNNING THE SIMULATION
-# ----------------------------------------------------------------------
-
-# This is not a self-contained simulation configuration file. This
-# file only specifies the specific parameters for an explicit
-# time-stepping problem using a dynamic fault interface condition with
-# static friction.
-#
-# To run the simulation:
-# pylith dynamicfault.cfg staticfriction.cfg
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces.fault]
-
-# Use static friction
-friction = pylith.friction.StaticFriction
-friction.label = Static friction
-
-# Set the static friction model parameters.
-#  static coefficient of friction: 0.6
-#  cohesion: 0 Pa
-friction.db_properties = spatialdata.spatialdb.UniformDB
-friction.db_properties.label = Static friction
-friction.db_properties.values = [friction-coefficient,cohesion]
-friction.db_properties.data = [0.6,0.0*Pa]
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-# Set filenames for output.
-[pylithapp.problem.formulation.output.output]
-writer.filename = output/staticfriction.vtk
-
-[pylithapp.timedependent.interfaces.fault.output]
-writer.filename = output/staticfriction-fault.vtk
-
-[pylithapp.timedependent.materials.elastic.output]
-writer.filename = output/staticfriction-statevars.vtk

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,85 +0,0 @@
-[pylithapp]
-
-# ----------------------------------------------------------------------
-# PROBLEM DESCRIPTION
-# ----------------------------------------------------------------------
-
-# Impose 1.0 m of left-lateral slip at time 0.1 s with slip rate
-# following Brune's far-field time function. The rise time (95% of the
-# final slip) is 2.0 s.
-#
-# The fault slip causes a shear wave to propagate down the bar. The
-# shear wave is absorbed at the lateral ends of the bar using the
-# absorbing dampers boundary condition.
-
-# ----------------------------------------------------------------------
-# RUNNING THE SIMULATION
-# ----------------------------------------------------------------------
-
-# This is not a self-contained simulation configuration file. This
-# file only specifies the specific parameters for an explicit
-# time-stepping problem using a fault with kinematically-specified
-# slip.
-#
-# To run the simulation:
-# pylith shearwave_kinematicslip.cfg
-
-# ----------------------------------------------------------------------
-# journal
-# ----------------------------------------------------------------------
-# Turn on progress for the kinematic fault.
-[pylithapp.journal.info]
-faultcohesivekin = 1
-
-# ----------------------------------------------------------------------
-# problem
-# ----------------------------------------------------------------------
-[pylithapp.timedependent]
-
-# Uncomment the line below to overwrite the use of explicit time
-# stepping with a full Jacobian matrix set in pylithapp.cfg with a
-# lumped Jacobian matrix. The lumped Jacobian reduces memory use and
-# uncouples the degrees of freedom in the solve, permitting use of a
-# very fast, simple solver.
-#formulation = pylith.problems.ExplicitLumped
-
-# ----------------------------------------------------------------------
-# faults
-# ----------------------------------------------------------------------
-[pylithapp.timedependent.interfaces]
-fault = pylith.faults.FaultCohesiveKin
-
-[pylithapp.timedependent.interfaces.fault]
-# Switch to Brune slip time function
-eq_srcs.rupture.slip_function = pylith.faults.BruneSlipFn
-
-[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
-
-# ----------------------------------------------------------------------
-# output
-# ----------------------------------------------------------------------
-# Set the filename for each type of output.
-
-# Give basename for VTK domain output of solution over domain.
-[pylithapp.problem.formulation.output.output]
-writer.filename = output/kinematic.vtk
-
-# Give basename for VTK fault output.
-[pylithapp.timedependent.interfaces.fault.output]
-writer.filename = output/kinematic-fault.vtk
-
-# Give basename for VTK output of state variables.
-[pylithapp.timedependent.materials.elastic.output]
-writer.filename = output/kinematic-statevars.vtk

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_risetime.spatialdb
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_risetime.spatialdb	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_risetime.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,25 +0,0 @@
-#SPATIAL.ascii 1
-SimpleDB {
-  // number of values for rise time
-  num-values = 1
-
-  // Name and units for rise time
-  value-names =  rise-time
-  value-units =  s
-
-  // Number of locations where physical properties are given
-  // 1 location -> data is uniform -> data dimension is 0
-  num-locs = 1
-  data-dim = 0
-
-  // Problem is in 2-D
-  space-dim = 2
-
-  // Coordinate system (2-D with coordinates in meters)
-  cs-data = cartesian {
-    to-meters = 1.0
-    space-dim = 2
-  }
-}
-// Columns are x, y, rise-time
-0.0  0.0    2.0

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_slip.spatialdb
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_slip.spatialdb	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_slip.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,25 +0,0 @@
-#SPATIAL.ascii 1
-SimpleDB {
-  // number of values for final slip
-  num-values = 2
-
-  // Names and units of final slip values
-  value-names =  left-lateral-slip  fault-opening
-  value-units =  m  m
-
-  // Number of locations where physical properties are given
-  // 1 location -> data is uniform -> data dimension is 0
-  num-locs = 1
-  data-dim = 0
-
-  // Problem is in 2-D
-  space-dim = 2
-
-  // Coordinate system (2-D with coordinates in meters)
-  cs-data = cartesian {
-    to-meters = 1.0
-    space-dim = 2
-  }
-}
-// Columns are x, y, left-lateral-slip, fault-opening
-0.0  0.0   1.0  0.0

Deleted: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_sliptime.spatialdb
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_sliptime.spatialdb	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_sliptime.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,25 +0,0 @@
-#SPATIAL.ascii 1
-SimpleDB {
-  // number of values for slip initiation time
-  num-values = 1
-
-  // Names and units of slip initiation time
-  value-names =  slip-time
-  value-units =  s
-
-  // Number of locations where physical properties are given
-  // 1 location -> data is uniform -> data dimension is 0
-  num-locs = 1
-  data-dim = 0
-
-  // Problem is in 2-D
-  space-dim = 2
-
-  // Coordinate system (2-D with coordinates in meters)
-  cs-data = cartesian {
-    to-meters = 1.0
-    space-dim = 2
-  }
-}
-// Columns are x, y, slip-time
-0.0 0.0   0.1

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup.cfg (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic.cfg)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,72 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+# Impose 1.0 m of left-lateral slip at time 0.1 s with slip rate
+# following Brune's far-field time function. The rise time (95% of the
+# final slip) is 2.0 s.
+#
+# The fault slip causes a shear wave to propagate down the bar. The
+# shear wave is absorbed at the lateral ends of the bar using the
+# absorbing dampers boundary condition.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATION
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies the specific parameters for an explicit
+# time-stepping problem using a fault with prescribed rupture.
+#
+# To run the simulation:
+# pylith prescribedrup.cfg
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# Turn on progress for the prescribed rupture fault.
+[pylithapp.journal.info]
+faultcohesivekin = 1
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+fault = pylith.faults.FaultCohesiveKin
+
+[pylithapp.timedependent.interfaces.fault]
+# Switch to Brune slip time function
+eq_srcs.rupture.slip_function = pylith.faults.BruneSlipFn
+
+[pylithapp.timedependent.interfaces.fault.eq_srcs.rupture.slip_function]
+
+# Database specifying the final slip.
+slip.label = Final slip
+slip.iohandler.filename = prescribedrup_slip.spatialdb
+
+# Database specifying rise_time.
+rise_time.label = Rise time
+rise_time.iohandler.filename = prescribedrup_risetime.spatialdb
+
+# Database specifying time at which slip begins at each point.
+slip_time.label = Slip initiation time
+slip_time.iohandler.filename = prescribedrup_sliptime.spatialdb
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Set the filename for each type of output.
+
+# Give basename for VTK domain output of solution over domain.
+[pylithapp.problem.formulation.output.output]
+writer.filename = output/prescribedrup.vtk
+
+# Give basename for VTK fault output.
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = output/prescribedrup-fault.vtk
+
+# Give basename for VTK output of state variables.
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/prescribedrup-statevars.vtk

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_risetime.spatialdb (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_risetime.spatialdb)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_risetime.spatialdb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_risetime.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for rise time
+  num-values = 1
+
+  // Name and units for rise time
+  value-names =  rise-time
+  value-units =  s
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 2-D
+  space-dim = 2
+
+  // Coordinate system (2-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 2
+  }
+}
+// Columns are x, y, rise-time
+0.0  0.0    2.0

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_slip.spatialdb (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_slip.spatialdb)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_slip.spatialdb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_slip.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for final slip
+  num-values = 2
+
+  // Names and units of final slip values
+  value-names =  left-lateral-slip  fault-opening
+  value-units =  m  m
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 2-D
+  space-dim = 2
+
+  // Coordinate system (2-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 2
+  }
+}
+// Columns are x, y, left-lateral-slip, fault-opening
+0.0  0.0   1.0  0.0

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_sliptime.spatialdb (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/kinematic_sliptime.spatialdb)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_sliptime.spatialdb	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/prescribedrup_sliptime.spatialdb	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,25 @@
+#SPATIAL.ascii 1
+SimpleDB {
+  // number of values for slip initiation time
+  num-values = 1
+
+  // Names and units of slip initiation time
+  value-names =  slip-time
+  value-units =  s
+
+  // Number of locations where physical properties are given
+  // 1 location -> data is uniform -> data dimension is 0
+  num-locs = 1
+  data-dim = 0
+
+  // Problem is in 2-D
+  space-dim = 2
+
+  // Coordinate system (2-D with coordinates in meters)
+  cs-data = cartesian {
+    to-meters = 1.0
+    space-dim = 2
+  }
+}
+// Columns are x, y, slip-time
+0.0 0.0   0.1

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -172,28 +172,6 @@
 # PETSc
 # ----------------------------------------------------------------------
 [pylithapp.petsc]
-
-# Preconditioner settings.
-pc_type = asm
-sub_pc_factor_shift_type = nonzero
-
-# Convergence parameters.
-ksp_rtol = 1.0e-8
-ksp_atol = 1.0e-12
-ksp_max_it = 500
-ksp_gmres_restart = 100
-snes_max_it = 500
-
-# Linear solver monitoring options.
-ksp_monitor = true
-ksp_view = true
-ksp_converged_reason = true
-
-# Nonlinear solver monitoring options.
-snes_monitor = true
-snes_view = true
-snes_converged_reason = true
-
 # PETSc summary -- useful for performance information.
 log_summary = true
 

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup.cfg (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic.cfg)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,40 @@
+[pylithapp]
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies the general parameters common to the dynamic
+# fault (friction interface) simulations in this directory.
+
+# ----------------------------------------------------------------------
+# journal
+# ----------------------------------------------------------------------
+# Turn on progress for the dynamic fault.
+[pylithapp.journal.info]
+faultcohesivedyn = 1
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces]
+# Change fault to dynamic fault interface.
+fault = pylith.faults.FaultCohesiveDyn
+
+[pylithapp.timedependent.interfaces.fault]
+# Specify the initial tractions on the fault using a uniform DB.
+#  shear: 6.1 MPa (right-lateral)
+#  normal 10 MPa (compressive)
+traction_perturbation = pylith.faults.TractPerturbation
+
+[pylithapp.timedependent.interfaces.fault.traction_perturbation]
+db_initial = spatialdata.spatialdb.UniformDB
+db_initial.label = Initial fault tractions
+db_initial.values = [traction-shear,traction-normal]
+db_initial.data = [-6.1*MPa, -10.0*MPa]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.fault.output]
+vertex_info_fields=[traction_initial_value]
+vertex_data_fields=[slip,slip_rate,traction]
+skip = 1
+writer.time_format = %05.2f

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_ratestateageing.cfg (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_ratestateageing.cfg)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_ratestateageing.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_ratestateageing.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,66 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+# Use constant initial tractions on the fault to drive fault slip
+# subject to rate- and state-friction on the fault. Deformation
+# propagates to the edges of the bar where it is absorbed using
+# absorbing dampers boundary conditions. The steady state solution is
+# a constant slip rate on the fault with uniform strain in the bar.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATION
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies the specific parameters for an explicit
+# time-stepping problem using a dynamic fault interface condition with
+# static friction.
+#
+# To run the simulation:
+# pylith dynamicfault.cfg staticfriction.cfg
+#
+# Output will be directed to the directory output.
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.fault]
+
+# 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
+#  reference slip rate: 1.0e-06 m/s
+#  slip weakening parameter: 0.037 m
+#  a: 0.0125
+#  b: 0.0172
+#  cohesion: 0 Pa
+friction.db_properties = spatialdata.spatialdb.UniformDB
+friction.db_properties.label = Rate State Ageing
+friction.db_properties.values = [reference-friction-coefficient,reference-slip-rate,characteristic-slip-distance,constitutive-parameter-a,constitutive-parameter-b,cohesion]
+friction.db_properties.data = [0.6,1.0e-6*m/s,0.0370*m,0.0125,0.0172,0.0*Pa]
+
+# Set spatial database for the initial value of the state variable.
+friction.db_initial_state = spatialdata.spatialdb.UniformDB
+friction.db_initial_state.label = Rate State Ageing State
+friction.db_initial_state.values = [state-variable]
+friction.db_initial_state.data = [92.7*s]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Set filenames for output.
+[pylithapp.problem.formulation.output.output]
+writer.filename = output/ratestateageing.vtk
+
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = output/ratestateageing-fault.vtk
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/ratestateageing-statevars.vtk

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_slipweakening.cfg (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_slipweakening.cfg)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_slipweakening.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_slipweakening.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,65 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+# Use constant initial tractions on the fault to drive fault slip
+# subject to linear slip-weakening friction on the fault. Deformation
+# propagates to the edges of the bar where it is absorbed using
+# absorbing dampers boundary conditions. The steady state solution is
+# a constant slip rate on the fault with uniform strain in the bar.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATION
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies the specific parameters for an explicit
+# time-stepping problem using a dynamic fault interface condition with
+# linear slip-weakening friction.
+#
+# To run the simulation:
+# pylith dynamicfault.cfg slipweakening.cfg
+#
+# Output will be directed to the directory output.
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.fault]
+
+# 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
+#  dynamic coefficient of friction: 0.5
+#  slip-weakening parameter: 0.2 m
+#  cohesion: 0 Pa
+friction.db_properties = spatialdata.spatialdb.UniformDB
+friction.db_properties.label = Slip weakening
+friction.db_properties.values = [static-coefficient,dynamic-coefficient,slip-weakening-parameter,cohesion]
+friction.db_properties.data = [0.6,0.5,0.2*m,0.0*Pa]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+[pylithapp.problem.formulation.output.output]
+writer.filename = output/slipweakening.vtk
+
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = output/slipweakening-fault.vtk
+
+# Add friction model parameters to fault info file in addition to
+# default values.
+vertex_info_fields = [strike_dir,normal_dir,traction_initial_value,static_coefficient,dynamic_coefficient,slip_weakening_parameter,cohesion]
+
+# Add output of state variables cumulative slip and previous slip to default
+# values.
+vertex_data_fields = [slip,traction,cumulative_slip,previous_slip]
+
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/slipweakening-statevars.vtk

Copied: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_staticfriction.cfg (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/dynamic_staticfriction.cfg)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_staticfriction.cfg	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/quad4/spontaneousrup_staticfriction.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,53 @@
+[pylithapp]
+
+# ----------------------------------------------------------------------
+# PROBLEM DESCRIPTION
+# ----------------------------------------------------------------------
+
+# Use constant initial tractions on the fault to drive fault slip
+# subject to static friction on the fault. Deformation propagates to
+# the edges of the bar where it is absorbed using absorbing dampers
+# boundary conditions. The steady state solution is a constant slip
+# rate on the fault with uniform strain in the bar.
+
+# ----------------------------------------------------------------------
+# RUNNING THE SIMULATION
+# ----------------------------------------------------------------------
+
+# This is not a self-contained simulation configuration file. This
+# file only specifies the specific parameters for an explicit
+# time-stepping problem using a dynamic fault interface condition with
+# static friction.
+#
+# To run the simulation:
+# pylith dynamicfault.cfg staticfriction.cfg
+
+# ----------------------------------------------------------------------
+# faults
+# ----------------------------------------------------------------------
+[pylithapp.timedependent.interfaces.fault]
+
+# Use static friction
+friction = pylith.friction.StaticFriction
+friction.label = Static friction
+
+# Set the static friction model parameters.
+#  static coefficient of friction: 0.6
+#  cohesion: 0 Pa
+friction.db_properties = spatialdata.spatialdb.UniformDB
+friction.db_properties.label = Static friction
+friction.db_properties.values = [friction-coefficient,cohesion]
+friction.db_properties.data = [0.6,0.0*Pa]
+
+# ----------------------------------------------------------------------
+# output
+# ----------------------------------------------------------------------
+# Set filenames for output.
+[pylithapp.problem.formulation.output.output]
+writer.filename = output/staticfriction.vtk
+
+[pylithapp.timedependent.interfaces.fault.output]
+writer.filename = output/staticfriction-fault.vtk
+
+[pylithapp.timedependent.materials.elastic.output]
+writer.filename = output/staticfriction-statevars.vtk

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tet4/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tet4/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tet4/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -59,12 +59,9 @@
 # Change to an explicit time stepping formulation
 formulation = pylith.problems.Explicit
 
-# Uncomment next line to use lumped formulation.
-#formulation = pylith.problems.ExplicitLumped
-
 # Uncomment next line to use optimized lumped formulation and change
 # the quadrature order of the bulk material to 1.
-#formulation = pylith.problems.ExplicitLumpedTet4
+#formulation = pylith.problems.ExplicitTet4
 
 # Nondimensionalize problem using wave propagation parameters.
 normalizer = spatialdata.units.NondimElasticDynamic
@@ -216,19 +213,6 @@
 # PETSc
 # ----------------------------------------------------------------------
 [pylithapp.petsc]
-ksp_type = gmres
-pc_type = asm
-
-# Change the preconditioner settings.
-sub_pc_factor_shift_type = nonzero
-
-ksp_rtol = 1.0e-8
-ksp_atol = 1.0e-10
-ksp_max_it = 50
-ksp_gmres_restart = 75
-
-ksp_monitor = true
-#ksp_view = true
 #log_summary = true
 
 

Modified: short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tri3/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tri3/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/examples/bar_shearwave/tri3/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -58,7 +58,7 @@
 
 # Change to an explicit time stepping formulation
 formulation = pylith.problems.Explicit
-#formulation = pylith.problems.ExplicitLumpedTri3
+#formulation = pylith.problems.ExplicitTri3
 
 # Nondimensionalize problem using wave propagation parameters.
 normalizer = spatialdata.units.NondimElasticDynamic
@@ -197,19 +197,6 @@
 # PETSc
 # ----------------------------------------------------------------------
 [pylithapp.petsc]
-ksp_type = gmres
-pc_type = asm
-
-# Change the preconditioner settings.
-sub_pc_factor_shift_type = nonzero
-
-ksp_rtol = 1.0e-8
-ksp_atol = 1.0e-10
-ksp_max_it = 50
-ksp_gmres_restart = 25
-
-#ksp_monitor = true
-#ksp_view = true
 log_summary = true
 
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesive.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesive.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesive.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -56,6 +56,7 @@
 pylith::faults::FaultCohesive::deallocate(void)
 { // deallocate
   Fault::deallocate();
+  feassemble::Integrator<feassemble::Quadrature<topology::SubMesh> >::deallocate();
 
   delete _fields; _fields = 0;
 } // deallocate

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -91,10 +91,7 @@
   _friction = 0; // :TODO: Use shared pointer
 
   delete _jacobian; _jacobian = 0;
-  if (_ksp) {
-    PetscErrorCode err = KSPDestroy(&_ksp); _ksp = 0;
-    CHECK_PETSC_ERROR(err);
-  } // if
+  PetscErrorCode err = KSPDestroy(&_ksp);CHECK_PETSC_ERROR(err);
 } // deallocate
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveLagrange.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveLagrange.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveLagrange.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -278,16 +278,6 @@
 			       const topology::Jacobian& jacobian,
 			       const topology::SolutionFields& fields);
 
-  // PROTECTED MEMBERS //////////////////////////////////////////////////
-protected :
-
-  /// Array of cohesive vertex information.
-  std::vector<CohesiveInfo> _cohesiveVertices;
-
-  /// Map label of cohesive cell to label of cells in fault mesh.
-  std::map<topology::Mesh::SieveMesh::point_type,
-           topology::SubMesh::SieveMesh::point_type> _cohesiveToFault;
-
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
 
@@ -305,6 +295,16 @@
   /// Calculate fault area field.
   void _calcArea(void);
 
+  // PROTECTED MEMBERS //////////////////////////////////////////////////
+protected :
+
+  /// Array of cohesive vertex information.
+  std::vector<CohesiveInfo> _cohesiveVertices;
+
+  /// Map label of cohesive cell to label of cells in fault mesh.
+  std::map<topology::Mesh::SieveMesh::point_type,
+           topology::SubMesh::SieveMesh::point_type> _cohesiveToFault;
+
   // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -108,291 +108,14 @@
 // ----------------------------------------------------------------------
 // Integrate constributions to residual term (r) for operator.
 void
-pylith::feassemble::ElasticityExplicit::integrateResidual(
-			  const topology::Field<topology::Mesh>& residual,
-			  const PylithScalar t,
-			  topology::SolutionFields* const fields)
+pylith::feassemble::ElasticityExplicit::integrateResidual(const topology::Field<topology::Mesh>& residual,
+							  const PylithScalar t,
+							  topology::SolutionFields* const fields)
 { // integrateResidual
   /// Member prototype for _elasticityResidualXD()
   typedef void (pylith::feassemble::ElasticityExplicit::*elasticityResidual_fn_type)
     (const scalar_array&);
 
-  assert(_quadrature);
-  assert(_material);
-  assert(_logger);
-  assert(fields);
-
-  const int setupEvent = _logger->eventId("ElIR setup");
-  const int geometryEvent = _logger->eventId("ElIR geometry");
-  const int computeEvent = _logger->eventId("ElIR compute");
-  const int restrictEvent = _logger->eventId("ElIR restrict");
-  const int stateVarsEvent = _logger->eventId("ElIR stateVars");
-  const int stressEvent = _logger->eventId("ElIR stress");
-  const int updateEvent = _logger->eventId("ElIR update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  const int tensorSize = _material->tensorSize();
-  /** :TODO:
-   *
-   * If cellDim and spaceDim are different, we need to transform
-   * displacements into cellDim, compute action, and transform result
-   * back into spaceDim. We get this information from the Jacobian and
-   * inverse of the Jacobian.
-   */
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
-
-  // Set variables dependent on dimension of cell
-  totalStrain_fn_type calcTotalStrainFn;
-  elasticityResidual_fn_type elasticityResidualFn;
-  switch (cellDim) {
-  case 1 :
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicit::_elasticityResidual1D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticity::_calcTotalStrain1D;
-    break;
-  case 2 :
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicit::_elasticityResidual2D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticity::_calcTotalStrain2D;
-    break;
-  case 3 :
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicit::_elasticityResidual3D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticity::_calcTotalStrain3D;
-    break;
-  default :
-    assert(0);
-    throw std::logic_error("Unknown cellDim in "
-			   "ElasticityExplicit::integrateResidual.");
-  } // switch
-
-  // Allocate vectors for cell values.
-  scalar_array strainCell(numQuadPts*tensorSize);
-  strainCell = 0.0;
-  scalar_array gravVec(spaceDim);
-  scalar_array quadPtsGlobal(numQuadPts*spaceDim);
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array accCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& accSection = 
-    fields->get("acceleration(t)").section();
-  assert(!accSection.isNull());
-  RestrictVisitor accVisitor(*accSection, accCell.size(), &accCell[0]);
-  
-  scalar_array velCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& velSection = 
-    fields->get("velocity(t)").section();
-  assert(!velSection.isNull());
-  RestrictVisitor velVisitor(*velSection, velCell.size(), &velCell[0]);
-  
-  scalar_array dispCell(numBasis*spaceDim);
-  scalar_array dispAdjCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-  RestrictVisitor dispVisitor(*dispSection, dispCell.size(), &dispCell[0]);
-  
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  UpdateAddVisitor residualVisitor(*residualSection, &_cellVector[0]);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  assert(0 != _normalizer);
-  const PylithScalar lengthScale = _normalizer->lengthScale();
-  const PylithScalar gravityScale = 
-    _normalizer->pressureScale() / (_normalizer->lengthScale() *
-				    _normalizer->densityScale());
-
-  const PylithScalar dt = _dt;
-  assert(_normViscosity >= 0.0);
-  assert(dt > 0);
-  const PylithScalar viscosity = dt*_normViscosity;
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-    // Compute geometry information for current cell
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-#if defined(PRECOMPUTE_GEOMETRY)
-    _quadrature->retrieveGeometry(*c_iter);
-#else
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    _quadrature->computeGeometry(coordinatesCell, *c_iter);
-#endif
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(restrictEvent);
-#endif
-
-    // Reset element vector to zero
-    _resetCellVector();
-
-    // Restrict input fields to cell
-    accVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, accVisitor);
-
-    velVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, velVisitor);
-
-    dispVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, dispVisitor);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(restrictEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    // Get cell geometry information that depends on cell
-    const scalar_array& basis = _quadrature->basis();
-    const scalar_array& basisDeriv = _quadrature->basisDeriv();
-    const scalar_array& jacobianDet = _quadrature->jacobianDet();
-    const scalar_array& quadPtsNondim = _quadrature->quadPts();
-
-    // Compute body force vector if gravity is being used.
-    if (0 != _gravityField) {
-      const spatialdata::geocoords::CoordSys* cs = fields->mesh().coordsys();
-      assert(0 != cs);
-
-      // Get density at quadrature points for this cell
-      const scalar_array& density = _material->calcDensity();
-
-      quadPtsGlobal = quadPtsNondim;
-      _normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
-          lengthScale);
-
-      // Compute action for element body forces
-      spatialdata::spatialdb::SpatialDB* db = _gravityField;
-      for (int iQuad = 0; iQuad < numQuadPts; ++iQuad) {
-        const int err = db->query(&gravVec[0], gravVec.size(),
-            &quadPtsGlobal[0], spaceDim, cs);
-        if (err)
-          throw std::runtime_error("Unable to get gravity vector for point.");
-        _normalizer->nondimensionalize(&gravVec[0], gravVec.size(),
-            gravityScale);
-        const PylithScalar wt = quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad];
-        for (int iBasis = 0, iQ = iQuad * numBasis; iBasis < numBasis; ++iBasis) {
-          const PylithScalar valI = wt * basis[iQ + iBasis];
-          for (int iDim = 0; iDim < spaceDim; ++iDim) {
-            _cellVector[iBasis * spaceDim + iDim] += valI * gravVec[iDim];
-          } // for
-        } // for
-      } // for
-      PetscLogFlops(numQuadPts * (2 + numBasis * (1 + 2 * spaceDim)));
-    } // if
-
-    // Compute action for inertial terms
-    const scalar_array& density = _material->calcDensity();
-    for (int iQuad = 0; iQuad < numQuadPts; ++iQuad) {
-      const PylithScalar wt = quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad];
-      for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
-        const PylithScalar valI = wt * basis[iQuad*numBasis+iBasis];
-        for (int jBasis = 0; jBasis < numBasis; ++jBasis) {
-          const PylithScalar valIJ = valI * basis[iQuad*numBasis+jBasis];
-          for (int iDim = 0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis*spaceDim+iDim] -= valIJ * 
-	      accCell[jBasis*spaceDim+iDim];
-        } // for
-      } // for
-    } // for
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(numQuadPts*(2+numBasis*(1+numBasis*(2*spaceDim))));
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(stressEvent);
-#endif
-
-    // Numerical damping. Compute displacements adjusted by velocity
-    // times normalized viscosity.
-    dispAdjCell = dispCell + viscosity * velCell;
-
-    // Compute B(transpose) * sigma, first computing strains
-    calcTotalStrainFn(&strainCell, basisDeriv, dispAdjCell, 
-		      numBasis, numQuadPts);
-
-    const scalar_array& stressCell = _material->calcStress(strainCell, false);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stressEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    CALL_MEMBER_FN(*this, elasticityResidualFn)(stressCell);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-
-    // Assemble cell contribution into field
-    residualVisitor.clear();
-    sieveMesh->updateClosure(*c_iter, residualVisitor);
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*numQuadPts*(3+numBasis*(1+numBasis*(2*spaceDim))));
-  _logger->eventEnd(computeEvent);
-#endif
-} // integrateResidual
-
-// ----------------------------------------------------------------------
-// Integrate constributions to residual term (r) for operator.
-void
-pylith::feassemble::ElasticityExplicit::integrateResidualLumped(
-        const topology::Field<topology::Mesh>& residual,
-        const PylithScalar t,
-        topology::SolutionFields* const fields)
-{ // integrateResidualLumped
-  /// Member prototype for _elasticityResidualXD()
-  typedef void (pylith::feassemble::ElasticityExplicit::*elasticityResidual_fn_type)
-    (const scalar_array&);
-
   assert(0 != _quadrature);
   assert(0 != _material);
   assert(0 != _logger);
@@ -668,159 +391,7 @@
 					const PylithScalar t,
 					topology::SolutionFields* fields)
 { // integrateJacobian
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != jacobian);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIJ setup");
-  const int geometryEvent = _logger->eventId("ElIJ geometry");
-  const int computeEvent = _logger->eventId("ElIJ compute");
-  const int restrictEvent = _logger->eventId("ElIJ restrict");
-  const int stateVarsEvent = _logger->eventId("ElIJ stateVars");
-  const int updateEvent = _logger->eventId("ElIJ update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Don't know how to integrate elasticity " \
-			   "contribution to Jacobian matrix for cells with " \
-			   "different dimensions than the spatial dimension.");
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  const ALE::Obj<RealSection>& solnSection = fields->solution().section();
-  assert(!solnSection.isNull());
-
-  // Get sparse matrix
-  const PetscMat jacobianMat = jacobian->matrix();
-  assert(0 != jacobianMat);
-
-  // Get parameters used in integration.
-  const PylithScalar dt = _dt;
-  const PylithScalar dt2 = dt*dt;
-  assert(dt > 0);
-
-  const ALE::Obj<SieveMesh::order_type>& globalOrder = 
-    sieveMesh->getFactory()->getGlobalOrder(sieveMesh, "default", solnSection);
-  assert(!globalOrder.isNull());
-  // We would need to request unique points here if we had an interpolated mesh
-  const ALE::Obj<SieveMesh::sieve_type>& sieve = sieveMesh->getSieve();
-  assert(!sieve.isNull());
-  const int closureSize = 
-    int(pow(sieve->getMaxConeSize(), sieveMesh->depth()));
-  assert(closureSize >= 0);
-  IndicesVisitor jacobianVisitor(*solnSection, *globalOrder, 
-				 closureSize*spaceDim);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-    // Compute geometry information for current cell
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-#if defined(PRECOMPUTE_GEOMETRY)
-    _quadrature->retrieveGeometry(*c_iter);
-#else
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    _quadrature->computeGeometry(coordinatesCell, *c_iter);
-#endif
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    // Reset element matrix to zero
-    _resetCellMatrix();
-
-    // Get cell geometry information that depends on cell
-    const scalar_array& basis = _quadrature->basis();
-    const scalar_array& jacobianDet = _quadrature->jacobianDet();
-
-    // Get material physical properties at quadrature points for this cell
-    const scalar_array& density = _material->calcDensity();
-
-    // Compute Jacobian for inertial terms
-    for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-      const PylithScalar wt = 
-          quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
-      for (int iBasis=0, iQ=iQuad*numBasis; iBasis < numBasis; ++iBasis) {
-        const PylithScalar valI = wt*basis[iQ+iBasis];
-        for (int jBasis=0; jBasis < numBasis; ++jBasis) {
-          const PylithScalar valIJ = valI * basis[iQ+jBasis];
-          for (int iDim=0; iDim < spaceDim; ++iDim) {
-            const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
-            const int jBlock = (jBasis*spaceDim + iDim);
-            _cellMatrix[iBlock+jBlock] += valIJ;
-          } // for
-        } // for
-      } // for
-    } // for
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(numQuadPts*(3+numBasis*(1+numBasis*(1+spaceDim))));
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-    
-    // Assemble cell contribution into PETSc matrix.
-    jacobianVisitor.clear();
-    PetscErrorCode err = updateOperator(jacobianMat, *sieveMesh->getSieve(),
-					jacobianVisitor, *c_iter,
-					&_cellMatrix[0], ADD_VALUES);
-    CHECK_PETSC_ERROR_MSG(err, "Update to PETSc Mat failed.");
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*numQuadPts*(3+numBasis*(1+numBasis*(1+spaceDim))));
-  _logger->eventEnd(computeEvent);
-#endif
-
-  _needNewJacobian = false;
-  _material->resetNeedNewJacobian();
+  throw std::logic_error("ElasticityExplicit::integrateJacobian() not implemented. Use integrateJacobian(lumped) instead.");
 } // integrateJacobian
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicit.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -115,30 +115,9 @@
 			 const PylithScalar t,
 			 topology::SolutionFields* const fields);
 
-  /** Integrate contributions to residual term (r) for operator.
-   *
-   * @param residual Field containing values for residual
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateResidualLumped(const topology::Field<topology::Mesh>& residual,
-       const PylithScalar t,
-       topology::SolutionFields* const fields);
-
   /** Integrate contributions to Jacobian matrix (A) associated with
    * operator.
    *
-   * @param jacobian Sparse matrix for Jacobian of system.
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateJacobian(topology::Jacobian* jacobian,
-			 const PylithScalar t,
-			 topology::SolutionFields* const fields);
-
-  /** Integrate contributions to Jacobian matrix (A) associated with
-   * operator.
-   *
    * @param jacobian Diagonal matrix (as field) for Jacobian of system.
    * @param t Current time
    * @param fields Solution fields
@@ -153,9 +132,15 @@
   /// Not implemented.
   ElasticityExplicit(const ElasticityExplicit&);
 
-  /// Not implemented
+  /// Not implemented.
   const ElasticityExplicit& operator=(const ElasticityExplicit&);
 
+  /// Not implemented.
+  void integrateJacobian(topology::Jacobian*,
+			 const PylithScalar,
+			 topology::SolutionFields* const);
+
+
 // PRIVATE MEMBERS //////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -106,249 +106,14 @@
 // ----------------------------------------------------------------------
 // Integrate constributions to residual term (r) for operator.
 void
-pylith::feassemble::ElasticityExplicitLgDeform::integrateResidual(
-			  const topology::Field<topology::Mesh>& residual,
-			  const PylithScalar t,
-			  topology::SolutionFields* const fields)
+pylith::feassemble::ElasticityExplicitLgDeform::integrateResidual(const topology::Field<topology::Mesh>& residual,
+								  const PylithScalar t,
+								  topology::SolutionFields* const fields)
 { // integrateResidual
   /// Member prototype for _elasticityResidualXD()
   typedef void (pylith::feassemble::ElasticityExplicitLgDeform::*elasticityResidual_fn_type)
     (const scalar_array&, const scalar_array&);
 
-  assert(_quadrature);
-  assert(_material);
-  assert(_logger);
-  assert(fields);
-
-  const int setupEvent = _logger->eventId("ElIR setup");
-  const int geometryEvent = _logger->eventId("ElIR geometry");
-  const int computeEvent = _logger->eventId("ElIR compute");
-  const int restrictEvent = _logger->eventId("ElIR restrict");
-  const int stateVarsEvent = _logger->eventId("ElIR stateVars");
-  const int stressEvent = _logger->eventId("ElIR stress");
-  const int updateEvent = _logger->eventId("ElIR update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  const int tensorSize = _material->tensorSize();
-  /** :TODO:
-   *
-   * If cellDim and spaceDim are different, we need to transform
-   * displacements into cellDim, compute action, and transform result
-   * back into spaceDim. We get this information from the Jacobian and
-   * inverse of the Jacobian.
-   */
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
-
-  // Set variables dependent on dimension of cell
-  totalStrain_fn_type calcTotalStrainFn;
-  elasticityResidual_fn_type elasticityResidualFn;
-  if (1 == cellDim) {
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicitLgDeform::_elasticityResidual1D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticityLgDeform::_calcTotalStrain1D;
-  } else if (2 == cellDim) {
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicitLgDeform::_elasticityResidual2D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticityLgDeform::_calcTotalStrain2D;
-  } else if (3 == cellDim) {
-    elasticityResidualFn = 
-      &pylith::feassemble::ElasticityExplicitLgDeform::_elasticityResidual3D;
-    calcTotalStrainFn = 
-      &pylith::feassemble::IntegratorElasticityLgDeform::_calcTotalStrain3D;
-  } else
-    assert(0);
-
-  // Allocate vectors for cell values.
-  scalar_array deformCell(numQuadPts*spaceDim*spaceDim);
-  scalar_array strainCell(numQuadPts*tensorSize);
-  scalar_array gravVec(spaceDim);
-  scalar_array quadPtsGlobal(numQuadPts*spaceDim);
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array accCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& accSection = 
-    fields->get("acceleration(t)").section();
-  assert(!accSection.isNull());
-  RestrictVisitor accVisitor(*accSection, accCell.size(), &accCell[0]);
-
-  scalar_array velCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& velSection = 
-    fields->get("velocity(t)").section();
-  assert(!velSection.isNull());
-  RestrictVisitor velVisitor(*velSection, velCell.size(), &velCell[0]);
-
-  scalar_array dispCell(numBasis*spaceDim);
-  scalar_array dispAdjCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-  RestrictVisitor dispVisitor(*dispSection, dispCell.size(), &dispCell[0]);
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  UpdateAddVisitor residualVisitor(*residualSection, &_cellVector[0]);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  assert(0 != _normalizer);
-  const PylithScalar lengthScale = _normalizer->lengthScale();
-  const PylithScalar gravityScale = 
-    _normalizer->pressureScale() / (_normalizer->lengthScale() *
-				    _normalizer->densityScale());
-
-  const PylithScalar dt = _dt;
-  assert(_normViscosity >= 0.0);
-  assert(dt > 0);
-  const PylithScalar viscosity = dt*_normViscosity;
-
-  _logger->eventEnd(setupEvent);
-  _logger->eventBegin(computeEvent);
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-    // Compute geometry information for current cell
-#if defined(PRECOMPUTE_GEOMETRY)
-    _quadrature->retrieveGeometry(*c_iter);
-#else
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    _quadrature->computeGeometry(coordinatesCell, *c_iter);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-    // Reset element vector to zero
-    _resetCellVector();
-
-    // Restrict input fields to cell
-    accVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, accVisitor);
-
-#if 0 // Numerical damping not yet implemented.
-    velVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, velVisitor);
-#endif
-
-    dispVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, dispVisitor);
-
-    // Get cell geometry information that depends on cell
-    const scalar_array& basis = _quadrature->basis();
-    const scalar_array& basisDeriv = _quadrature->basisDeriv();
-    const scalar_array& jacobianDet = _quadrature->jacobianDet();
-    const scalar_array& quadPtsNondim = _quadrature->quadPts();
-
-    // Compute body force vector if gravity is being used.
-    if (0 != _gravityField) {
-      const spatialdata::geocoords::CoordSys* cs = fields->mesh().coordsys();
-      assert(0 != cs);
-      
-      // Get density at quadrature points for this cell
-      const scalar_array& density = _material->calcDensity();
-
-      quadPtsGlobal = quadPtsNondim;
-      _normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
-				  lengthScale);
-
-      // Compute action for element body forces
-      spatialdata::spatialdb::SpatialDB* db = _gravityField;
-      for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-	const int err = db->query(&gravVec[0], gravVec.size(),
-					     &quadPtsGlobal[0], spaceDim, cs);
-	if (err)
-	  throw std::runtime_error("Unable to get gravity vector for point.");
-	_normalizer->nondimensionalize(&gravVec[0], gravVec.size(), 
-				       gravityScale);
-	const PylithScalar wt = quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad];
-	for (int iBasis=0, iQ=iQuad*numBasis;
-	     iBasis < numBasis; ++iBasis) {
-	  const PylithScalar valI = wt*basis[iQ+iBasis];
-	  for (int iDim=0; iDim < spaceDim; ++iDim) {
-	    _cellVector[iBasis*spaceDim+iDim] += valI*gravVec[iDim];
-	  } // for
-	} // for
-      } // for
-      PetscLogFlops(numQuadPts*(2+numBasis*(1+2*spaceDim)));
-    } // if
-
-    // Compute action for inertial terms
-    const scalar_array& density = _material->calcDensity();
-    for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-      const PylithScalar wt = 
-	quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad];
-      for (int iBasis=0; iBasis < numBasis; ++iBasis) {
-        const PylithScalar valI = wt*basis[iQuad*numBasis+iBasis];
-        for (int jBasis=0; jBasis < numBasis; ++jBasis) {
-          const PylithScalar valIJ = valI * basis[iQuad*numBasis+jBasis];
-          for (int iDim=0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis*spaceDim+iDim] -= 
-	      valIJ * accCell[jBasis*spaceDim+iDim];
-        } // for
-      } // for
-    } // for
-    PetscLogFlops(numQuadPts*(2+numBasis*(1+numBasis*(2*spaceDim))));
-
-    // Numerical damping. Compute displacements adjusted by velocity
-    // times normalized viscosity.
-    dispAdjCell = dispCell + viscosity * velCell;
-
-    // Compute B(transpose) * sigma, first computing strains
-    _calcDeformation(&deformCell, basisDeriv, coordinatesCell, dispAdjCell,
-		     numBasis, numQuadPts, spaceDim);
-    calcTotalStrainFn(&strainCell, deformCell, numQuadPts);
-    const scalar_array& stressCell = _material->calcStress(strainCell, true);
-
-    CALL_MEMBER_FN(*this, elasticityResidualFn)(stressCell, dispAdjCell);
-
-    // Assemble cell contribution into field
-    residualVisitor.clear();
-    sieveMesh->updateClosure(*c_iter, residualVisitor);
-  } // for
-
-  _logger->eventEnd(computeEvent);
-} // integrateResidual
-
-// ----------------------------------------------------------------------
-// Integrate constributions to residual term (r) for operator.
-void
-pylith::feassemble::ElasticityExplicitLgDeform::integrateResidualLumped(
-			  const topology::Field<topology::Mesh>& residual,
-			  const PylithScalar t,
-			  topology::SolutionFields* const fields)
-{ // integrateResidualLumped
-  /// Member prototype for _elasticityResidualXD()
-  typedef void (pylith::feassemble::ElasticityExplicitLgDeform::*elasticityResidual_fn_type)
-    (const scalar_array&, const scalar_array&);
-
   assert(0 != _quadrature);
   assert(0 != _material);
   assert(0 != _logger);
@@ -574,7 +339,7 @@
   } // for
 
   _logger->eventEnd(computeEvent);
-} // integrateResidualLumped
+} // integrateResidual
 
 // ----------------------------------------------------------------------
 // Compute matrix associated with operator.
@@ -584,134 +349,7 @@
 					const PylithScalar t,
 					topology::SolutionFields* fields)
 { // integrateJacobian
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != jacobian);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIJ setup");
-  const int geometryEvent = _logger->eventId("ElIJ geometry");
-  const int computeEvent = _logger->eventId("ElIJ compute");
-  const int restrictEvent = _logger->eventId("ElIJ restrict");
-  const int stateVarsEvent = _logger->eventId("ElIJ stateVars");
-  const int updateEvent = _logger->eventId("ElIJ update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  const int tensorSize = _material->tensorSize();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Don't know how to integrate elasticity " \
-			   "contribution to Jacobian matrix for cells with " \
-			   "different dimensions than the spatial dimension.");
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  const ALE::Obj<RealSection>& solnSection = fields->solution().section();
-  assert(!solnSection.isNull());
-
-  // Get sparse matrix
-  const PetscMat jacobianMat = jacobian->matrix();
-  assert(0 != jacobianMat);
-
-  // Get parameters used in integration.
-  const PylithScalar dt = _dt;
-  const PylithScalar dt2 = dt*dt;
-  assert(dt > 0);
-
-  const ALE::Obj<SieveMesh::order_type>& globalOrder = 
-    sieveMesh->getFactory()->getGlobalOrder(sieveMesh, "default", solnSection);
-  assert(!globalOrder.isNull());
-  // We would need to request unique points here if we had an interpolated mesh
-  const ALE::Obj<SieveMesh::sieve_type>& sieve = sieveMesh->getSieve();
-  assert(!sieve.isNull());
-  const int closureSize = 
-    int(pow(sieve->getMaxConeSize(), sieveMesh->depth()));
-  assert(closureSize >= 0);
-  IndicesVisitor jacobianVisitor(*solnSection, *globalOrder,
-				 closureSize*spaceDim);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  _logger->eventEnd(setupEvent);
-  _logger->eventBegin(computeEvent);
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-    // Compute geometry information for current cell
-#if defined(PRECOMPUTE_GEOMETRY)
-    _quadrature->retrieveGeometry(*c_iter);
-#else
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    _quadrature->computeGeometry(coordinatesCell, *c_iter);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-    // Reset element matrix to zero
-    _resetCellMatrix();
-
-    // Get cell geometry information that depends on cell
-    const scalar_array& basis = _quadrature->basis();
-    const scalar_array& jacobianDet = _quadrature->jacobianDet();
-
-    // Get material physical properties at quadrature points for this cell
-    const scalar_array& density = _material->calcDensity();
-
-    // Compute Jacobian for inertial terms
-    for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
-      const PylithScalar wt = 
-	quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
-      for (int iBasis=0, iQ=iQuad*numBasis; iBasis < numBasis; ++iBasis) {
-        const PylithScalar valI = wt*basis[iQ+iBasis];
-        for (int jBasis=0; jBasis < numBasis; ++jBasis) {
-          const PylithScalar valIJ = valI * basis[iQ+jBasis];
-          for (int iDim=0; iDim < spaceDim; ++iDim) {
-            const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
-            const int jBlock = (jBasis*spaceDim + iDim);
-            _cellMatrix[iBlock+jBlock] += valIJ;
-          } // for
-        } // for
-      } // for
-    } // for
-    PetscLogFlops(numQuadPts*(3+numBasis*(1+numBasis*(1+spaceDim))));
-    
-    // Assemble cell contribution into PETSc matrix.
-    jacobianVisitor.clear();
-    PetscErrorCode err = updateOperator(jacobianMat, *sieveMesh->getSieve(),
-					jacobianVisitor, *c_iter,
-					&_cellMatrix[0], ADD_VALUES);
-    CHECK_PETSC_ERROR_MSG(err, "Update to PETSc Mat failed.");
-  } // for
-
-  _needNewJacobian = false;
-  _material->resetNeedNewJacobian();
-
-  _logger->eventEnd(computeEvent);
+  throw std::logic_error("ElasticityExplicit::integrateJacobian() not implemented. Use integrateJacobian(lumped) instead.");
 } // integrateJacobian
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -69,8 +69,7 @@
  * See governing equations section of user manual for more
  * information.
 */
-class pylith::feassemble::ElasticityExplicitLgDeform :
-  public IntegratorElasticityLgDeform
+class pylith::feassemble::ElasticityExplicitLgDeform : public IntegratorElasticityLgDeform
 { // ElasticityExplicitLgDeform
   friend class TestElasticityExplicitLgDeform; // unit testing
 
@@ -117,30 +116,9 @@
 			 const PylithScalar t,
 			 topology::SolutionFields* const fields);
 
-  /** Integrate contributions to residual term (r) for operator.
-   *
-   * @param residual Field containing values for residual
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateResidualLumped(const topology::Field<topology::Mesh>& residual,
-       const PylithScalar t,
-       topology::SolutionFields* const fields);
-
   /** Integrate contributions to Jacobian matrix (A) associated with
    * operator.
    *
-   * @param jacobian Sparse matrix for Jacobian of system.
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateJacobian(topology::Jacobian* jacobian,
-			 const PylithScalar t,
-			 topology::SolutionFields* const fields);
-
-  /** Integrate contributions to Jacobian matrix (A) associated with
-   * operator.
-   *
    * @param jacobian Diagonal matrix (as field) for Jacobian of system.
    * @param t Current time
    * @param fields Solution fields
@@ -158,6 +136,12 @@
   /// Not implemented
   const ElasticityExplicitLgDeform& operator=(const ElasticityExplicitLgDeform&);
 
+  /// Not implemented.
+  void integrateJacobian(topology::Jacobian*,
+			 const PylithScalar,
+			 topology::SolutionFields* const);
+
+
 // PRIVATE MEMBERS //////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -114,317 +114,10 @@
 // Integrate constributions to residual term (r) for operator.
 void
 pylith::feassemble::ElasticityExplicitTet4::integrateResidual(
-			  const topology::Field<topology::Mesh>& residual,
-			  const PylithScalar t,
-			  topology::SolutionFields* const fields)
-{ // integrateResidual
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != _logger);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIR setup");
-  const int geometryEvent = _logger->eventId("ElIR geometry");
-  const int computeEvent = _logger->eventId("ElIR compute");
-  const int restrictEvent = _logger->eventId("ElIR restrict");
-  const int stateVarsEvent = _logger->eventId("ElIR stateVars");
-  const int stressEvent = _logger->eventId("ElIR stress");
-  const int updateEvent = _logger->eventId("ElIR update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  assert(_quadrature->numQuadPts() == _numQuadPts);
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == _numQuadPts);
-  assert(_quadrature->numBasis() == _numBasis);
-  assert(_quadrature->spaceDim() == _spaceDim);
-  assert(_quadrature->cellDim() == _cellDim);
-  assert(_material->tensorSize() == _tensorSize);
-  const int spaceDim = _spaceDim;
-  const int cellDim = _cellDim;
-  const int tensorSize = _tensorSize;
-  const int numBasis = _numBasis;
-  const int numQuadPts = _numQuadPts;
-  /** :TODO:
-   *
-   * If cellDim and spaceDim are different, we need to transform
-   * displacements into cellDim, compute action, and transform result
-   * back into spaceDim. We get this information from the Jacobian and
-   * inverse of the Jacobian.
-   */
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
-
-  // Allocate vectors for cell values.
-  scalar_array strainCell(numQuadPts*tensorSize);
-  strainCell = 0.0;
-  scalar_array gravVec(spaceDim);
-  scalar_array quadPtsGlobal(numQuadPts*spaceDim);
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array accCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& accSection = 
-    fields->get("acceleration(t)").section();
-  assert(!accSection.isNull());
-  RestrictVisitor accVisitor(*accSection, accCell.size(), &accCell[0]);
-
-  scalar_array velCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& velSection = 
-    fields->get("velocity(t)").section();
-  assert(!velSection.isNull());
-  RestrictVisitor velVisitor(*velSection, velCell.size(), &velCell[0]);
-
-  scalar_array dispCell(numBasis*spaceDim);
-  scalar_array dispAdjCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = 
-    fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-  RestrictVisitor dispVisitor(*dispSection, dispCell.size(), &dispCell[0]);
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  UpdateAddVisitor residualVisitor(*residualSection, &_cellVector[0]);
-  
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  assert(0 != _normalizer);
-  const PylithScalar lengthScale = _normalizer->lengthScale();
-  const PylithScalar gravityScale = 
-    _normalizer->pressureScale() / (_normalizer->lengthScale() *
-				    _normalizer->densityScale());
-
-  const PylithScalar dt = _dt;
-  assert(_normViscosity > 0.0);
-  assert(dt > 0);
-  const PylithScalar viscosity = dt*_normViscosity;
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-
-    // Compute geometry information for current cell
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    const PylithScalar volume = _volume(coordinatesCell);
-    assert(volume > 0.0);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-    #if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(restrictEvent);
-#endif
-
-    // Reset element vector to zero
-    _resetCellVector();
-
-    // Restrict input fields to cell
-    accVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, accVisitor);
-    
-    velVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, velVisitor);
-    
-    dispVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, dispVisitor);
-    
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(restrictEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    const scalar_array& density = _material->calcDensity();
-    assert(density.size() == 1);
-
-    // Compute body force vector if gravity is being used.
-    if (0 != _gravityField) {
-      const spatialdata::geocoords::CoordSys* cs = fields->mesh().coordsys();
-      assert(0 != cs);
-
-      quadPtsGlobal = 0.0;
-      for (int iBasis=0; iBasis < numBasis; ++iBasis)
-        for (int iDim=0; iDim < spaceDim; ++iDim)
-          quadPtsGlobal[iDim] += 
-	    coordinatesCell[iBasis*spaceDim+iDim] / numBasis;
-      _normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
-          lengthScale);
-
-      // Compute action for element body forces
-      spatialdata::spatialdb::SpatialDB* db = _gravityField;
-      const int err = db->query(&gravVec[0], gravVec.size(),
-        &quadPtsGlobal[0], spaceDim, cs);
-      if (err)
-        throw std::runtime_error("Unable to get gravity vector for point.");
-      _normalizer->nondimensionalize(&gravVec[0], gravVec.size(),
-          gravityScale);
-      const PylithScalar wtVertex = density[0] * volume / 4.0;
-      for (int iBasis=0; iBasis < numBasis; ++iBasis)
-        for (int iDim=0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis * spaceDim + iDim] += wtVertex * gravVec[iDim];
-      PetscLogFlops(numBasis*spaceDim*2 + numBasis*spaceDim*2);
-    } // if
-
-    // Compute action for inertial terms
-    const PylithScalar wtVertex = density[0] * volume / 16.0;
-    for (int iBasis = 0; iBasis < numBasis; ++iBasis)
-      for (int jBasis = 0; jBasis < numBasis; ++jBasis)
-        for (int iDim = 0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis*spaceDim+iDim] -= 
-	      wtVertex * accCell[jBasis*spaceDim+iDim];
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(3 + numBasis*numBasis*spaceDim*2);
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(stressEvent);
-#endif
-
-    // Numerical damping. Compute displacements adjusted by velocity
-    // times normalized viscosity.
-    dispAdjCell = dispCell + viscosity * velCell;
-
-    // Compute B(transpose) * sigma, first computing strains
-    const PylithScalar x0 = coordinatesCell[0];
-    const PylithScalar y0 = coordinatesCell[1];
-    const PylithScalar z0 = coordinatesCell[2];
-
-    const PylithScalar x1 = coordinatesCell[3];
-    const PylithScalar y1 = coordinatesCell[4];
-    const PylithScalar z1 = coordinatesCell[5];
-
-    const PylithScalar x2 = coordinatesCell[6];
-    const PylithScalar y2 = coordinatesCell[7];
-    const PylithScalar z2 = coordinatesCell[8];
-
-    const PylithScalar x3 = coordinatesCell[9];
-    const PylithScalar y3 = coordinatesCell[10];
-    const PylithScalar z3 = coordinatesCell[11];
-
-    const PylithScalar scaleB = 6.0 * volume;
-    const PylithScalar b1 = (y1*(z3-z2)-y2*z3+y3*z2-(y3-y2)*z1) / scaleB;
-    const PylithScalar c1 = (-x1*(z3-z2)+x2*z3-x3*z2-(x2-x3)*z1) / scaleB;
-    const PylithScalar d1 = (-x2*y3-x1*(y2-y3)+x3*y2+(x2-x3)*y1) / scaleB;
-
-    const PylithScalar b2 = (-y0*z3-y2*(z0-z3)+(y0-y3)*z2+y3*z0) / scaleB;
-    const PylithScalar c2 = (x0*z3+x2*(z0-z3)+(x3-x0)*z2-x3*z0) / scaleB;
-    const PylithScalar d2 = (x2*(y3-y0)-x0*y3-(x3-x0)*y2+x3*y0) / scaleB;
-
-    const PylithScalar b3 = (-(y1-y0)*z3+y3*(z1-z0)-y0*z1+y1*z0) / scaleB;
-    const PylithScalar c3 = (-(x0-x1)*z3-x3*(z1-z0)+x0*z1-x1*z0) / scaleB;
-    const PylithScalar d3 = ((x0-x1)*y3-x0*y1-x3*(y0-y1)+x1*y0) / scaleB;
-
-    const PylithScalar b4 = (-y0*(z2-z1)+y1*z2-y2*z1+(y2-y1)*z0) / scaleB;
-    const PylithScalar c4 = (x0*(z2-z1)-x1*z2+x2*z1+(x1-x2)*z0) / scaleB;
-    const PylithScalar d4 = (x1*y2+x0*(y1-y2)-x2*y1-(x1-x2)*y0) / scaleB;
-
-    assert(strainCell.size() == 6);
-    strainCell[0] = 
-      b1 * dispAdjCell[0] + b2 * dispAdjCell[3] + 
-      b3 * dispAdjCell[6] + b4 * dispAdjCell[9];
-    strainCell[1] = 
-      c3 * dispAdjCell[7] + c2 * dispAdjCell[4] + 
-      c4 * dispAdjCell[10] + c1 * dispAdjCell[1];
-    strainCell[2] = 
-      d3 * dispAdjCell[8] + d2 * dispAdjCell[5] + 
-      d1 * dispAdjCell[2] + d4 * dispAdjCell[11];
-    strainCell[3] = 
-      (c4 * dispAdjCell[9] + b3 * dispAdjCell[7] + 
-       c3 * dispAdjCell[6] + b2 * dispAdjCell[4] + 
-       c2 * dispAdjCell[3] + b4 * dispAdjCell[10] + 
-       b1 * dispAdjCell[1] + c1 * dispAdjCell[0]) / 2.0;
-    strainCell[4] = 
-      (c3 * dispAdjCell[8] + d3 * dispAdjCell[7] + 
-       c2 * dispAdjCell[5] + d2 * dispAdjCell[4] +
-       c1 * dispAdjCell[2] + c4 * dispAdjCell[11] + 
-       d4 * dispAdjCell[10] + d1 * dispAdjCell[1]) / 2.0;
-    strainCell[5] = 
-      (d4 * dispAdjCell[9] + b3 * dispAdjCell[8] + 
-       d3 * dispAdjCell[6] + b2 * dispAdjCell[5] + 
-       d2 * dispAdjCell[3] + b1 * dispAdjCell[2] + 
-       b4 * dispAdjCell[11] + d1 * dispAdjCell[0]) / 2.0;
-
-    const scalar_array& stressCell = _material->calcStress(strainCell, false);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(196);
-    _logger->eventEnd(stressEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    assert(_cellVector.size() == 12);
-    assert(stressCell.size() == 6);
-    _cellVector[0] -= (d1*stressCell[5]+c1*stressCell[3]+b1*stressCell[0]) * volume;
-    _cellVector[1] -= (d1*stressCell[4]+b1*stressCell[3]+c1*stressCell[1]) * volume;
-    _cellVector[2] -= (b1*stressCell[5]+c1*stressCell[4]+d1*stressCell[2]) * volume;
-    _cellVector[3] -= (d2*stressCell[5]+c2*stressCell[3]+b2*stressCell[0]) * volume;
-    _cellVector[4] -= (d2*stressCell[4]+b2*stressCell[3]+c2*stressCell[1]) * volume;
-    _cellVector[5] -= (b2*stressCell[5]+c2*stressCell[4]+d2*stressCell[2]) * volume;
-    _cellVector[6] -= (d3*stressCell[5]+c3*stressCell[3]+b3*stressCell[0]) * volume;
-    _cellVector[7] -= (d3*stressCell[4]+b3*stressCell[3]+c3*stressCell[1]) * volume;
-    _cellVector[8] -= (b3*stressCell[5]+c3*stressCell[4]+d3*stressCell[2]) * volume;
-    _cellVector[9] -= (d4*stressCell[5]+c4*stressCell[3]+b4*stressCell[0]) * volume;
-    _cellVector[10] -= (d4*stressCell[4]+b4*stressCell[3]+c4*stressCell[1]) * volume;
-    _cellVector[11] -= (b4*stressCell[5]+c4*stressCell[4]+d4*stressCell[2]) * volume;
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(84);
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-
-    // Assemble cell contribution into field
-    residualVisitor.clear();
-    sieveMesh->updateClosure(*c_iter, residualVisitor);
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*(3 + numBasis*numBasis*spaceDim*2 + 196+84));
-  _logger->eventEnd(computeEvent);
-#endif
-} // integrateResidual
-
-// ----------------------------------------------------------------------
-// Integrate constributions to residual term (r) for operator.
-void
-pylith::feassemble::ElasticityExplicitTet4::integrateResidualLumped(
         const topology::Field<topology::Mesh>& residual,
         const PylithScalar t,
         topology::SolutionFields* const fields)
-{ // integrateResidualLumped
+{ // integrateResidual
   /// Member prototype for _elasticityResidualXD()
   typedef void (pylith::feassemble::ElasticityExplicitTet4::*elasticityResidual_fn_type)
     (const scalar_array&);
@@ -753,7 +446,7 @@
   PetscLogFlops(cells->size()*(2 + numBasis*spaceDim*2 + 196+84));
   _logger->eventEnd(computeEvent);
 #endif
-} // integrateResidualLumped
+} // integrateResidual
 
 // ----------------------------------------------------------------------
 // Compute matrix associated with operator.
@@ -763,156 +456,15 @@
 					const PylithScalar t,
 					topology::SolutionFields* fields)
 { // integrateJacobian
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != jacobian);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIJ setup");
-  const int geometryEvent = _logger->eventId("ElIJ geometry");
-  const int computeEvent = _logger->eventId("ElIJ compute");
-  const int restrictEvent = _logger->eventId("ElIJ restrict");
-  const int stateVarsEvent = _logger->eventId("ElIJ stateVars");
-  const int updateEvent = _logger->eventId("ElIJ update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  const int tensorSize = _material->tensorSize();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Don't know how to integrate elasticity " \
-			   "contribution to Jacobian matrix for cells with " \
-			   "different dimensions than the spatial dimension.");
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array dispCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = 
-    fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-
-  // Get sparse matrix
-  const PetscMat jacobianMat = jacobian->matrix();
-  assert(0 != jacobianMat);
-
-  // Get parameters used in integration.
-  const PylithScalar dt = _dt;
-  const PylithScalar dt2 = dt*dt;
-  assert(dt > 0);
-
-  const ALE::Obj<SieveMesh::order_type>& globalOrder = 
-    sieveMesh->getFactory()->getGlobalOrder(sieveMesh, "default", dispSection);
-  assert(!globalOrder.isNull());
-  // We would need to request unique points here if we had an interpolated mesh
-  IndicesVisitor jacobianVisitor(*dispSection, *globalOrder,
-				 (int) pow(sieveMesh->getSieve()->getMaxConeSize(),
-					   sieveMesh->depth())*spaceDim);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-
-    // Compute geometry information for current cell
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    const PylithScalar volume = _volume(coordinatesCell);
-    assert(volume > 0.0);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    // Reset element matrix to zero
-    _resetCellMatrix();
-
-    // Get material physical properties at quadrature points for this cell
-    const scalar_array& density = _material->calcDensity();
-    assert(density.size() == 1);
-
-    // Compute Jacobian for inertial terms
-    const PylithScalar wtVertex = density[0] * volume / (16.0 * dt2);
-    for (int iBasis = 0; iBasis < numBasis; ++iBasis)
-      for (int jBasis = 0; jBasis < numBasis; ++jBasis)
-	for (int iDim=0; iDim < spaceDim; ++iDim) {
-	  const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
-	  const int jBlock = (jBasis*spaceDim + iDim);
-	  _cellMatrix[iBlock+jBlock] += wtVertex;
-	} // for
-    
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(numQuadPts*(3+numBasis*numBasis*spaceDim*1));
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-    
-    // Assemble cell contribution into PETSc matrix.
-    jacobianVisitor.clear();
-    PetscErrorCode err = updateOperator(jacobianMat, *sieveMesh->getSieve(),
-					jacobianVisitor, *c_iter,
-					&_cellMatrix[0], ADD_VALUES);
-    CHECK_PETSC_ERROR_MSG(err, "Update to PETSc Mat failed.");
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*(3+numBasis*numBasis*spaceDim*1));
-  _logger->eventEnd(computeEvent);
-#endif
-
-  _needNewJacobian = false;
-  _material->resetNeedNewJacobian();
+  throw std::logic_error("ElasticityExplicit::integrateJacobian() not implemented. Use integrateJacobian(lumped) instead.");
 } // integrateJacobian
 
 // ----------------------------------------------------------------------
 // Compute matrix associated with operator.
 void
-pylith::feassemble::ElasticityExplicitTet4::integrateJacobian(
-			    topology::Field<topology::Mesh>* jacobian,
-			    const PylithScalar t,
-			    topology::SolutionFields* fields)
+pylith::feassemble::ElasticityExplicitTet4::integrateJacobian(topology::Field<topology::Mesh>* jacobian,
+							      const PylithScalar t,
+							      topology::SolutionFields* fields)
 { // integrateJacobian
   assert(0 != _quadrature);
   assert(0 != _material);

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTet4.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -115,30 +115,9 @@
 			 const PylithScalar t,
 			 topology::SolutionFields* const fields);
 
-  /** Integrate contributions to residual term (r) for operator.
-   *
-   * @param residual Field containing values for residual
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateResidualLumped(const topology::Field<topology::Mesh>& residual,
-       const PylithScalar t,
-       topology::SolutionFields* const fields);
-
   /** Integrate contributions to Jacobian matrix (A) associated with
    * operator.
    *
-   * @param jacobian Sparse matrix for Jacobian of system.
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateJacobian(topology::Jacobian* jacobian,
-			 const PylithScalar t,
-			 topology::SolutionFields* const fields);
-
-  /** Integrate contributions to Jacobian matrix (A) associated with
-   * operator.
-   *
    * @param jacobian Diagonal matrix (as field) for Jacobian of system.
    * @param t Current time
    * @param fields Solution fields
@@ -193,6 +172,11 @@
   /// Not implemented
   const ElasticityExplicitTet4& operator=(const ElasticityExplicitTet4&);
 
+  /// Not implemented.
+  void integrateJacobian(topology::Jacobian*,
+			 const PylithScalar,
+			 topology::SolutionFields* const);
+
 }; // ElasticityExplicitTet4
 
 #endif // pylith_feassemble_elasticityexplicittet4_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -113,281 +113,10 @@
 // ----------------------------------------------------------------------
 // Integrate constributions to residual term (r) for operator.
 void
-pylith::feassemble::ElasticityExplicitTri3::integrateResidual(
-			  const topology::Field<topology::Mesh>& residual,
-			  const PylithScalar t,
-			  topology::SolutionFields* const fields)
+pylith::feassemble::ElasticityExplicitTri3::integrateResidual(const topology::Field<topology::Mesh>& residual,
+							      const PylithScalar t,
+							      topology::SolutionFields* const fields)
 { // integrateResidual
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != _logger);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIR setup");
-  const int geometryEvent = _logger->eventId("ElIR geometry");
-  const int computeEvent = _logger->eventId("ElIR compute");
-  const int restrictEvent = _logger->eventId("ElIR restrict");
-  const int stateVarsEvent = _logger->eventId("ElIR stateVars");
-  const int stressEvent = _logger->eventId("ElIR stress");
-  const int updateEvent = _logger->eventId("ElIR update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  assert(_quadrature->numQuadPts() == _numQuadPts);
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == _numQuadPts);
-  assert(_quadrature->numBasis() == _numBasis);
-  assert(_quadrature->spaceDim() == _spaceDim);
-  assert(_quadrature->cellDim() == _cellDim);
-  assert(_material->tensorSize() == _tensorSize);
-  const int spaceDim = _spaceDim;
-  const int cellDim = _cellDim;
-  const int tensorSize = _tensorSize;
-  const int numBasis = _numBasis;
-  const int numQuadPts = _numQuadPts;
-  /** :TODO:
-   *
-   * If cellDim and spaceDim are different, we need to transform
-   * displacements into cellDim, compute action, and transform result
-   * back into spaceDim. We get this information from the Jacobian and
-   * inverse of the Jacobian.
-   */
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
-
-  // Allocate vectors for cell values.
-  scalar_array strainCell(numQuadPts*tensorSize);
-  strainCell = 0.0;
-  scalar_array gravVec(spaceDim);
-  scalar_array quadPtsGlobal(numQuadPts*spaceDim);
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array accCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& accSection = 
-    fields->get("acceleration(t)").section();
-  assert(!accSection.isNull());
-  RestrictVisitor accVisitor(*accSection, accCell.size(), &accCell[0]);
-
-  scalar_array velCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& velSection = 
-    fields->get("velocity(t)").section();
-  assert(!velSection.isNull());
-  RestrictVisitor velVisitor(*velSection, velCell.size(), &velCell[0]);
-
-  scalar_array dispCell(numBasis*spaceDim);
-  scalar_array dispAdjCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = 
-    fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-  RestrictVisitor dispVisitor(*dispSection, dispCell.size(), &dispCell[0]);
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  UpdateAddVisitor residualVisitor(*residualSection, &_cellVector[0]);
-  
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  assert(0 != _normalizer);
-  const PylithScalar lengthScale = _normalizer->lengthScale();
-  const PylithScalar gravityScale = 
-    _normalizer->pressureScale() / (_normalizer->lengthScale() *
-				    _normalizer->densityScale());
-
-  const PylithScalar dt = _dt;
-  assert(_normViscosity > 0.0);
-  assert(dt > 0);
-  const PylithScalar viscosity = dt*_normViscosity;
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-
-    // Compute geometry information for current cell
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    const PylithScalar area = _area(coordinatesCell);
-    assert(area > 0.0);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-    #if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(restrictEvent);
-#endif
-
-    // Reset element vector to zero
-    _resetCellVector();
-
-    // Restrict input fields to cell
-    accVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, accVisitor);
-    
-    velVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, velVisitor);
-
-    dispVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, dispVisitor);
-    
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(restrictEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    const scalar_array& density = _material->calcDensity();
-    assert(density.size() == 1);
-
-    // Compute body force vector if gravity is being used.
-    if (0 != _gravityField) {
-      const spatialdata::geocoords::CoordSys* cs = fields->mesh().coordsys();
-      assert(0 != cs);
-
-      quadPtsGlobal = 0.0;
-      for (int iBasis=0; iBasis < numBasis; ++iBasis)
-        for (int iDim=0; iDim < spaceDim; ++iDim)
-          quadPtsGlobal[iDim] += 
-	    coordinatesCell[iBasis*spaceDim+iDim] / numBasis;
-      _normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
-          lengthScale);
-
-      // Compute action for element body forces
-      spatialdata::spatialdb::SpatialDB* db = _gravityField;
-      const int err = db->query(&gravVec[0], gravVec.size(),
-        &quadPtsGlobal[0], spaceDim, cs);
-      if (err)
-        throw std::runtime_error("Unable to get gravity vector for point.");
-      _normalizer->nondimensionalize(&gravVec[0], gravVec.size(),
-          gravityScale);
-      const PylithScalar wtVertex = density[0] * area / 3.0;
-      for (int iBasis=0; iBasis < numBasis; ++iBasis)
-        for (int iDim=0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis * spaceDim + iDim] += wtVertex * gravVec[iDim];
-      PetscLogFlops(numBasis*spaceDim*2 + numBasis*spaceDim*2);
-    } // if
-
-    // Compute action for inertial terms
-    const PylithScalar wtVertex = density[0] * area / 9.0;
-    for (int iBasis = 0; iBasis < numBasis; ++iBasis)
-      for (int jBasis = 0; jBasis < numBasis; ++jBasis)
-        for (int iDim = 0; iDim < spaceDim; ++iDim)
-            _cellVector[iBasis*spaceDim+iDim] -= 
-	      wtVertex * accCell[jBasis*spaceDim+iDim];
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(3 + numBasis*numBasis*spaceDim*2);
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(stressEvent);
-#endif
-
-    // Numerical damping. Compute displacements adjusted by velocity
-    // times normalized viscosity.
-    dispAdjCell = dispCell + viscosity * velCell;
-
-    // Compute B(transpose) * sigma, first computing strains
-    const PylithScalar x0 = coordinatesCell[0];
-    const PylithScalar y0 = coordinatesCell[1];
-
-    const PylithScalar x1 = coordinatesCell[2];
-    const PylithScalar y1 = coordinatesCell[3];
-
-    const PylithScalar x2 = coordinatesCell[4];
-    const PylithScalar y2 = coordinatesCell[5];
-
-    const PylithScalar scaleB = 2.0 * area;
-    const PylithScalar b0 = (y1 - y2) / scaleB;
-    const PylithScalar c0 = (x2 - x1) / scaleB;
-
-    const PylithScalar b1 = (y2 - y0) / scaleB;
-    const PylithScalar c1 = (x0 - x2) / scaleB;
-
-    const PylithScalar b2 = (y0 - y1) / scaleB;
-    const PylithScalar c2 = (x1 - x0) / scaleB;
-
-    assert(strainCell.size() == 3);
-    strainCell[0] = b2*dispAdjCell[4] + b1*dispAdjCell[2] + b0*dispAdjCell[0];
-    
-    strainCell[1] = c2*dispAdjCell[5] + c1*dispAdjCell[3] + c0*dispAdjCell[1];
-
-    strainCell[2] = (b2*dispAdjCell[5] + c2*dispAdjCell[4] + b1*dispAdjCell[3] + 
-		     c1*dispAdjCell[2] + b0*dispAdjCell[1] + c0*dispAdjCell[0]) / 2.0;
-
-
-    const scalar_array& stressCell = _material->calcStress(strainCell, false);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(34);
-    _logger->eventEnd(stressEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    assert(_cellVector.size() == 6);
-    assert(stressCell.size() == 3);
-    _cellVector[0] -= (c0*stressCell[2] + b0*stressCell[0]) * area;
-    _cellVector[1] -= (b0*stressCell[2] + c0*stressCell[1]) * area;
-    _cellVector[2] -= (c1*stressCell[2] + b1*stressCell[0]) * area;
-    _cellVector[3] -= (b1*stressCell[2] + c1*stressCell[1]) * area;
-    _cellVector[4] -= (c2*stressCell[2] + b2*stressCell[0]) * area;
-    _cellVector[5] -= (b2*stressCell[2] + c2*stressCell[1]) * area;
-
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(30);
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-
-    // Assemble cell contribution into field
-    residualVisitor.clear();
-    sieveMesh->updateClosure(*c_iter, residualVisitor);
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*(3 + numBasis*numBasis*spaceDim*2 + 34+30));
-  _logger->eventEnd(computeEvent);
-#endif
-} // integrateResidual
-
-// ----------------------------------------------------------------------
-// Integrate constributions to residual term (r) for operator.
-void
-pylith::feassemble::ElasticityExplicitTri3::integrateResidualLumped(
-        const topology::Field<topology::Mesh>& residual,
-        const PylithScalar t,
-        topology::SolutionFields* const fields)
-{ // integrateResidualLumped
   /// Member prototype for _elasticityResidualXD()
   typedef void (pylith::feassemble::ElasticityExplicitTri3::*elasticityResidual_fn_type)
     (const scalar_array&);
@@ -664,157 +393,16 @@
   PetscLogFlops(cells->size()*(2 + numBasis*spaceDim*2 + 34+30));
   _logger->eventEnd(computeEvent);
 #endif
-} // integrateResidualLumped
+} // integrateResidual
 
 // ----------------------------------------------------------------------
 // Compute matrix associated with operator.
 void
-pylith::feassemble::ElasticityExplicitTri3::integrateJacobian(
-					topology::Jacobian* jacobian,
-					const PylithScalar t,
-					topology::SolutionFields* fields)
+pylith::feassemble::ElasticityExplicitTri3::integrateJacobian(topology::Jacobian* jacobian,
+							      const PylithScalar t,
+							      topology::SolutionFields* fields)
 { // integrateJacobian
-  assert(0 != _quadrature);
-  assert(0 != _material);
-  assert(0 != jacobian);
-  assert(0 != fields);
-
-  const int setupEvent = _logger->eventId("ElIJ setup");
-  const int geometryEvent = _logger->eventId("ElIJ geometry");
-  const int computeEvent = _logger->eventId("ElIJ compute");
-  const int restrictEvent = _logger->eventId("ElIJ restrict");
-  const int stateVarsEvent = _logger->eventId("ElIJ stateVars");
-  const int updateEvent = _logger->eventId("ElIJ update");
-
-  _logger->eventBegin(setupEvent);
-
-  // Get cell geometry information that doesn't depend on cell
-  const int numQuadPts = _quadrature->numQuadPts();
-  const scalar_array& quadWts = _quadrature->quadWts();
-  assert(quadWts.size() == numQuadPts);
-  const int numBasis = _quadrature->numBasis();
-  const int spaceDim = _quadrature->spaceDim();
-  const int cellDim = _quadrature->cellDim();
-  const int tensorSize = _material->tensorSize();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Don't know how to integrate elasticity " \
-			   "contribution to Jacobian matrix for cells with " \
-			   "different dimensions than the spatial dimension.");
-
-  // Get cell information
-  const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const int materialId = _material->id();
-  const ALE::Obj<SieveMesh::label_sequence>& cells = 
-    sieveMesh->getLabelStratum("material-id", materialId);
-  assert(!cells.isNull());
-  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-
-  // Get sections
-  scalar_array dispCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& dispSection = 
-    fields->get("disp(t)").section();
-  assert(!dispSection.isNull());
-
-  // Get sparse matrix
-  const PetscMat jacobianMat = jacobian->matrix();
-  assert(0 != jacobianMat);
-
-  // Get parameters used in integration.
-  const PylithScalar dt = _dt;
-  const PylithScalar dt2 = dt*dt;
-  assert(dt > 0);
-
-  const ALE::Obj<SieveMesh::order_type>& globalOrder = 
-    sieveMesh->getFactory()->getGlobalOrder(sieveMesh, "default", dispSection);
-  assert(!globalOrder.isNull());
-  // We would need to request unique points here if we had an interpolated mesh
-  IndicesVisitor jacobianVisitor(*dispSection, *globalOrder,
-				 (int) pow(sieveMesh->getSieve()->getMaxConeSize(),
-					   sieveMesh->depth())*spaceDim);
-
-  scalar_array coordinatesCell(numBasis*spaceDim);
-  const ALE::Obj<RealSection>& coordinates = 
-    sieveMesh->getRealSection("coordinates");
-  assert(!coordinates.isNull());
-  RestrictVisitor coordsVisitor(*coordinates, 
-				coordinatesCell.size(), &coordinatesCell[0]);
-
-  _logger->eventEnd(setupEvent);
-#if !defined(DETAILED_EVENT_LOGGING)
-  _logger->eventBegin(computeEvent);
-#endif
-
-  // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
-       c_iter != cellsEnd;
-       ++c_iter) {
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventBegin(geometryEvent);
-#endif
-
-    // Compute geometry information for current cell
-    coordsVisitor.clear();
-    sieveMesh->restrictClosure(*c_iter, coordsVisitor);
-    const PylithScalar area = _area(coordinatesCell);
-    assert(area > 0.0);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(geometryEvent);
-    _logger->eventBegin(stateVarsEvent);
-#endif
-
-    // Get state variables for cell.
-    _material->retrievePropsAndVars(*c_iter);
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(stateVarsEvent);
-    _logger->eventBegin(computeEvent);
-#endif
-
-    // Reset element matrix to zero
-    _resetCellMatrix();
-
-    // Get material physical properties at quadrature points for this cell
-    const scalar_array& density = _material->calcDensity();
-    assert(density.size() == 1);
-
-    // Compute Jacobian for inertial terms
-    const PylithScalar wtVertex = density[0] * area / (9.0 * dt2);
-    for (int iBasis = 0; iBasis < numBasis; ++iBasis)
-      for (int jBasis = 0; jBasis < numBasis; ++jBasis)
-	for (int iDim=0; iDim < spaceDim; ++iDim) {
-	  const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
-	  const int jBlock = (jBasis*spaceDim + iDim);
-	  _cellMatrix[iBlock+jBlock] += wtVertex;
-	} // for
-    
-#if defined(DETAILED_EVENT_LOGGING)
-    PetscLogFlops(numQuadPts*(3+numBasis*numBasis*spaceDim*1));
-    _logger->eventEnd(computeEvent);
-    _logger->eventBegin(updateEvent);
-#endif
-    
-    // Assemble cell contribution into PETSc matrix.
-    jacobianVisitor.clear();
-    PetscErrorCode err = updateOperator(jacobianMat, *sieveMesh->getSieve(),
-					jacobianVisitor, *c_iter,
-					&_cellMatrix[0], ADD_VALUES);
-    CHECK_PETSC_ERROR_MSG(err, "Update to PETSc Mat failed.");
-
-#if defined(DETAILED_EVENT_LOGGING)
-    _logger->eventEnd(updateEvent);
-#endif
-  } // for
-
-#if !defined(DETAILED_EVENT_LOGGING)
-  PetscLogFlops(cells->size()*(3+numBasis*numBasis*spaceDim*1));
-  _logger->eventEnd(computeEvent);
-#endif
-
-  _needNewJacobian = false;
-  _material->resetNeedNewJacobian();
+  throw std::logic_error("ElasticityExplicit::integrateJacobian() not implemented. Use integrateJacobian(lumped) instead.");
 } // integrateJacobian
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/ElasticityExplicitTri3.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -115,30 +115,9 @@
 			 const PylithScalar t,
 			 topology::SolutionFields* const fields);
 
-  /** Integrate contributions to residual term (r) for operator.
-   *
-   * @param residual Field containing values for residual
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateResidualLumped(const topology::Field<topology::Mesh>& residual,
-       const PylithScalar t,
-       topology::SolutionFields* const fields);
-
   /** Integrate contributions to Jacobian matrix (A) associated with
    * operator.
    *
-   * @param jacobian Sparse matrix for Jacobian of system.
-   * @param t Current time
-   * @param fields Solution fields
-   */
-  void integrateJacobian(topology::Jacobian* jacobian,
-			 const PylithScalar t,
-			 topology::SolutionFields* const fields);
-
-  /** Integrate contributions to Jacobian matrix (A) associated with
-   * operator.
-   *
    * @param jacobian Diagonal matrix (as field) for Jacobian of system.
    * @param t Current time
    * @param fields Solution fields
@@ -193,6 +172,11 @@
   /// Not implemented
   const ElasticityExplicitTri3& operator=(const ElasticityExplicitTri3&);
 
+  /// Not implemented.
+  void integrateJacobian(topology::Jacobian*,
+			 const PylithScalar,
+			 topology::SolutionFields* const);
+
 }; // ElasticityExplicitTri3
 
 #endif // pylith_feassemble_elasticityexplicittri3_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -271,8 +271,8 @@
 	<< ".";
     throw std::runtime_error(msg.str());
   } // if
+
   const int numCorners = _quadrature->refGeometry().numCorners();
-
   const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
   assert(!sieveMesh.isNull());
   const ALE::Obj<SieveMesh::label_sequence>& cells = 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticity.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -237,15 +237,6 @@
 			  const int numBasis,
 			  const int numQuadPts);
 
-// PROTECTED MEMBERS ////////////////////////////////////////////////////
-protected :
-
-  /// Elastic material associated with integrator
-  materials::ElasticMaterial* _material;
-
-  /// Buffers for output.
-  topology::Fields<topology::Field<topology::Mesh> >* _outputFields;
-
 // PROTECTED TYPEDEFS ///////////////////////////////////////////////////
 protected :
 
@@ -256,6 +247,15 @@
   typedef pylith::topology::Field<pylith::topology::Mesh>::UpdateAddVisitor UpdateAddVisitor;
   typedef ALE::ISieveVisitor::IndicesVisitor<RealSection,SieveMesh::order_type,PylithInt> IndicesVisitor;
 
+// PROTECTED MEMBERS ////////////////////////////////////////////////////
+protected :
+
+  /// Elastic material associated with integrator
+  materials::ElasticMaterial* _material;
+
+  /// Buffers for output.
+  topology::Fields<topology::Field<topology::Mesh> >* _outputFields;
+
 // NOT IMPLEMENTED //////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticityLgDeform.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticityLgDeform.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/IntegratorElasticityLgDeform.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -35,8 +35,7 @@
  * time integration of the elasticity equation for large rigid body
  * rotations and small strains.
  */
-class pylith::feassemble::IntegratorElasticityLgDeform : 
-  public IntegratorElasticity
+class pylith::feassemble::IntegratorElasticityLgDeform : public IntegratorElasticity
 { // IntegratorElasticityLgDeform
   friend class TestIntegratorElasticityLgDeform; // unit testing
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/ElasticMaterial.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/ElasticMaterial.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -70,6 +70,7 @@
 void
 pylith::materials::ElasticMaterial::deallocate(void)
 { // deallocate
+  Material::deallocate();
   delete _initialFields; _initialFields = 0;
 
   _dbInitialStress = 0; // :TODO: Use shared pointer.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/Material.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/Material.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/materials/Material.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -109,9 +109,8 @@
 // ----------------------------------------------------------------------
 // Get physical property parameters and initial state (if used) from database.
 void
-pylith::materials::Material::initialize(
-		     const topology::Mesh& mesh,
-		     feassemble::Quadrature<topology::Mesh>* quadrature)
+pylith::materials::Material::initialize(const topology::Mesh& mesh,
+					feassemble::Quadrature<topology::Mesh>* quadrature)
 { // initialize
   assert(0 != _dbProperties);
   assert(0 != quadrature);

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -50,8 +50,9 @@
 void
 pylith::meshio::DataWriterHDF5<mesh_type, field_type>::deallocate(void)
 { // deallocate
+  DataWriter<mesh_type, field_type>::deallocate();
+
   PetscErrorCode err = 0;
-
   err = PetscViewerDestroy(&_viewer); CHECK_PETSC_ERROR(err);
   err = VecDestroy(&_tstamp); CHECK_PETSC_ERROR(err);
 } // deallocate

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterHDF5Ext.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -50,12 +50,14 @@
 void
 pylith::meshio::DataWriterHDF5Ext<mesh_type,field_type>::deallocate(void)
 { // deallocate
+  DataWriter<mesh_type, field_type>::deallocate();
+
+  PetscErrorCode err = 0;
   const typename dataset_type::const_iterator& dEnd = _datasets.end();
   for (typename dataset_type::iterator d_iter=_datasets.begin();
        d_iter != dEnd;
        ++d_iter) {
-    PetscErrorCode err = PetscViewerDestroy(&d_iter->second.viewer);
-    CHECK_PETSC_ERROR(err);
+    err = PetscViewerDestroy(&d_iter->second.viewer);CHECK_PETSC_ERROR(err);
   } // for
 } // deallocate
   

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterVTK.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterVTK.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriterVTK.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -67,9 +67,10 @@
 void
 pylith::meshio::DataWriterVTK<mesh_type, field_type>::deallocate(void)
 { // deallocate
-  if (0 != _viewer)
-    PetscViewerDestroy(&_viewer);
-  _viewer = 0;
+  DataWriter<mesh_type, field_type>::deallocate();
+
+  PetscErrorCode err = 0;
+  err = PetscViewerDestroy(&_viewer);CHECK_PETSC_ERROR(err);
 } // deallocate
   
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -51,10 +51,18 @@
 // Destructor
 pylith::meshio::ExodusII::~ExodusII(void)
 { // destructor
-  close();
+  deallocate();
 } // destructor
 
 // ----------------------------------------------------------------------
+// Deallocate data structures.
+void
+pylith::meshio::ExodusII::deallocate(void)
+{ // deallocate
+  close();
+} // deallocate
+
+// ----------------------------------------------------------------------
 // Set filename.
 void
 pylith::meshio::ExodusII::filename(const char* name)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/ExodusII.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -56,6 +56,9 @@
   /// Destructor
   ~ExodusII(void);
 
+  /// Deallocate data structures.
+  void deallocate(void);
+
   /** Set filename.
    *
    * @param filename Name of file

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/OutputSolnPoints.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/OutputSolnPoints.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/OutputSolnPoints.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -38,8 +38,7 @@
 /** @brief C++ object for managing output of finite-element data over
  * a subdomain.
  */
-class pylith::meshio::OutputSolnPoints : 
-  public OutputManager<topology::Mesh, topology::Field<topology::Mesh> >
+class pylith::meshio::OutputSolnPoints : public OutputManager<topology::Mesh, topology::Field<topology::Mesh> >
 { // OutputSolnPoints
   friend class TestOutputSolnPoints; // unit testing
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Explicit.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Explicit.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Explicit.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -36,7 +36,6 @@
 // Destructor
 pylith::problems::Explicit::~Explicit(void)
 { // destructor
-  deallocate();
 } // destructor
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -262,54 +262,6 @@
 } // reformResidual
 
 // ----------------------------------------------------------------------
-// Reform system residual.
-void
-pylith::problems::Formulation::reformResidualLumped(const PetscVec* tmpResidualVec,
-                const PetscVec* tmpSolutionVec)
-{ // reformResidualLumped
-  assert(0 != _fields);
-
-  // Update section view of field.
-  if (0 != tmpSolutionVec) {
-    topology::Field<topology::Mesh>& solution = _fields->solution();
-    solution.scatterVectorToSection(*tmpSolutionVec);
-  } // if
-
-  // Update rate fields (must be consistent with current solution).
-  calcRateFields();  
-
-  // Set residual to zero.
-  topology::Field<topology::Mesh>& residual = _fields->get("residual");
-  residual.zero();
-
-  // Add in contributions that require assembly.
-  int numIntegrators = _meshIntegrators.size();
-  assert(numIntegrators > 0); // must have at least 1 bulk integrator
-  for (int i=0; i < numIntegrators; ++i) {
-    _meshIntegrators[i]->timeStep(_dt);
-    _meshIntegrators[i]->integrateResidualLumped(residual, _t, _fields);
-  } // for
-  numIntegrators = _submeshIntegrators.size();
-  for (int i=0; i < numIntegrators; ++i) {
-    _submeshIntegrators[i]->timeStep(_dt);
-    _submeshIntegrators[i]->integrateResidualLumped(residual, _t, _fields);
-  } // for
-
-  // Assemble residual.
-  residual.complete();
-
-  // Update PETSc view of residual
-  if (0 != tmpResidualVec)
-    residual.scatterSectionToVector(*tmpResidualVec);
-  else
-    residual.scatterSectionToVector();
-
-  // TODO: Move this to SolverLinear
-  if (0 != tmpResidualVec)
-    VecScale(*tmpResidualVec, -1.0);
-} // reformResidualLumped
-
-// ----------------------------------------------------------------------
 // Reform system Jacobian.
 void
 pylith::problems::Formulation::reformJacobian(const PetscVec* tmpSolutionVec)
@@ -362,7 +314,7 @@
 // Reform system Jacobian.
 void
 pylith::problems::Formulation::reformJacobianLumped(void)
-{ // reformJacobian
+{ // reformJacobianLumped
   assert(0 != _jacobianLumped);
   assert(0 != _fields);
 
@@ -380,7 +332,7 @@
   // Assemble jacbian.
   _jacobianLumped->complete();
 
-} // reformJacobian
+} // reformJacobianLumped
 
 // ----------------------------------------------------------------------
 // Constrain solution space.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Formulation.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -165,14 +165,6 @@
   void reformResidual(const PetscVec* tmpResidualVec =0,
 		      const PetscVec* tmpSolutionVec =0);
   
-  /** Reform system residual.
-   *
-   * @param tmpResidualVec Temporary PETSc vector for residual.
-   * @param tmpSolutionVec Temporary PETSc vector for solution.
-   */
-  void reformResidualLumped(const PetscVec* tmpResidualVec =0,
-          const PetscVec* tmpSolutionVec =0);
-
   /* Reform system Jacobian.
    *
    * @param tmpSolveSolnVec Temporary PETSc vector for solution.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Implicit.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Implicit.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/problems/Implicit.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -36,7 +36,6 @@
 // Destructor
 pylith::problems::Implicit::~Implicit(void)
 { // destructor
-  deallocate();
 } // destructor
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -45,9 +45,17 @@
 // Destructor
 pylith::topology::RefineUniform::~RefineUniform(void)
 { // destructor
+  deallocate();
 } // destructor
 
 // ----------------------------------------------------------------------
+// Deallocate data structures.
+void
+pylith::topology::RefineUniform::deallocate(void)
+{ // deallocate
+} // deallocate
+
+// ----------------------------------------------------------------------
 // Refine mesh.
 void
 pylith::topology::RefineUniform::refine(Mesh* const newMesh,

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/topology/RefineUniform.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,9 @@
   /// Destructor
   ~RefineUniform(void);
 
+  /// Deallocate data structures.
+  void deallocate(void);
+
   /** Refine mesh.
    *
    * @param newMesh Refined mesh (result).

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicit.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicit.i	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicit.i	2012-09-20 21:37:41 UTC (rev 20751)
@@ -70,27 +70,6 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
       
-      /** Integrate contributions to residual term (r) for operator.
-       *
-       * @param residual Field containing values for residual
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateResidualLumped(const pylith::topology::Field<pylith::topology::Mesh>& residual,
-				   const PylithScalar t,
-				   pylith::topology::SolutionFields* const fields);
-
-      /** Integrate contributions to Jacobian matrix (A) associated with
-       * operator.
-       *
-       * @param jacobian Sparse matrix for Jacobian of system.
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateJacobian(pylith::topology::Jacobian* jacobian,
-			     const PylithScalar t,
-			     pylith::topology::SolutionFields* const fields);
-
       /** Integrate contributions to Jacobian matrix (A) associated
        * with operator that require assembly across cells, vertices,
        * or processors.
@@ -103,6 +82,15 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
 
+      // NOT IMPLEMENTED //////////////////////////////////////////////////
+    private :
+
+      /// Not implemented.
+      void integrateJacobian(topology::Jacobian*,
+			     const PylithScalar,
+			     topology::SolutionFields* const);
+
+
     }; // ElasticityExplicit
 
   } // feassemble

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitLgDeform.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitLgDeform.i	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitLgDeform.i	2012-09-20 21:37:41 UTC (rev 20751)
@@ -61,27 +61,6 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
 
-      /** Integrate contributions to residual term (r) for operator.
-       *
-       * @param residual Field containing values for residual
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateResidualLumped(const pylith::topology::Field<pylith::topology::Mesh>& residual,
-				   const PylithScalar t,
-				   pylith::topology::SolutionFields* const fields);
-
-      /** Integrate contributions to Jacobian matrix (A) associated with
-       * operator.
-       *
-       * @param jacobian Sparse matrix for Jacobian of system.
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateJacobian(pylith::topology::Jacobian* jacobian,
-			     const PylithScalar t,
-			     pylith::topology::SolutionFields* const fields);
-
       /** Integrate contributions to Jacobian matrix (A) associated
        * with operator that require assembly across cells, vertices,
        * or processors.
@@ -94,6 +73,15 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
 
+      // NOT IMPLEMENTED //////////////////////////////////////////////////
+    private :
+
+      /// Not implemented.
+      void integrateJacobian(topology::Jacobian*,
+			     const PylithScalar,
+			     topology::SolutionFields* const);
+
+
     }; // ElasticityExplicitLgDeform
 
   } // feassemble

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTet4.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTet4.i	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTet4.i	2012-09-20 21:37:41 UTC (rev 20751)
@@ -70,27 +70,6 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
       
-      /** Integrate contributions to residual term (r) for operator.
-       *
-       * @param residual Field containing values for residual
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateResidualLumped(const pylith::topology::Field<pylith::topology::Mesh>& residual,
-				   const PylithScalar t,
-				   pylith::topology::SolutionFields* const fields);
-
-      /** Integrate contributions to Jacobian matrix (A) associated with
-       * operator.
-       *
-       * @param jacobian Sparse matrix for Jacobian of system.
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateJacobian(pylith::topology::Jacobian* jacobian,
-			     const PylithScalar t,
-			     pylith::topology::SolutionFields* const fields);
-
       /** Integrate contributions to Jacobian matrix (A) associated
        * with operator that require assembly across cells, vertices,
        * or processors.
@@ -109,6 +88,15 @@
        */
       void verifyConfiguration(const pylith::topology::Mesh& mesh) const;
       
+      // NOT IMPLEMENTED //////////////////////////////////////////////////
+    private :
+
+      /// Not implemented.
+      void integrateJacobian(topology::Jacobian*,
+			     const PylithScalar,
+			     topology::SolutionFields* const);
+
+
     }; // ElasticityExplicitTet4
 
   } // feassemble

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTri3.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTri3.i	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/feassemble/ElasticityExplicitTri3.i	2012-09-20 21:37:41 UTC (rev 20751)
@@ -70,27 +70,6 @@
 			     const PylithScalar t,
 			     pylith::topology::SolutionFields* const fields);
       
-      /** Integrate contributions to residual term (r) for operator.
-       *
-       * @param residual Field containing values for residual
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateResidualLumped(const pylith::topology::Field<pylith::topology::Mesh>& residual,
-				   const PylithScalar t,
-				   pylith::topology::SolutionFields* const fields);
-
-      /** Integrate contributions to Jacobian matrix (A) associated with
-       * operator.
-       *
-       * @param jacobian Sparse matrix for Jacobian of system.
-       * @param t Current time
-       * @param fields Solution fields
-       */
-      void integrateJacobian(pylith::topology::Jacobian* jacobian,
-			     const PylithScalar t,
-			     pylith::topology::SolutionFields* const fields);
-
       /** Integrate contributions to Jacobian matrix (A) associated
        * with operator that require assembly across cells, vertices,
        * or processors.
@@ -109,6 +88,15 @@
        */
       void verifyConfiguration(const pylith::topology::Mesh& mesh) const;
       
+      // NOT IMPLEMENTED //////////////////////////////////////////////////
+    private :
+
+      /// Not implemented.
+      void integrateJacobian(topology::Jacobian*,
+			     const PylithScalar,
+			     topology::SolutionFields* const);
+
+
     }; // ElasticityExplicitTri3
 
   } // feassemble

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/problems/Formulation.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/problems/Formulation.i	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/problems/Formulation.i	2012-09-20 21:37:41 UTC (rev 20751)
@@ -141,14 +141,6 @@
       void reformResidual(const PetscVec* tmpResidualVec =0,
 			  const PetscVec* tmpSolveSolnVec =0);
       
-      /** Reform system residual for case with lumped Jacobian.
-       *
-       * @param tmpResidualVec Temporary PETSc vector for residual.
-       * @param tmpSolveSolnVec Temporary PETSc vector for solution.
-       */
-      void reformResidualLumped(const PetscVec* tmpResidualVec =0,
-			  const PetscVec* tmpSolveSolnVec =0);
-      
       /* Reform system Jacobian.
        *
        * @param tmpSolveSolnVec Temporary PETSc vector for solution.

Modified: short/3D/PyLith/branches/v1.7-trunk/pylith/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/Makefile.am	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/Makefile.am	2012-09-20 21:37:41 UTC (rev 20751)
@@ -137,9 +137,8 @@
 	perf/Jacobian.py \
 	problems/__init__.py \
 	problems/Explicit.py \
-	problems/ExplicitLumped.py \
-	problems/ExplicitLumpedTri3.py \
-	problems/ExplicitLumpedTet4.py \
+	problems/ExplicitTri3.py \
+	problems/ExplicitTet4.py \
 	problems/ExplicitLgDeform.py \
 	problems/Formulation.py \
 	problems/Implicit.py \

Deleted: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,291 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-# 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-2012 University of California, Davis
-#
-# See COPYING for license information.
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/Explicit.py
-##
-## @brief Python Explicit object for solving equations using an
-## explicit formulation.
-##
-## Factory: pde_formulation
-
-from Formulation import Formulation
-from problems import Explicit as ModuleExplicit
-from pylith.utils.profiling import resourceUsageString
-
-# Explicit class
-class Explicit(Formulation, ModuleExplicit):
-  """
-  Python Explicit object for solving equations using an explicit
-  formulation.
-
-  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
-  where we want to solve for {u(t+dt)}, A(t) is usually constant
-  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
-  and {u(t-dt)}.
-
-  Jacobian: A(t)
-  solution: u(t+dt)
-  residual: b(t) - A(t) \hat u(t+dt)
-  constant: b(t)
-
-  Factory: pde_formulation.
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(Formulation.Inventory):
-    """
-    Python object for managing Formulation facilities and properties.
-    """
-
-    ## @class Inventory
-    ## Python object for managing Formulation facilities and properties.
-    ##
-    ## \b Properties
-    ## @li \b norm_viscosity Normalized viscosity for numerical damping.
-    ##
-    ## \b Facilities
-    ## @li None
-
-    import pyre.inventory
-
-    normViscosity = pyre.inventory.float("norm_viscosity", default=0.1)
-    normViscosity.meta['tip'] = "Normalized viscosity for numerical damping."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="explicit"):
-    """
-    Constructor.
-    """
-    Formulation.__init__(self, name)
-    ModuleExplicit.__init__(self)
-    self._loggingPrefix = "TSEx "
-    return
-
-
-  def elasticityIntegrator(self):
-    """
-    Get integrator for elastic material.
-    """
-    from pylith.feassemble.ElasticityExplicit import ElasticityExplicit
-    integrator = ElasticityExplicit()
-    integrator.normViscosity(self.normViscosity)
-    return integrator
-
-
-  def initialize(self, dimension, normalizer):
-    """
-    Initialize problem for explicit time integration.
-    """
-    logEvent = "%sinit" % self._loggingPrefix
-    self._eventLogger.eventBegin(logEvent)
-    
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    self._initialize(dimension, normalizer)
-
-    from pylith.utils.petsc import MemoryLogger
-    logger = MemoryLogger.singleton()
-    logger.setDebug(0)
-    logger.stagePush("Problem")
-
-    # Allocate other fields, reusing layout from dispIncr
-    if 0 == comm.rank:
-      self._info.log("Creating other fields.")
-    self.fields.add("disp(t-dt)", "displacement")
-    self.fields.add("velocity(t)", "velocity")
-    self.fields.add("acceleration(t)", "acceleration")
-    self.fields.copyLayout("dispIncr(t->t+dt)")
-    self._debug.log(resourceUsageString())
-
-    # Setup fields and set to zero
-    dispTmdt = self.fields.get("disp(t-dt)")
-    dispTmdt.zero()
-    dispT = self.fields.get("disp(t)")
-    dispT.zero()
-    residual = self.fields.get("residual")
-    residual.zero()
-    residual.createScatterMesh(residual.mesh())
-
-    lengthScale = normalizer.lengthScale()
-    timeScale = normalizer.timeScale()
-    velocityScale = lengthScale / timeScale
-    velocityT = self.fields.get("velocity(t)")
-    velocityT.scale(velocityScale.value)
-    velocityT.zero()
-
-    accelerationScale = velocityScale / timeScale
-    accelerationT = self.fields.get("acceleration(t)")
-    accelerationT.scale(accelerationScale.value)
-    accelerationT.zero()
-
-    self._debug.log(resourceUsageString())
-    logger.stagePop()
-
-    if 0 == comm.rank:
-      self._info.log("Creating Jacobian matrix.")
-    self._setJacobianMatrixType()
-    from pylith.topology.Jacobian import Jacobian
-    self.jacobian = Jacobian(self.fields.solution(),
-                             self.matrixType, self.blockMatrixOkay)
-    self.jacobian.zero() # TEMPORARY, to get correct memory usage
-    self._debug.log(resourceUsageString())
-
-    logger.stagePush("Problem")
-    if 0 == comm.rank:
-      self._info.log("Initializing solver.")
-    self.solver.initialize(self.fields, self.jacobian, self)
-    self._debug.log(resourceUsageString())
-
-    logger.stagePop()
-    logger.setDebug(0)
-    self._eventLogger.eventEnd(logEvent)
-    return
-
-
-  def prestep(self, t, dt):
-    """
-    Hook for doing stuff before advancing time step.
-    """
-    logEvent = "%sprestep" % self._loggingPrefix
-    self._eventLogger.eventBegin(logEvent)
-    
-    dispIncr = self.fields.get("dispIncr(t->t+dt)")
-    for constraint in self.constraints:
-      constraint.setFieldIncr(t, t+dt, dispIncr)
-
-    needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
-      integrator.timeStep(dt)
-      if integrator.needNewJacobian():
-        needNewJacobian = True
-    if needNewJacobian:
-      self._reformJacobian(t, dt)
-
-    self._eventLogger.eventEnd(logEvent)
-    return
-
-
-  def step(self, t, dt):
-    """
-    Advance to next time step.
-    """
-    logEvent = "%sstep" % self._loggingPrefix
-    self._eventLogger.eventBegin(logEvent)
-
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    self._reformResidual(t, dt)
-    
-    if 0 == comm.rank:
-      self._info.log("Solving equations.")
-    residual = self.fields.get("residual")
-    dispIncr = self.fields.get("dispIncr(t->t+dt)")
-    self.solver.solve(dispIncr, self.jacobian, residual)
-
-    self._eventLogger.eventEnd(logEvent)
-    return
-
-
-  def poststep(self, t, dt):
-    """
-    Hook for doing stuff after advancing time step.
-    """
-    logEvent = "%spoststep" % self._loggingPrefix
-    self._eventLogger.eventBegin(logEvent)
-    
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    # The velocity and acceleration at time t depends on the
-    # displacement at time t+dt, we want to output BEFORE updating the
-    # displacement fields so that the displacement, velocity, and
-    # acceleration files are all at time t.
-    if 0 == comm.rank:
-      self._info.log("Writing solution fields.")
-    for output in self.output.components():
-      output.writeData(t, self.fields)
-    self._writeData(t)
-
-    # Update displacement field from time t to time t+dt.
-    dispIncr = self.fields.get("dispIncr(t->t+dt)")
-    dispT = self.fields.get("disp(t)")
-    dispTmdt = self.fields.get("disp(t-dt)")
-
-    dispTmdt.copy(dispT)
-    dispT += dispIncr
-    dispIncr.zero()
-
-    # Complete post-step processing.
-    Formulation.poststep(self, t, dt)
-
-    self._eventLogger.eventEnd(logEvent)    
-    return
-
-
-  def prestepElastic(self, t, dt):
-    """
-    Hook for doing stuff before advancing time step.
-    """
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-    
-    if 0 == comm.rank:
-      self._info.log("Setting constraints.")
-    disp = self.fields.get("dispIncr(t->t+dt)")
-    disp.zero()
-    for constraint in self.constraints:
-      constraint.setField(t+dt, disp)
-
-    needNewJacobian = False
-    for integrator in self.integratorsMesh + self.integratorsSubMesh:
-      integrator.timeStep(dt)
-      if integrator.needNewJacobian():
-        needNewJacobian = True
-    if needNewJacobian:
-      self._reformJacobian(t, dt)
-
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set members based using inventory.
-    """
-    Formulation._configure(self)
-
-    self.normViscosity = self.inventory.normViscosity
-    return
-
-
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def pde_formulation():
-  """
-  Factory associated with Explicit.
-  """
-  return Explicit()
-
-
-# End of file 

Copied: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumped.py)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/Explicit.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,335 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+# 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-2012 University of California, Davis
+#
+# See COPYING for license information.
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/problems/Explicit.py
+##
+## @brief Python Explicit object for solving equations using an
+## explicit formulation with a lumped Jacobian matrix that is stored
+## as a Field.
+##
+## Factory: pde_formulation
+
+from Formulation import Formulation
+from problems import Explicit as ModuleExplicit
+from pylith.utils.profiling import resourceUsageString
+
+# Explicit class
+class Explicit(Formulation, ModuleExplicit):
+  """
+  Python Explicit object for solving equations using an explicit
+  formulation.
+
+  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
+  where we want to solve for {u(t+dt)}, A(t) is usually constant
+  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
+  and {u(t-dt)}.
+
+  Jacobian: A(t)
+  solution: u(t+dt)
+  residual: b(t) - A(t) \hat u(t+dt)
+  constant: b(t)
+
+  Factory: pde_formulation.
+  """
+
+  # INVENTORY //////////////////////////////////////////////////////////
+
+  class Inventory(Formulation.Inventory):
+    """
+    Python object for managing Explicit facilities and properties.
+
+    Provide appropriate solver for lumped Jacobian as the default.
+    """
+
+    ## @class Inventory
+    ## Python object for managing Explicit facilities and properties.
+    ##
+    ## \b Properties
+    ## @li \b norm_viscosity Normalized viscosity for numerical damping.
+    ##
+    ## \b Facilities
+    ## @li \b solver Algebraic solver.
+
+    import pyre.inventory
+
+    normViscosity = pyre.inventory.float("norm_viscosity", default=0.1)
+    normViscosity.meta['tip'] = "Normalized viscosity for numerical damping."
+
+    from SolverLumped import SolverLumped
+    solver = pyre.inventory.facility("solver", family="solver",
+                                     factory=SolverLumped)
+    solver.meta['tip'] = "Algebraic solver."
+
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="explicitlumped"):
+    """
+    Constructor.
+    """
+    Formulation.__init__(self, name)
+    ModuleExplicit.__init__(self)
+    self._loggingPrefix = "TSEx "
+    return
+
+
+  def elasticityIntegrator(self):
+    """
+    Get integrator for elastic material.
+    """
+    from pylith.feassemble.ElasticityExplicit import ElasticityExplicit
+    integrator = ElasticityExplicit()
+    integrator.normViscosity(self.normViscosity)
+    return integrator
+
+
+  def initialize(self, dimension, normalizer):
+    """
+    Initialize problem for explicit time integration.
+    """
+    logEvent = "%sinit" % self._loggingPrefix
+    self._eventLogger.eventBegin(logEvent)
+    
+    from pylith.mpi.Communicator import mpi_comm_world
+    comm = mpi_comm_world()
+
+    self._initialize(dimension, normalizer)
+
+    from pylith.utils.petsc import MemoryLogger
+    logger = MemoryLogger.singleton()
+    logger.setDebug(0)
+    logger.stagePush("Problem")
+
+    # Allocate other fields, reusing layout from dispIncr
+    if 0 == comm.rank:
+      self._info.log("Creating other fields.")
+    self.fields.add("disp(t-dt)", "displacement")
+    self.fields.add("velocity(t)", "velocity")
+    self.fields.add("acceleration(t)", "acceleration")
+    self.fields.copyLayout("dispIncr(t->t+dt)")
+    self._debug.log(resourceUsageString())
+
+    # Setup fields and set to zero
+    dispTmdt = self.fields.get("disp(t-dt)")
+    dispTmdt.zero()
+    dispT = self.fields.get("disp(t)")
+    dispT.zero()
+    residual = self.fields.get("residual")
+    residual.zero()
+    residual.createScatterMesh(residual.mesh())
+
+    lengthScale = normalizer.lengthScale()
+    timeScale = normalizer.timeScale()
+    velocityScale = lengthScale / timeScale
+    velocityT = self.fields.get("velocity(t)")
+    velocityT.scale(velocityScale.value)
+    velocityT.zero()
+
+    accelerationScale = velocityScale / timeScale
+    accelerationT = self.fields.get("acceleration(t)")
+    accelerationT.scale(accelerationScale.value)
+    accelerationT.zero()
+
+    self._debug.log(resourceUsageString())
+    logger.stagePop()
+
+    if 0 == comm.rank:
+      self._info.log("Creating lumped Jacobian matrix.")
+    from pylith.topology.topology import MeshField
+    jacobian = MeshField(self.mesh)
+    jacobian.newSection(jacobian.VERTICES_FIELD, dimension)
+    jacobian.allocate()
+    jacobian.label("jacobian")
+    jacobian.vectorFieldType(jacobian.VECTOR)
+    self.jacobian = jacobian
+    self._debug.log(resourceUsageString())
+
+    logger.stagePush("Problem")
+    if 0 == comm.rank:
+      self._info.log("Initializing solver.")
+    self.solver.initialize(self.fields, self.jacobian, self)
+    self._debug.log(resourceUsageString())
+
+    logger.stagePop()
+    logger.setDebug(0)
+    self._eventLogger.eventEnd(logEvent)
+    return
+
+
+  def prestep(self, t, dt):
+    """
+    Hook for doing stuff before advancing time step.
+    """
+    logEvent = "%sprestep" % self._loggingPrefix
+    self._eventLogger.eventBegin(logEvent)
+    
+    dispIncr = self.fields.get("dispIncr(t->t+dt)")
+    for constraint in self.constraints:
+      constraint.setFieldIncr(t, t+dt, dispIncr)
+
+    needNewJacobian = False
+    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+      integrator.timeStep(dt)
+      if integrator.needNewJacobian():
+        needNewJacobian = True
+    if needNewJacobian:
+      self._reformJacobian(t, dt)
+
+    self._eventLogger.eventEnd(logEvent)
+    return
+
+
+  def step(self, t, dt):
+    """
+    Advance to next time step.
+    """
+    logEvent = "%sstep" % self._loggingPrefix
+    self._eventLogger.eventBegin(logEvent)
+
+    from pylith.mpi.Communicator import mpi_comm_world
+    comm = mpi_comm_world()
+
+    self._reformResidual(t, dt)
+    
+    if 0 == comm.rank:
+      self._info.log("Solving equations.")
+    residual = self.fields.get("residual")
+    dispIncr = self.fields.get("dispIncr(t->t+dt)")
+    self.solver.solve(dispIncr, self.jacobian, residual)
+
+    self._eventLogger.eventEnd(logEvent)
+    return
+
+
+  def poststep(self, t, dt):
+    """
+    Hook for doing stuff after advancing time step.
+    """
+    logEvent = "%spoststep" % self._loggingPrefix
+    self._eventLogger.eventBegin(logEvent)
+    
+    from pylith.mpi.Communicator import mpi_comm_world
+    comm = mpi_comm_world()
+
+    # The velocity and acceleration at time t depends on the
+    # displacement at time t+dt, we want to output BEFORE updating the
+    # displacement fields so that the displacement, velocity, and
+    # acceleration files are all at time t.
+    if 0 == comm.rank:
+      self._info.log("Writing solution fields.")
+    for output in self.output.components():
+      output.writeData(t, self.fields)
+    self._writeData(t)
+
+    # Update displacement field from time t to time t+dt.
+    dispIncr = self.fields.get("dispIncr(t->t+dt)")
+    dispT = self.fields.get("disp(t)")
+    dispTmdt = self.fields.get("disp(t-dt)")
+
+    dispTmdt.copy(dispT)
+    dispT += dispIncr
+    dispIncr.zero()
+
+    # Complete post-step processing.
+    Formulation.poststep(self, t, dt)
+
+    self._eventLogger.eventEnd(logEvent)    
+    return
+
+
+  def prestepElastic(self, t, dt):
+    """
+    Hook for doing stuff before advancing time step.
+    """
+    from pylith.mpi.Communicator import mpi_comm_world
+    comm = mpi_comm_world()
+    
+    if 0 == comm.rank:
+      self._info.log("Setting constraints.")
+    disp = self.fields.get("dispIncr(t->t+dt)")
+    disp.zero()
+    for constraint in self.constraints:
+      constraint.setField(t+dt, disp)
+
+    needNewJacobian = False
+    for integrator in self.integratorsMesh + self.integratorsSubMesh:
+      integrator.timeStep(dt)
+      if integrator.needNewJacobian():
+        needNewJacobian = True
+    if needNewJacobian:
+      self._reformJacobian(t, dt)
+
+    return
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set members based using inventory.
+    """
+    Formulation._configure(self)
+
+    self.normViscosity = self.inventory.normViscosity
+    self.solver = self.inventory.solver
+    return
+
+
+  def _reformJacobian(self, t, dt):
+    """
+    Reform Jacobian matrix for operator.
+    """
+    from pylith.mpi.Communicator import mpi_comm_world
+    comm = mpi_comm_world()
+
+    self._debug.log(resourceUsageString())
+    if 0 == comm.rank:
+      self._info.log("Integrating Jacobian operator.")
+    self._eventLogger.stagePush("Reform Jacobian")
+
+    self.updateSettings(self.jacobian, self.fields, t, dt)
+    ModuleExplicit.reformJacobianLumped(self)
+
+    self._eventLogger.stagePop()
+
+    if self.viewJacobian:
+      self.jacobian.view("Jacobian")
+
+    self._debug.log(resourceUsageString())
+    return
+
+
+  def _cleanup(self):
+    """
+    Deallocate PETSc and local data structures.
+    """
+    if not self.fields is None:
+      self.fields.cleanup()
+    return
+
+
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def pde_formulation():
+  """
+  Factory associated with Explicit.
+  """
+  return Explicit()
+
+
+# End of file 

Modified: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLgDeform.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLgDeform.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLgDeform.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -42,22 +42,16 @@
     """
 
     ## @class Inventory
-    ## Python object for managing ExplicitLumped facilities and properties.
+    ## Python object for managing Explicit facilities and properties.
     ##
     ## \b Properties
     ## @li None
     ##
     ## \b Facilities
-    ## @li \b solver Algebraic solver.
+    ## @li None
 
     import pyre.inventory
 
-    from SolverNonlinear import SolverNonlinear
-    solver = pyre.inventory.facility("solver", family="solver",
-                                     factory=SolverNonlinear)
-    solver.meta['tip'] = "Algebraic solver."
-
-
   # PUBLIC METHODS /////////////////////////////////////////////////////
 
   def __init__(self, name="explicitlgdeform"):
@@ -83,7 +77,6 @@
     Set members based using inventory.
     """
     Explicit._configure(self)
-    self.solver = self.inventory.solver
     return
 
 

Deleted: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumped.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumped.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumped.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,231 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-# 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-2012 University of California, Davis
-#
-# See COPYING for license information.
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/ExplicitLumped.py
-##
-## @brief Python ExplicitLumped object for solving equations using an
-## explicit formulation with a lumped Jacobian matrix that is stored
-## as a Field.
-##
-## Factory: pde_formulation
-
-from Explicit import Explicit
-from problems import Explicit as ModuleExplicit
-from pylith.utils.profiling import resourceUsageString
-
-# ExplicitLumped class
-class ExplicitLumped(Explicit, ModuleExplicit):
-  """
-  Python ExplicitLumped object for solving equations using an explicit
-  formulation.
-
-  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
-  where we want to solve for {u(t+dt)}, A(t) is usually constant
-  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
-  and {u(t-dt)}.
-
-  Jacobian: A(t)
-  solution: u(t+dt)
-  residual: b(t) - A(t) \hat u(t+dt)
-  constant: b(t)
-
-  Factory: pde_formulation.
-  """
-
-  # INVENTORY //////////////////////////////////////////////////////////
-
-  class Inventory(Explicit.Inventory):
-    """
-    Python object for managing ExplicitLumped facilities and properties.
-
-    Provide appropriate solver for lumped Jacobian as the default.
-    """
-
-    ## @class Inventory
-    ## Python object for managing ExplicitLumped facilities and properties.
-    ##
-    ## \b Properties
-    ## @li None
-    ##
-    ## \b Facilities
-    ## @li \b solver Algebraic solver.
-
-    import pyre.inventory
-
-    from SolverLumped import SolverLumped
-    solver = pyre.inventory.facility("solver", family="solver",
-                                     factory=SolverLumped)
-    solver.meta['tip'] = "Algebraic solver."
-
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="explicitlumped"):
-    """
-    Constructor.
-    """
-    Explicit.__init__(self, name)
-    return
-
-
-  def initialize(self, dimension, normalizer):
-    """
-    Initialize problem for explicit time integration.
-    """
-    logEvent = "%sinit" % self._loggingPrefix
-    self._eventLogger.eventBegin(logEvent)
-    
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    self._initialize(dimension, normalizer)
-
-    from pylith.utils.petsc import MemoryLogger
-    logger = MemoryLogger.singleton()
-    logger.setDebug(0)
-    logger.stagePush("Problem")
-
-    # Allocate other fields, reusing layout from dispIncr
-    if 0 == comm.rank:
-      self._info.log("Creating other fields.")
-    self.fields.add("disp(t-dt)", "displacement")
-    self.fields.add("velocity(t)", "velocity")
-    self.fields.add("acceleration(t)", "acceleration")
-    self.fields.copyLayout("dispIncr(t->t+dt)")
-    self._debug.log(resourceUsageString())
-
-    # Setup fields and set to zero
-    dispTmdt = self.fields.get("disp(t-dt)")
-    dispTmdt.zero()
-    dispT = self.fields.get("disp(t)")
-    dispT.zero()
-    residual = self.fields.get("residual")
-    residual.zero()
-    residual.createScatterMesh(residual.mesh())
-
-    lengthScale = normalizer.lengthScale()
-    timeScale = normalizer.timeScale()
-    velocityScale = lengthScale / timeScale
-    velocityT = self.fields.get("velocity(t)")
-    velocityT.scale(velocityScale.value)
-    velocityT.zero()
-
-    accelerationScale = velocityScale / timeScale
-    accelerationT = self.fields.get("acceleration(t)")
-    accelerationT.scale(accelerationScale.value)
-    accelerationT.zero()
-
-    self._debug.log(resourceUsageString())
-    logger.stagePop()
-
-    if 0 == comm.rank:
-      self._info.log("Creating lumped Jacobian matrix.")
-    from pylith.topology.topology import MeshField
-    jacobian = MeshField(self.mesh)
-    jacobian.newSection(jacobian.VERTICES_FIELD, dimension)
-    jacobian.allocate()
-    jacobian.label("jacobian")
-    jacobian.vectorFieldType(jacobian.VECTOR)
-    self.jacobian = jacobian
-    self._debug.log(resourceUsageString())
-
-    logger.stagePush("Problem")
-    if 0 == comm.rank:
-      self._info.log("Initializing solver.")
-    self.solver.initialize(self.fields, self.jacobian, self)
-    self._debug.log(resourceUsageString())
-
-    logger.stagePop()
-    logger.setDebug(0)
-    self._eventLogger.eventEnd(logEvent)
-    return
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set members based using inventory.
-    """
-    Explicit._configure(self)
-    self.solver = self.inventory.solver
-    return
-
-
-  def _reformResidual(self, t, dt):
-    """
-    Reform residual vector for operator.
-    """
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    if 0 == comm.rank:
-      self._info.log("Integrating residual term in operator.")
-    self._eventLogger.stagePush("Reform Residual")
-
-    self.updateSettings(self.jacobian, self.fields, t, dt)
-    self.reformResidualLumped()
-
-    self._eventLogger.stagePop()
-    self._debug.log(resourceUsageString())
-    return
-
-
-  def _reformJacobian(self, t, dt):
-    """
-    Reform Jacobian matrix for operator.
-    """
-    from pylith.mpi.Communicator import mpi_comm_world
-    comm = mpi_comm_world()
-
-    self._debug.log(resourceUsageString())
-    if 0 == comm.rank:
-      self._info.log("Integrating Jacobian operator.")
-    self._eventLogger.stagePush("Reform Jacobian")
-
-    self.updateSettings(self.jacobian, self.fields, t, dt)
-    self.reformJacobianLumped()
-
-    self._eventLogger.stagePop()
-
-    if self.viewJacobian:
-      self.jacobian.view("Lumped Jacobian")
-
-    self._debug.log(resourceUsageString())
-    return
-
-
-  def _cleanup(self):
-    """
-    Deallocate PETSc and local data structures.
-    """
-    if not self.fields is None:
-      self.fields.cleanup()
-    return
-
-
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def pde_formulation():
-  """
-  Factory associated with ExplicitLumped.
-  """
-  return ExplicitLumped()
-
-
-# End of file 

Deleted: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTet4.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTet4.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTet4.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-# 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-2012 University of California, Davis
-#
-# See COPYING for license information.
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/ExplicitLumpedTet4.py
-##
-## @brief Python ExplicitLumpedTet4 object for solving equations using an
-## explicit formulation with a lumped Jacobian matrix that is stored
-## as a Field.
-##
-## Factory: pde_formulation
-
-from ExplicitLumped import ExplicitLumped
-from pylith.utils.profiling import resourceUsageString
-
-# ExplicitLumpedTet4 class
-class ExplicitLumpedTet4(ExplicitLumped):
-  """
-  Python ExplicitLumpedTet4 object for solving equations using an explicit
-  formulation.
-
-  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
-  where we want to solve for {u(t+dt)}, A(t) is usually constant
-  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
-  and {u(t-dt)}.
-
-  Jacobian: A(t)
-  solution: u(t+dt)
-  residual: b(t) - A(t) \hat u(t+dt)
-  constant: b(t)
-
-  Factory: pde_formulation.
-  """
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="explicitlumpedtet4"):
-    """
-    Constructor.
-    """
-    ExplicitLumped.__init__(self, name)
-    return
-
-
-  def elasticityIntegrator(self):
-    """
-    Get integrator for elastic material.
-    """
-    from pylith.feassemble.ElasticityExplicitTet4 import ElasticityExplicitTet4
-    integrator = ElasticityExplicitTet4()
-    integrator.normViscosity(self.normViscosity)
-    return integrator
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set members based using inventory.
-    """
-    ExplicitLumped._configure(self)
-    return
-
-
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def pde_formulation():
-  """
-  Factory associated with ExplicitLumped.
-  """
-  return ExplicitLumpedTet4()
-
-
-# End of file 

Deleted: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTri3.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTri3.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTri3.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -1,88 +0,0 @@
-#!/usr/bin/env python
-#
-# ----------------------------------------------------------------------
-#
-# 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-2012 University of California, Davis
-#
-# See COPYING for license information.
-#
-# ----------------------------------------------------------------------
-#
-
-## @file pylith/problems/ExplicitLumpedTri3.py
-##
-## @brief Python ExplicitLumpedTri3 object for solving equations using an
-## explicit formulation with a lumped Jacobian matrix that is stored
-## as a Field.
-##
-## Factory: pde_formulation
-
-from ExplicitLumped import ExplicitLumped
-from pylith.utils.profiling import resourceUsageString
-
-# ExplicitLumpedTri3 class
-class ExplicitLumpedTri3(ExplicitLumped):
-  """
-  Python ExplicitLumpedTri3 object for solving equations using an explicit
-  formulation.
-
-  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
-  where we want to solve for {u(t+dt)}, A(t) is usually constant
-  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
-  and {u(t-dt)}.
-
-  Jacobian: A(t)
-  solution: u(t+dt)
-  residual: b(t) - A(t) \hat u(t+dt)
-  constant: b(t)
-
-  Factory: pde_formulation.
-  """
-
-  # PUBLIC METHODS /////////////////////////////////////////////////////
-
-  def __init__(self, name="explicitlumpedtri3"):
-    """
-    Constructor.
-    """
-    ExplicitLumped.__init__(self, name)
-    return
-
-
-  def elasticityIntegrator(self):
-    """
-    Get integrator for elastic material.
-    """
-    from pylith.feassemble.ElasticityExplicitTri3 import ElasticityExplicitTri3
-    integrator = ElasticityExplicitTri3()
-    integrator.normViscosity(self.normViscosity)
-    return integrator
-
-
-  # PRIVATE METHODS ////////////////////////////////////////////////////
-
-  def _configure(self):
-    """
-    Set members based using inventory.
-    """
-    ExplicitLumped._configure(self)
-    return
-
-
-# FACTORIES ////////////////////////////////////////////////////////////
-
-def pde_formulation():
-  """
-  Factory associated with ExplicitLumped.
-  """
-  return ExplicitLumpedTri3()
-
-
-# End of file 

Copied: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTet4.py (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTet4.py)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTet4.py	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTet4.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+# 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-2012 University of California, Davis
+#
+# See COPYING for license information.
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/problems/ExplicitTet4.py
+##
+## @brief Python ExplicitTet4 object for solving equations using an
+## explicit formulation with a lumped Jacobian matrix that is stored
+## as a Field.
+##
+## Factory: pde_formulation
+
+from Explicit import Explicit
+from pylith.utils.profiling import resourceUsageString
+
+# ExplicitTet4 class
+class ExplicitTet4(Explicit):
+  """
+  Python ExplicitTet4 object for solving equations using an explicit
+  formulation.
+
+  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
+  where we want to solve for {u(t+dt)}, A(t) is usually constant
+  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
+  and {u(t-dt)}.
+
+  Jacobian: A(t)
+  solution: u(t+dt)
+  residual: b(t) - A(t) \hat u(t+dt)
+  constant: b(t)
+
+  Factory: pde_formulation.
+  """
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="explicitlumpedtet4"):
+    """
+    Constructor.
+    """
+    Explicit.__init__(self, name)
+    return
+
+
+  def elasticityIntegrator(self):
+    """
+    Get integrator for elastic material.
+    """
+    from pylith.feassemble.ElasticityExplicitTet4 import ElasticityExplicitTet4
+    integrator = ElasticityExplicitTet4()
+    integrator.normViscosity(self.normViscosity)
+    return integrator
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set members based using inventory.
+    """
+    Explicit._configure(self)
+    return
+
+
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def pde_formulation():
+  """
+  Factory associated with Explicit.
+  """
+  return ExplicitTet4()
+
+
+# End of file 

Copied: short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTri3.py (from rev 20750, short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitLumpedTri3.py)
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTri3.py	                        (rev 0)
+++ short/3D/PyLith/branches/v1.7-trunk/pylith/problems/ExplicitTri3.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+#
+# ----------------------------------------------------------------------
+#
+# 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-2012 University of California, Davis
+#
+# See COPYING for license information.
+#
+# ----------------------------------------------------------------------
+#
+
+## @file pylith/problems/ExplicitTri3.py
+##
+## @brief Python ExplicitTri3 object for solving equations using an
+## explicit formulation with a lumped Jacobian matrix that is stored
+## as a Field.
+##
+## Factory: pde_formulation
+
+from Explicit import Explicit
+from pylith.utils.profiling import resourceUsageString
+
+# ExplicitTri3 class
+class ExplicitTri3(Explicit):
+  """
+  Python ExplicitTri3 object for solving equations using an explicit
+  formulation.
+
+  The formulation has the general form, [A(t)] {u(t+dt)} = {b(t)},
+  where we want to solve for {u(t+dt)}, A(t) is usually constant
+  (i.e., independent of time), and {b(t)} usually depends on {u(t)}
+  and {u(t-dt)}.
+
+  Jacobian: A(t)
+  solution: u(t+dt)
+  residual: b(t) - A(t) \hat u(t+dt)
+  constant: b(t)
+
+  Factory: pde_formulation.
+  """
+
+  # PUBLIC METHODS /////////////////////////////////////////////////////
+
+  def __init__(self, name="explicitlumpedtri3"):
+    """
+    Constructor.
+    """
+    Explicit.__init__(self, name)
+    return
+
+
+  def elasticityIntegrator(self):
+    """
+    Get integrator for elastic material.
+    """
+    from pylith.feassemble.ElasticityExplicitTri3 import ElasticityExplicitTri3
+    integrator = ElasticityExplicitTri3()
+    integrator.normViscosity(self.normViscosity)
+    return integrator
+
+
+  # PRIVATE METHODS ////////////////////////////////////////////////////
+
+  def _configure(self):
+    """
+    Set members based using inventory.
+    """
+    Explicit._configure(self)
+    return
+
+
+# FACTORIES ////////////////////////////////////////////////////////////
+
+def pde_formulation():
+  """
+  Factory associated with Explicit.
+  """
+  return ExplicitTri3()
+
+
+# End of file 

Modified: short/3D/PyLith/branches/v1.7-trunk/tests/2d/faultstrip/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/tests/2d/faultstrip/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/tests/2d/faultstrip/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -40,7 +40,7 @@
 [pylithapp.timedependent]
 dimension = 2
 
-formulation = pylith.problems.ExplicitLumped
+formulation = pylith.problems.Explicit
 
 normalizer = spatialdata.units.NondimElasticDynamic
 normalizer.shear_wave_speed = 1.0*km/s

Modified: short/3D/PyLith/branches/v1.7-trunk/tests/2d/plasticity/cyclic/dynamic.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/tests/2d/plasticity/cyclic/dynamic.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/tests/2d/plasticity/cyclic/dynamic.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -4,4 +4,4 @@
 # problem
 # ----------------------------------------------------------------------
 [pylithapp.timedependent]
-formulation = pylith.problems.ExplicitLumped
+formulation = pylith.problems.Explicit

Modified: short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/pylithapp.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/pylithapp.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/pylithapp.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -20,7 +20,7 @@
 [pylithapp.timedependent]
 dimension = 3
 
-formulation = pylith.problems.ExplicitLumped
+formulation = pylith.problems.Explicit
 formulation.norm_viscosity = 1.0e-30
 normalizer = spatialdata.units.NondimElasticDynamic
 normalizer.shear_wave_speed = 3300*m/s

Modified: short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/tet4.cfg
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/tet4.cfg	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/tests/3d/plasticity/dynamic/tet4.cfg	2012-09-20 21:37:41 UTC (rev 20751)
@@ -4,7 +4,7 @@
 # problem
 # ----------------------------------------------------------------------
 [pylithapp.timedependent]
-formulation = pylith.problems.ExplicitLumpedTet4
+formulation = pylith.problems.ExplicitTet4
 
 # ----------------------------------------------------------------------
 # mesh_generator

Modified: short/3D/PyLith/branches/v1.7-trunk/tests_auto/1d/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/tests_auto/1d/Makefile.am	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/tests_auto/1d/Makefile.am	2012-09-20 21:37:41 UTC (rev 20751)
@@ -17,8 +17,10 @@
 #
 
 SUBDIRS = \
-	line2 \
-	line3
+	line2
 
 
+#	line3 (disable until higher order with 2 vertices works)
+
+
 # End of file 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -196,46 +196,6 @@
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
-// Test integrateResidual().
-void
-pylith::feassemble::TestElasticityExplicit::testIntegrateResidualLumped(void)
-{ // testIntegrateResidualLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicit integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-
-  topology::Field<topology::Mesh>& residual = fields.get("residual");
-  const PylithScalar t = 1.0;
-  integrator.integrateResidualLumped(residual, t, &fields);
-
-  const PylithScalar* valsE = _data->valsResidualLumped;
-  const int sizeE = _data->spaceDim * _data->numVertices;
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  CPPUNIT_ASSERT(!residualSection.isNull());
-  const PylithScalar* vals = residualSection->restrictSpace();
-  const int size = residualSection->sizeWithBC();
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
-#if 0 // DEBUGGING
-  residual.view("RESIDUAL");
-  std::cout << "EXPECTED RESIDUAL" << std::endl;
-  for (int i=0; i < size; ++i)
-    std::cout << "  " << valsE[i] << std::endl;
-#endif
-
-  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateResidualLumped
-
-// ----------------------------------------------------------------------
 // Test integrateJacobian().
 void
 pylith::feassemble::TestElasticityExplicit::testIntegrateJacobian(void)
@@ -248,61 +208,6 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields.solution());
-
-  const PylithScalar t = 1.0;
-  integrator.integrateJacobian(&jacobian, t, &fields);
-  CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
-  jacobian.assemble("final_assembly");
-
-  const PylithScalar* valsE = _data->valsJacobian;
-  const int nrowsE = _data->numVertices * _data->spaceDim;
-  const int ncolsE = _data->numVertices * _data->spaceDim;
-
-  const PetscMat jacobianMat = jacobian.matrix();
-
-  int nrows = 0;
-  int ncols = 0;
-  MatGetSize(jacobianMat, &nrows, &ncols);
-  CPPUNIT_ASSERT_EQUAL(nrowsE, nrows);
-  CPPUNIT_ASSERT_EQUAL(ncolsE, ncols);
-
-  PetscMat jDense;
-  MatConvert(jacobianMat, MATSEQDENSE, MAT_INITIAL_MATRIX, &jDense);
-
-  scalar_array vals(nrows*ncols);
-  int_array rows(nrows);
-  int_array cols(ncols);
-  for (int iRow=0; iRow < nrows; ++iRow)
-    rows[iRow] = iRow;
-  for (int iCol=0; iCol < ncols; ++iCol)
-    cols[iCol] = iCol;
-  MatGetValues(jDense, nrows, &rows[0], ncols, &cols[0], &vals[0]);
-  const PylithScalar tolerance = 1.0e-06;
-  for (int iRow=0; iRow < nrows; ++iRow)
-    for (int iCol=0; iCol < ncols; ++iCol) {
-      const int index = ncols*iRow+iCol;
-      if (fabs(valsE[index]) > 1.0)
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/valsE[index], tolerance);
-      else
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], vals[index], tolerance);
-    } // for
-  MatDestroy(&jDense);
-} // testIntegrateJacobian
-
-// ----------------------------------------------------------------------
-// Test integrateJacobian().
-void
-pylith::feassemble::TestElasticityExplicit::testIntegrateJacobianLumped(void)
-{ // testIntegrateJacobianLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicit integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-  integrator._needNewJacobian = true;
-
   topology::Field<topology::Mesh> jacobian(mesh);
   jacobian.label("Jacobian");
   jacobian.vectorFieldType(topology::FieldBase::VECTOR);
@@ -314,7 +219,7 @@
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
   jacobian.complete();
 
-  const PylithScalar* valsE = _data->valsJacobianLumped;
+  const PylithScalar* valsE = _data->valsJacobian;
 
 #if 0 // DEBUGGING
   // TEMPORARY
@@ -341,7 +246,7 @@
       CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
     else
       CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateJacobianLumped
+} // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
 // Test updateStateVars().

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,15 +93,9 @@
   /// Test integrateResidual().
   void testIntegrateResidual(void);
 
-  /// Test integrateResidualLumped().
-  void testIntegrateResidualLumped(void);
-
   /// Test integrateJacobian().
   void testIntegrateJacobian(void);
 
-  /// Test integrateJacobianLumped().
-  void testIntegrateJacobianLumped(void);
-
   /// Test updateStateVars().
   void testUpdateStateVars(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -108,52 +108,12 @@
   const PylithScalar* valsE = _data->valsResidual;
   const int sizeE = _data->spaceDim * _data->numVertices;
 
-#if 0 // DEBUGGING
-  residual.view("RESIDUAL");
-  std::cout << "RESIDUAL EXPECTED\n";
-  for (int i=0; i < sizeE; ++i)
-    std::cout << "  " << valsE[i] << "\n";
-#endif
-
   const ALE::Obj<RealSection>& residualSection = residual.section();
   CPPUNIT_ASSERT(!residualSection.isNull());
   const PylithScalar* vals = residualSection->restrictSpace();
   const int size = residualSection->sizeWithBC();
   CPPUNIT_ASSERT_EQUAL(sizeE, size);
 
-  const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-04;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateResidual
-
-// ----------------------------------------------------------------------
-// Test integrateResidual().
-void
-pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateResidualLumped(void)
-{ // testIntegrateResidualLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitLgDeform integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-
-  topology::Field<topology::Mesh>& residual = fields.get("residual");
-  const PylithScalar t = 1.0;
-  integrator.integrateResidualLumped(residual, t, &fields);
-
-  const PylithScalar* valsE = _data->valsResidualLumped;
-  const int sizeE = _data->spaceDim * _data->numVertices;
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  CPPUNIT_ASSERT(!residualSection.isNull());
-  const PylithScalar* vals = residualSection->restrictSpace();
-  const int size = residualSection->sizeWithBC();
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
 #if 0
   residual.view("RESIDUAL");
   std::cout << "EXPECTED RESIDUAL" << std::endl;
@@ -167,7 +127,7 @@
       CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
     else
       CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateResidualLumped
+} // testIntegrateResidual
 
 // ----------------------------------------------------------------------
 // Test integrateJacobian().
@@ -182,61 +142,6 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields.solution());
-
-  const PylithScalar t = 1.0;
-  integrator.integrateJacobian(&jacobian, t, &fields);
-  CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
-  jacobian.assemble("final_assembly");
-
-  const PylithScalar* valsE = _data->valsJacobian;
-  const int nrowsE = _data->numVertices * _data->spaceDim;
-  const int ncolsE = _data->numVertices * _data->spaceDim;
-
-  const PetscMat jacobianMat = jacobian.matrix();
-
-  int nrows = 0;
-  int ncols = 0;
-  MatGetSize(jacobianMat, &nrows, &ncols);
-  CPPUNIT_ASSERT_EQUAL(nrowsE, nrows);
-  CPPUNIT_ASSERT_EQUAL(ncolsE, ncols);
-
-  PetscMat jDense;
-  MatConvert(jacobianMat, MATSEQDENSE, MAT_INITIAL_MATRIX, &jDense);
-
-  scalar_array vals(nrows*ncols);
-  int_array rows(nrows);
-  int_array cols(ncols);
-  for (int iRow=0; iRow < nrows; ++iRow)
-    rows[iRow] = iRow;
-  for (int iCol=0; iCol < ncols; ++iCol)
-    cols[iCol] = iCol;
-  MatGetValues(jDense, nrows, &rows[0], ncols, &cols[0], &vals[0]);
-  const PylithScalar tolerance = 1.0e-06;
-  for (int iRow=0; iRow < nrows; ++iRow)
-    for (int iCol=0; iCol < ncols; ++iCol) {
-      const int index = ncols*iRow+iCol;
-      if (fabs(valsE[index]) > 1.0)
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/valsE[index], tolerance);
-      else
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], vals[index], tolerance);
-    } // for
-  MatDestroy(&jDense);
-} // testIntegrateJacobian
-
-// ----------------------------------------------------------------------
-// Test integrateJacobian().
-void
-pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateJacobianLumped(void)
-{ // testIntegrateJacobianLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitLgDeform integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-  integrator._needNewJacobian = true;
-
   topology::Field<topology::Mesh> jacobian(mesh);
   jacobian.label("Jacobian");
   jacobian.vectorFieldType(topology::FieldBase::VECTOR);
@@ -248,7 +153,7 @@
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
   jacobian.complete();
 
-  const PylithScalar* valsE = _data->valsJacobianLumped;
+  const PylithScalar* valsE = _data->valsJacobian;
 
 #if 0 // DEBUGGING
   // TEMPORARY
@@ -275,7 +180,7 @@
       CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
     else
       CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateJacobianLumped
+} // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
 // Test updateStateVars().

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -76,15 +76,9 @@
   /// Test integrateResidual().
   void testIntegrateResidual(void);
 
-  /// Test integrateResidual().
-  void testIntegrateResidualLumped(void);
-
   /// Test integrateJacobian().
   void testIntegrateJacobian(void);
 
-  /// Test integrateJacobian().
-  void testIntegrateJacobianLumped(void);
-
   /// Test updateStateVars().
   void testUpdateStateVars(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -46,9 +46,7 @@
 
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
 
   CPPUNIT_TEST_SUITE_END();

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -58,7 +58,7 @@
   GeometryTet3D geometry;
   _quadrature->refGeometry(&geometry);
 
-  _data = new ElasticityExplicitData3DLinear();
+  _data = new ElasticityExplicitData3DLinear;
   CPPUNIT_ASSERT(0 != _data);
   _material = new materials::ElasticIsotropic3D;
   CPPUNIT_ASSERT(0 != _material);
@@ -191,46 +191,6 @@
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
-// Test integrateResidual().
-void
-pylith::feassemble::TestElasticityExplicitTet4::testIntegrateResidualLumped(void)
-{ // testIntegrateResidualLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitTet4 integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-
-  topology::Field<topology::Mesh>& residual = fields.get("residual");
-  const PylithScalar t = 1.0;
-  integrator.integrateResidualLumped(residual, t, &fields);
-
-  const PylithScalar* valsE = _data->valsResidualLumped;
-  const int sizeE = _data->spaceDim * _data->numVertices;
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  CPPUNIT_ASSERT(!residualSection.isNull());
-  const PylithScalar* vals = residualSection->restrictSpace();
-  const int size = residualSection->sizeWithBC();
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
-#if 0 // DEBUGGING
-  residual.view("RESIDUAL");
-  std::cout << "EXPECTED RESIDUAL" << std::endl;
-  for (int i=0; i < size; ++i)
-    std::cout << "  " << valsE[i] << std::endl;
-#endif // DEBUGGING
-
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateResidualLumped
-
-// ----------------------------------------------------------------------
 // Test integrateJacobian().
 void
 pylith::feassemble::TestElasticityExplicitTet4::testIntegrateJacobian(void)
@@ -243,61 +203,6 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields.solution());
-
-  const PylithScalar t = 1.0;
-  integrator.integrateJacobian(&jacobian, t, &fields);
-  CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
-  jacobian.assemble("final_assembly");
-
-  const PylithScalar* valsE = _data->valsJacobian;
-  const int nrowsE = _data->numVertices * _data->spaceDim;
-  const int ncolsE = _data->numVertices * _data->spaceDim;
-
-  const PetscMat jacobianMat = jacobian.matrix();
-
-  int nrows = 0;
-  int ncols = 0;
-  MatGetSize(jacobianMat, &nrows, &ncols);
-  CPPUNIT_ASSERT_EQUAL(nrowsE, nrows);
-  CPPUNIT_ASSERT_EQUAL(ncolsE, ncols);
-
-  PetscMat jDense;
-  MatConvert(jacobianMat, MATSEQDENSE, MAT_INITIAL_MATRIX, &jDense);
-
-  scalar_array vals(nrows*ncols);
-  int_array rows(nrows);
-  int_array cols(ncols);
-  for (int iRow=0; iRow < nrows; ++iRow)
-    rows[iRow] = iRow;
-  for (int iCol=0; iCol < ncols; ++iCol)
-    cols[iCol] = iCol;
-  MatGetValues(jDense, nrows, &rows[0], ncols, &cols[0], &vals[0]);
-  const PylithScalar tolerance = 1.0e-06;
-  for (int iRow=0; iRow < nrows; ++iRow)
-    for (int iCol=0; iCol < ncols; ++iCol) {
-      const int index = ncols*iRow+iCol;
-      if (fabs(valsE[index]) > 1.0)
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/valsE[index], tolerance);
-      else
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], vals[index], tolerance);
-    } // for
-  MatDestroy(&jDense);
-} // testIntegrateJacobian
-
-// ----------------------------------------------------------------------
-// Test integrateJacobian().
-void
-pylith::feassemble::TestElasticityExplicitTet4::testIntegrateJacobianLumped(void)
-{ // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitTet4 integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-  integrator._needNewJacobian = true;
-
   topology::Field<topology::Mesh> jacobian(mesh);
   jacobian.label("Jacobian");
   jacobian.vectorFieldType(topology::FieldBase::VECTOR);
@@ -309,19 +214,10 @@
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
   jacobian.complete();
 
-  const PylithScalar* valsMatrixE = _data->valsJacobian;
+  const PylithScalar* valsE = _data->valsJacobian;
   const int sizeE = _data->numVertices * _data->spaceDim;
-  scalar_array valsE(sizeE);
   const int spaceDim = _data->spaceDim;
   const int numBasis = _data->numVertices;
-  for (int iBasis=0; iBasis < numBasis; ++iBasis)
-    for (int iDim=0; iDim < spaceDim; ++iDim) {
-      const int indexRow = (iBasis*spaceDim+iDim)*numBasis*spaceDim;
-      PylithScalar value = 0.0;
-      for (int jBasis=0; jBasis < numBasis; ++jBasis)
-	value += valsMatrixE[indexRow + jBasis*spaceDim+iDim];
-      valsE[iBasis*spaceDim+iDim] = value;
-    } // for
 
 #if 0 // DEBUGGING
   jacobian.view("JACOBIAN");
@@ -343,7 +239,7 @@
       CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
     else
       CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateJacobianLumped
+} // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
 // Test updateStateVars().

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -56,9 +56,7 @@
   CPPUNIT_TEST( testNeedNewJacobian );
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 
@@ -91,15 +89,9 @@
   /// Test integrateResidual().
   void testIntegrateResidual(void);
 
-  /// Test integrateResidualLumped().
-  void testIntegrateResidualLumped(void);
-
   /// Test integrateJacobian().
   void testIntegrateJacobian(void);
 
-  /// Test integrateJacobianLumped().
-  void testIntegrateJacobianLumped(void);
-
   /// Test updateStateVars().
   void testUpdateStateVars(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -191,46 +191,6 @@
 } // testIntegrateResidual
 
 // ----------------------------------------------------------------------
-// Test integrateResidual().
-void
-pylith::feassemble::TestElasticityExplicitTri3::testIntegrateResidualLumped(void)
-{ // testIntegrateResidualLumped
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitTri3 integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-
-  topology::Field<topology::Mesh>& residual = fields.get("residual");
-  const PylithScalar t = 1.0;
-  integrator.integrateResidualLumped(residual, t, &fields);
-
-  const PylithScalar* valsE = _data->valsResidualLumped;
-  const int sizeE = _data->spaceDim * _data->numVertices;
-
-  const ALE::Obj<RealSection>& residualSection = residual.section();
-  CPPUNIT_ASSERT(!residualSection.isNull());
-  const PylithScalar* vals = residualSection->restrictSpace();
-  const int size = residualSection->sizeWithBC();
-  CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
-#if 0 // DEBUGGING
-  residual.view("RESIDUAL");
-  std::cout << "EXPECTED RESIDUAL" << std::endl;
-  for (int i=0; i < size; ++i)
-    std::cout << "  " << valsE[i] << std::endl;
-#endif // DEBUGGING
-
-  const PylithScalar tolerance = 1.0e-06;
-  for (int i=0; i < size; ++i)
-    if (fabs(valsE[i]) > 1.0)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
-    else
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateResidualLumped
-
-// ----------------------------------------------------------------------
 // Test integrateJacobian().
 void
 pylith::feassemble::TestElasticityExplicitTri3::testIntegrateJacobian(void)
@@ -243,61 +203,6 @@
   _initialize(&mesh, &integrator, &fields);
   integrator._needNewJacobian = true;
 
-  topology::Jacobian jacobian(fields.solution());
-
-  const PylithScalar t = 1.0;
-  integrator.integrateJacobian(&jacobian, t, &fields);
-  CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
-  jacobian.assemble("final_assembly");
-
-  const PylithScalar* valsE = _data->valsJacobian;
-  const int nrowsE = _data->numVertices * _data->spaceDim;
-  const int ncolsE = _data->numVertices * _data->spaceDim;
-
-  const PetscMat jacobianMat = jacobian.matrix();
-
-  int nrows = 0;
-  int ncols = 0;
-  MatGetSize(jacobianMat, &nrows, &ncols);
-  CPPUNIT_ASSERT_EQUAL(nrowsE, nrows);
-  CPPUNIT_ASSERT_EQUAL(ncolsE, ncols);
-
-  PetscMat jDense;
-  MatConvert(jacobianMat, MATSEQDENSE, MAT_INITIAL_MATRIX, &jDense);
-
-  scalar_array vals(nrows*ncols);
-  int_array rows(nrows);
-  int_array cols(ncols);
-  for (int iRow=0; iRow < nrows; ++iRow)
-    rows[iRow] = iRow;
-  for (int iCol=0; iCol < ncols; ++iCol)
-    cols[iCol] = iCol;
-  MatGetValues(jDense, nrows, &rows[0], ncols, &cols[0], &vals[0]);
-  const PylithScalar tolerance = 1.0e-06;
-  for (int iRow=0; iRow < nrows; ++iRow)
-    for (int iCol=0; iCol < ncols; ++iCol) {
-      const int index = ncols*iRow+iCol;
-      if (fabs(valsE[index]) > 1.0)
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[index]/valsE[index], tolerance);
-      else
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], vals[index], tolerance);
-    } // for
-  MatDestroy(&jDense);
-} // testIntegrateJacobian
-
-// ----------------------------------------------------------------------
-// Test integrateJacobian().
-void
-pylith::feassemble::TestElasticityExplicitTri3::testIntegrateJacobianLumped(void)
-{ // testIntegrateJacobian
-  CPPUNIT_ASSERT(0 != _data);
-
-  topology::Mesh mesh;
-  ElasticityExplicitTri3 integrator;
-  topology::SolutionFields fields(mesh);
-  _initialize(&mesh, &integrator, &fields);
-  integrator._needNewJacobian = true;
-
   topology::Field<topology::Mesh> jacobian(mesh);
   jacobian.label("Jacobian");
   jacobian.vectorFieldType(topology::FieldBase::VECTOR);
@@ -309,19 +214,10 @@
   CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
   jacobian.complete();
 
-  const PylithScalar* valsMatrixE = _data->valsJacobian;
+  const PylithScalar* valsE = _data->valsJacobian;
   const int sizeE = _data->numVertices * _data->spaceDim;
-  scalar_array valsE(sizeE);
   const int spaceDim = _data->spaceDim;
   const int numBasis = _data->numVertices;
-  for (int iBasis=0; iBasis < numBasis; ++iBasis)
-    for (int iDim=0; iDim < spaceDim; ++iDim) {
-      const int indexRow = (iBasis*spaceDim+iDim)*numBasis*spaceDim;
-      PylithScalar value = 0.0;
-      for (int jBasis=0; jBasis < numBasis; ++jBasis)
-	value += valsMatrixE[indexRow + jBasis*spaceDim+iDim];
-      valsE[iBasis*spaceDim+iDim] = value;
-    } // for
 
 #if 0 // DEBUGGING
   jacobian.view("JACOBIAN");
@@ -343,7 +239,7 @@
       CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
     else
       CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
-} // testIntegrateJacobianLumped
+} // testIntegrateJacobian
 
 // ----------------------------------------------------------------------
 // Test updateStateVars().

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -56,9 +56,7 @@
   CPPUNIT_TEST( testNeedNewJacobian );
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testIntegrateResidual );
-  CPPUNIT_TEST( testIntegrateResidualLumped );
   CPPUNIT_TEST( testIntegrateJacobian );
-  CPPUNIT_TEST( testIntegrateJacobianLumped );
   CPPUNIT_TEST( testUpdateStateVars );
   CPPUNIT_TEST( testStableTimeStep );
 
@@ -91,15 +89,9 @@
   /// Test integrateResidual().
   void testIntegrateResidual(void);
 
-  /// Test integrateResidualLumped().
-  void testIntegrateResidualLumped(void);
-
   /// Test integrateJacobian().
   void testIntegrateJacobian(void);
 
-  /// Test integrateJacobianLumped().
-  void testIntegrateJacobianLumped(void);
-
   /// Test updateStateVars().
   void testUpdateStateVars(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicit.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -63,20 +63,8 @@
     return residual.flatten()
 
 
-  def calculateJacobian(self, integrator):
+  def calculateResidual(self, integrator):
     """
-    Calculate contribution to Jacobian matrix of operator for integrator.
-
-    [A] = (1/dt**2)[M]
-    """
-    M = integrator._calculateMassMat()
-
-    jacobian = 1.0/integrator.dt**2 * M
-    return jacobian
-
-
-  def calculateResidualLumped(self, integrator):
-    """
     Calculate contribution to residual of operator for integrator.
 
     {r} = (1/dt**2)[M](-{u(t+dt)} + 2 {u(t)} - {u(t-dt)}) -
@@ -94,7 +82,7 @@
     return residual.flatten()
 
 
-  def calculateJacobianLumped(self, integrator):
+  def calculateJacobian(self, integrator):
     """
     Calculate contribution to Jacobian matrix of operator for integrator.
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitApp.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitApp.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitApp.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -54,8 +54,6 @@
     self._collectData()
     self._calculateResidual()
     self._calculateJacobian()
-    self._calculateResidualLumped()
-    self._calculateJacobianLumped()
     self._calcDtStable()
     self._initData()
     self.data.write(self.name)
@@ -74,21 +72,21 @@
     return
 
 
-  def _calculateResidualLumped(self):
+  def _calculateResidual(self):
     """
     Calculate contribution to residual of operator for integrator.
     """
-    self.valsResidualLumped = self.formulation.calculateResidualLumped(self)
+    self.valsResidual = self.formulation.calculateResidual(self)
     if self.useGravity:
-      self.valsResidualLumped += self._calculateGravityVec()
+      self.valsResidual += self._calculateGravityVec()
     return
 
 
-  def _calculateJacobianLumped(self):
+  def _calculateJacobian(self):
     """
     Calculate contribution to Jacobian matrix of operator for integrator.
     """
-    self.valsJacobianLumped = self.formulation.calculateJacobianLumped(self)
+    self.valsJacobian = self.formulation.calculateJacobian(self)
     return
 
 
@@ -100,12 +98,6 @@
     self.data.addScalar(vtype="PylithScalar", name="_dtStableExplicit",
                        value=self.dtStableExplicit,
                        format="%16.8e");
-    self.data.addArray(vtype="PylithScalar", name="_valsResidualLumped",
-                       values=self.valsResidualLumped,
-                       format="%16.8e", ncols=self.spaceDim)
-    self.data.addArray(vtype="PylithScalar", name="_valsJacobianLumped",
-                       values=self.valsJacobianLumped,
-                       format="%16.8e", ncols=self.spaceDim)
     return
 
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -21,9 +21,7 @@
 // ----------------------------------------------------------------------
 // Constructor
 pylith::feassemble::ElasticityExplicitData::ElasticityExplicitData(void) :
-  dtStableExplicit(1.0e+99),
-  valsResidualLumped(0),
-  valsJacobianLumped(0)
+  dtStableExplicit(1.0e+99)
 { // constructor
 } // constructor
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -45,8 +45,6 @@
   /// @name Calculated values.
   //@{
   PylithScalar dtStableExplicit; ///< Stable time step for explicit time integration.
-  PylithScalar* valsResidualLumped; ///< Expected values from residual calculation (lumped Jacobian).
-  PylithScalar* valsJacobianLumped; ///< Expected values from lumped Jacobian calculation.
   //@}
 };
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -97,23 +97,11 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData1DLinear::_valsResidual[] = {
-  1.71634375e+10,
- -1.72365625e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DLinear::_valsJacobian[] = {
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DLinear::_valsResidualLumped[] = {
   1.71690625e+10,
  -1.72421875e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData1DLinear::_valsJacobian[] = {
   2.81250000e+07,
   2.81250000e+07,
 };
@@ -145,8 +133,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData1DLinear::~ElasticityExplicitData1DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata1dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -111,30 +111,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsResidual[] = {
-  6.00504167e+10,
-  1.45260729e+11,
- -2.05377708e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsJacobian[] = {
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  2.50000000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsResidualLumped[] = {
   6.00563542e+10,
   1.45266667e+11,
  -2.05389583e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData1DQuadratic::_valsJacobian[] = {
   9.37500000e+06,
   9.37500000e+06,
   3.75000000e+07,
@@ -167,8 +149,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData1DQuadratic::~ElasticityExplicitData1DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata1dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -102,39 +102,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidual[] = {
- -7.10095578e+10,  1.36893348e+11,
- -1.02829242e+10, -1.20976325e+11,
-  8.12828570e+10, -1.59202314e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobian[] = {
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DLinear::_valsResidualLumped[] = {
  -7.10086411e+10,  1.36894418e+11,
  -1.02842992e+10, -1.20980297e+11,
   8.12833153e+10, -1.59173286e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData2DLinear::_valsJacobian[] = {
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
@@ -167,8 +140,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData2DLinear::~ElasticityExplicitData2DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata2dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -172,90 +172,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsResidual[] = {
-  1.14469580e+10,  9.89206525e+10,
- -3.22261697e+10, -5.24164966e+09,
-  5.33382294e+09,  6.79748894e+10,
-  6.97040375e+10,  1.10679118e+11,
- -7.00903642e+10, -2.03315152e+11,
-  1.58455201e+10, -6.90098433e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsJacobian[] = {
-  2.24121094e+06,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  4.21875000e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
-  0.00000000e+00,  2.24121094e+06,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.36230469e+06,
-  2.41699219e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  2.41699219e+05,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  4.21875000e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  2.21484375e+07,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  2.21484375e+07,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00, -5.39062500e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  8.46679688e+06,
-  0.00000000e+00,  6.09375000e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  6.09375000e+06,
-  0.00000000e+00,  8.46679688e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsResidualLumped[] = {
   1.14454133e+10,  9.89209294e+10,
  -3.22283567e+10, -5.24308887e+09,
   5.33172309e+09,  6.79741797e+10,
@@ -264,7 +180,7 @@
   1.58484937e+10, -6.90064316e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData2DQuadratic::_valsJacobian[] = {
   4.21875000e+06,  4.21875000e+06,
   3.98437500e+06,  3.98437500e+06,
   3.98437500e+06,  3.98437500e+06,
@@ -300,8 +216,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData2DQuadratic::~ElasticityExplicitData2DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata2dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -108,71 +108,13 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData3DLinear::_valsResidual[] = {
- -6.53693819e+09,  3.88079833e+10,  3.46544326e+09,
- -4.32000975e+09,  7.13967240e+10,  2.36593900e+10,
-  7.21670494e+09, -1.13026998e+11, -3.40757835e+10,
-  3.64360549e+09,  2.82229089e+09,  6.95364028e+09,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DLinear::_valsJacobian[] = {
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DLinear::_valsResidualLumped[] = {
  -6.53643381e+09,  3.88073108e+10,  3.46544326e+09,
  -4.31950537e+09,  7.13977327e+10,  2.36607350e+10,
   7.21485556e+09, -1.13028007e+11, -3.40771285e+10,
   3.64444612e+09,  2.82296339e+09,  6.95364028e+09,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData3DLinear::_valsJacobian[] = {
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
@@ -206,8 +148,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData3DLinear::~ElasticityExplicitData3DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata3dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -189,322 +189,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsResidual[] = {
-  2.17054586e+10, -1.01739898e+10,  2.19940105e+10,
-  6.44485026e+10, -2.49355435e+10,  6.57568524e+09,
- -4.99706922e+10, -5.58679967e+10, -3.45875247e+10,
- -9.94786340e+09,  4.42029024e+10, -4.09053678e+10,
- -7.06409419e+09,  6.20990315e+10, -1.70066323e+09,
-  7.08323019e+10,  1.17494841e+11, -3.98014534e+10,
- -9.85096504e+10, -5.58231405e+10, -2.54484051e+10,
- -1.35961925e+10, -6.36499481e+10,  1.11445117e+10,
- -3.55911964e+10,  5.53493739e+10,  5.68991582e+09,
-  5.77073439e+10, -6.86734841e+10,  9.70537069e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobian[] = {
-  1.50251107e+06,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.50251107e+06,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.50251107e+06,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsResidualLumped[] = {
   2.17058857e+10, -1.01733961e+10,  2.19900081e+10,
   6.44476753e+10, -2.49368998e+10,  6.57917072e+09,
  -4.99716018e+10, -5.58679351e+10, -3.45875383e+10,
@@ -517,7 +201,7 @@
   5.76997342e+10, -6.86862545e+10,  9.70617888e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitData3DQuadratic::_valsJacobian[] = {
   2.57903646e+06,  2.57903646e+06,  2.57903646e+06,
   2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
   2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
@@ -557,8 +241,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitData3DQuadratic::~ElasticityExplicitData3DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitData3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitdata3dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -97,23 +97,11 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsResidual[] = {
- -2.64086562e+11,
- -2.98486562e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsJacobian[] = {
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsResidualLumped[] = {
  -2.64080938e+11,
  -2.98492188e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DLinear::_valsJacobian[] = {
   2.81250000e+07,
   2.81250000e+07,
 };
@@ -145,8 +133,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData1DLinear::~ElasticityExplicitGravData1DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata1dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -111,30 +111,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsResidual[] = {
- -3.36995833e+10,
-  5.15107292e+10,
- -5.80377708e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsJacobian[] = {
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  2.50000000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsResidualLumped[] = {
  -3.36936458e+10,
   5.15166667e+10,
  -5.80389583e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData1DQuadratic::_valsJacobian[] = {
   9.37500000e+06,
   9.37500000e+06,
   3.75000000e+07,
@@ -167,8 +149,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData1DQuadratic::~ElasticityExplicitGravData1DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata1dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -102,39 +102,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsResidual[] = {
- -7.10095578e+10,  9.10600148e+10,
- -1.02829242e+10, -1.66809658e+11,
-  8.12828570e+10, -6.17535647e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsJacobian[] = {
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsResidualLumped[] = {
  -7.10086411e+10,  9.10610843e+10,
  -1.02842992e+10, -1.66813631e+11,
   8.12833153e+10, -6.17506619e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DLinear::_valsJacobian[] = {
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
@@ -167,8 +140,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData2DLinear::~ElasticityExplicitGravData2DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata2dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -172,90 +172,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsResidual[] = {
-  1.14469580e+10,  5.67331525e+10,
- -3.22261697e+10, -4.50853997e+10,
-  5.33382294e+09,  2.81311394e+10,
-  6.97040375e+10, -1.14320882e+11,
- -7.00903642e+10, -2.54877652e+11,
-  1.58455201e+10, -1.20572343e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsJacobian[] = {
-  2.24121094e+06,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  4.21875000e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
-  0.00000000e+00,  2.24121094e+06,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.36230469e+06,
-  2.41699219e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  2.41699219e+05,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  4.21875000e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  2.21484375e+07,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  2.21484375e+07,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00, -5.39062500e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  8.46679688e+06,
-  0.00000000e+00,  6.09375000e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  6.09375000e+06,
-  0.00000000e+00,  8.46679688e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsResidualLumped[] = {
   1.14454133e+10,  5.67334294e+10,
  -3.22283567e+10, -4.50868389e+10,
   5.33172309e+09,  2.81304297e+10,
@@ -264,7 +180,7 @@
   1.58484937e+10, -1.20568932e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData2DQuadratic::_valsJacobian[] = {
   4.21875000e+06,  4.21875000e+06,
   3.98437500e+06,  3.98437500e+06,
   3.98437500e+06,  3.98437500e+06,
@@ -300,8 +216,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData2DQuadratic::~ElasticityExplicitGravData2DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata2dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -108,71 +108,13 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsResidual[] = {
- -6.53693819e+09,  3.88079833e+10, -3.01595567e+10,
- -4.32000975e+09,  7.13967240e+10, -9.96561003e+09,
-  7.21670494e+09, -1.13026998e+11, -6.77007835e+10,
-  3.64360549e+09,  2.82229089e+09, -2.66713597e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsJacobian[] = {
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsResidualLumped[] = {
  -6.53643381e+09,  3.88073108e+10, -3.01595567e+10,
  -4.31950537e+09,  7.13977327e+10, -9.96426503e+09,
   7.21485556e+09, -1.13028007e+11, -6.77021285e+10,
   3.64444612e+09,  2.82296339e+09, -2.66713597e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DLinear::_valsJacobian[] = {
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
@@ -206,8 +148,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData3DLinear::~ElasticityExplicitGravData3DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata3dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -189,322 +189,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsResidual[] = {
-  2.17054586e+10, -1.01739898e+10, -3.79635409e+09,
-  6.44485026e+10, -2.49355435e+10, -1.74360335e+10,
- -4.99706922e+10, -5.58679967e+10, -5.85992435e+10,
- -9.94786340e+09,  4.42029024e+10, -6.49170866e+10,
- -7.06409419e+09,  6.20990315e+10, -1.22648580e+11,
-  7.08323019e+10,  1.17494841e+11, -1.23397808e+11,
- -9.85096504e+10, -5.58231405e+10, -1.09044759e+11,
- -1.35961925e+10, -6.36499481e+10, -7.24518425e+10,
- -3.55911964e+10,  5.53493739e+10, -1.15258001e+11,
-  5.77073439e+10, -6.86734841e+10, -2.38942097e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsJacobian[] = {
-  1.50251107e+06,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.50251107e+06,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.50251107e+06,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsResidualLumped[] = {
   2.17058857e+10, -1.01733961e+10, -3.80035653e+09,
   6.44476753e+10, -2.49368998e+10, -1.74325480e+10,
  -4.99716018e+10, -5.58679351e+10, -5.85992570e+10,
@@ -517,7 +201,7 @@
   5.76997342e+10, -6.86862545e+10, -2.38861279e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitGravData3DQuadratic::_valsJacobian[] = {
   2.57903646e+06,  2.57903646e+06,  2.57903646e+06,
   2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
   2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
@@ -557,8 +241,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitGravData3DQuadratic::~ElasticityExplicitGravData3DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitGravData3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -93,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitgravdata3dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeform.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeform.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeform.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -52,38 +52,6 @@
     Calculate contribution to residual of operator for integrator.
 
     {r} = (1/dt**2)[M](-{u(t+dt)} + 2 {u(t)} - {u(t-dt)}) -
-          Sum(wt * [BL]^T [S])
-    """
-    import feutils
-
-    # Calculate action for inertia
-    M = integrator._calculateMassMat()
-    acc = (integrator.fieldTIncr - 
-           integrator.fieldT + 
-           integrator.fieldTmdt) / (integrator.dt**2) 
-    residual = -numpy.dot(M, acc)
-    residual = residual.flatten()
-    residual += self._elasticityResidual(integrator)
-    return residual
-
-
-  def calculateJacobian(self, integrator):
-    """
-    Calculate contribution to Jacobian matrix of operator for integrator.
-
-    [A] = (1/dt**2)[M]
-    """
-    M = integrator._calculateMassMat()
-
-    jacobian = 1.0/integrator.dt**2 * M
-    return jacobian
-
-
-  def calculateResidualLumped(self, integrator):
-    """
-    Calculate contribution to residual of operator for integrator.
-
-    {r} = (1/dt**2)[M](-{u(t+dt)} + 2 {u(t)} - {u(t-dt)}) -
           [K]{u(t)}
     """
     M = integrator._calculateMassMat()
@@ -100,7 +68,7 @@
     return residual
 
 
-  def calculateJacobianLumped(self, integrator):
+  def calculateJacobian(self, integrator):
     """
     Calculate contribution to Jacobian matrix of operator for integrator.
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_dtStableExplicit =   3.75000000e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_gravityVec[] = {
  -1.00000000e+08,
 };
@@ -95,23 +97,11 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_valsResidual[] = {
-  2.04829437e+10,
- -2.05560687e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_valsJacobian[] = {
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_valsResidualLumped[] = {
   2.04885687e+10,
  -2.05616937e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::_valsJacobian[] = {
   2.81250000e+07,
   2.81250000e+07,
 };
@@ -129,6 +119,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -142,8 +133,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData1DLinear::~ElasticityExplicitLgDeformData1DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata1dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_dtStableExplicit =   3.75000000e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_gravityVec[] = {
  -1.00000000e+08,
 };
@@ -109,30 +111,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_valsResidual[] = {
-  8.41042438e+10,
- -9.31754244e+09,
- -7.48532639e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_valsJacobian[] = {
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  2.50000000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_valsResidualLumped[] = {
   8.41101813e+10,
  -9.31160494e+09,
  -7.48651389e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::_valsJacobian[] = {
   9.37500000e+06,
   9.37500000e+06,
   3.75000000e+07,
@@ -151,6 +135,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -164,8 +149,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData1DQuadratic::~ElasticityExplicitLgDeformData1DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata1dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_dtStableExplicit =   1.50923086e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_gravityVec[] = {
   0.00000000e+00, -1.00000000e+08,
 };
@@ -100,39 +102,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_valsResidual[] = {
- -5.23632630e+11,  5.83305846e+11,
-  1.65372743e+11, -5.78685990e+11,
-  3.58250262e+11, -4.62306437e+09,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_valsJacobian[] = {
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_valsResidualLumped[] = {
  -5.23631714e+11,  5.83306915e+11,
   1.65371368e+11, -5.78689962e+11,
   3.58250720e+11, -4.62016160e+09,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::_valsJacobian[] = {
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
@@ -151,6 +126,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -164,8 +140,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData2DLinear::~ElasticityExplicitLgDeformData2DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata2dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_dtStableExplicit =   2.63523138e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_gravityVec[] = {
   0.00000000e+00, -1.00000000e+08,
 };
@@ -170,90 +172,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_valsResidual[] = {
-  3.35186619e+10,  8.10189832e+10,
- -7.94930135e+10, -4.37826989e+10,
-  2.10035850e+10,  2.15156871e+10,
-  7.31131484e+10, -6.34970387e+09,
- -5.42588065e+10, -9.94923096e+10,
-  6.13022939e+09,  4.70980577e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_valsJacobian[] = {
-  2.24121094e+06,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  4.21875000e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
-  0.00000000e+00,  2.24121094e+06,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.36230469e+06,
-  2.41699219e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  2.41699219e+05,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  4.21875000e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  2.21484375e+07,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  2.21484375e+07,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00, -5.39062500e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  8.46679688e+06,
-  0.00000000e+00,  6.09375000e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  6.09375000e+06,
-  0.00000000e+00,  8.46679688e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_valsResidualLumped[] = {
   3.35171172e+10,  8.10192601e+10,
  -7.94952005e+10, -4.37841381e+10,
   2.10014852e+10,  2.15149774e+10,
@@ -262,7 +180,7 @@
   6.13320302e+09,  4.71014693e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::_valsJacobian[] = {
   4.21875000e+06,  4.21875000e+06,
   3.98437500e+06,  3.98437500e+06,
   3.98437500e+06,  3.98437500e+06,
@@ -284,6 +202,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -297,8 +216,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData2DQuadratic::~ElasticityExplicitLgDeformData2DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata2dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_dtStableExplicit =   1.80277564e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_gravityVec[] = {
   0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
 };
@@ -106,71 +108,13 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_valsResidual[] = {
- -1.33659352e+10,  3.00655421e+11,  1.48221233e+11,
- -5.48900483e+10,  6.55599721e+11,  3.04460965e+11,
-  6.45910023e+10, -1.06342951e+12, -4.86426871e+11,
-  3.66834369e+09,  1.07174373e+11,  3.37473630e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_valsJacobian[] = {
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_valsResidualLumped[] = {
  -1.33654308e+10,  3.00654749e+11,  1.48221233e+11,
  -5.48895440e+10,  6.55600730e+11,  3.04462310e+11,
   6.45891529e+10, -1.06343052e+12, -4.86428216e+11,
   3.66918432e+09,  1.07175045e+11,  3.37473630e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::_valsJacobian[] = {
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
@@ -190,6 +134,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -203,8 +148,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData3DLinear::~ElasticityExplicitLgDeformData3DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata3dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_dtStableExplicit =   3.68555740e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_gravityVec[] = {
   0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
 };
@@ -187,322 +189,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_valsResidual[] = {
-  3.68904302e+10,  2.89154635e+10, -8.34303196e+08,
-  1.31658958e+11, -3.38188176e+10,  5.13285187e+10,
- -3.92909711e+11, -2.10630391e+11, -2.01774869e+11,
- -1.14269176e+11,  1.30717232e+11, -1.07973309e+11,
- -2.64258575e+11, -2.85535726e+10, -4.02072308e+10,
-  4.59398355e+11,  2.32376498e+11,  2.74963691e+11,
- -2.46994434e+11, -7.38524287e+10, -4.79760043e+10,
-  5.25219225e+10, -8.35281650e+10, -1.48179494e+10,
- -1.20392699e+11,  3.07708241e+11, -2.63722439e+11,
-  4.58368848e+11, -2.69312012e+11,  3.51028310e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_valsJacobian[] = {
-  1.50251107e+06,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.50251107e+06,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.50251107e+06,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_valsResidualLumped[] = {
   3.68908573e+10,  2.89160572e+10, -8.38305638e+08,
   1.31658131e+11, -3.38201739e+10,  5.13320041e+10,
  -3.92910621e+11, -2.10630330e+11, -2.01774882e+11,
@@ -515,11 +201,11 @@
   4.58361238e+11, -2.69324783e+11,  3.51036392e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::_valsJacobian[] = {
   2.57903646e+06,  2.57903646e+06,  2.57903646e+06,
+  2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
+  2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
   2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
-  2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
-  2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
   1.20947917e+07,  1.20947917e+07,  1.20947917e+07,
   8.35963542e+06,  8.35963542e+06,  8.35963542e+06,
   8.35963542e+06,  8.35963542e+06,  8.35963542e+06,
@@ -541,6 +227,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -554,8 +241,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformData3DQuadratic::~ElasticityExplicitLgDeformData3DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformData3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformdata3dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_dtStableExplicit =   3.75000000e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_gravityVec[] = {
  -1.00000000e+08,
 };
@@ -95,23 +97,11 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_valsResidual[] = {
- -2.60767056e+11,
- -3.01806069e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_valsJacobian[] = {
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-  1.40625000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_valsResidualLumped[] = {
  -2.60761431e+11,
  -3.01811694e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::_valsJacobian[] = {
   2.81250000e+07,
   2.81250000e+07,
 };
@@ -129,6 +119,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -142,8 +133,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData1DLinear::~ElasticityExplicitLgDeformGravData1DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata1dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_dtStableExplicit =   3.75000000e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_gravityVec[] = {
  -1.00000000e+08,
 };
@@ -109,30 +111,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_valsResidual[] = {
- -9.64575617e+09,
- -1.03067542e+11,
- -4.49853264e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_valsJacobian[] = {
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
- -3.12500000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  6.25000000e+06,
-  2.50000000e+07,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_valsResidualLumped[] = {
  -9.63981867e+09,
  -1.03061605e+11,
  -4.49865139e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::_valsJacobian[] = {
   9.37500000e+06,
   9.37500000e+06,
   3.75000000e+07,
@@ -151,6 +135,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -164,8 +149,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData1DQuadratic::~ElasticityExplicitLgDeformGravData1DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData1DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata1dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_dtStableExplicit =   1.50923086e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_gravityVec[] = {
   0.00000000e+00, -1.00000000e+08,
 };
@@ -100,39 +102,12 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_valsResidual[] = {
- -5.23632630e+11,  5.37472513e+11,
-  1.65372743e+11, -6.24519323e+11,
-  3.58250262e+11, -5.04563977e+10,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_valsJacobian[] = {
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  1.52777778e+06,  0.00000000e+00,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-  0.00000000e+00,  1.52777778e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_valsResidualLumped[] = {
  -5.23631714e+11,  5.37473582e+11,
   1.65371368e+11, -6.24523296e+11,
   3.58250720e+11, -5.04534949e+10,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::_valsJacobian[] = {
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
   4.58333333e+06,  4.58333333e+06,
@@ -151,6 +126,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -164,8 +140,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData2DLinear::~ElasticityExplicitLgDeformGravData2DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata2dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_dtStableExplicit =   2.63523138e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_gravityVec[] = {
   0.00000000e+00, -1.00000000e+08,
 };
@@ -170,90 +172,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_valsResidual[] = {
-  3.35186619e+10,  3.88314832e+10,
- -7.94930135e+10, -8.36264489e+10,
-  2.10035850e+10, -1.83280629e+10,
-  7.31131484e+10, -2.31349704e+11,
- -5.42588065e+10, -1.51054810e+11,
-  6.13022939e+09, -4.46444228e+09,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_valsJacobian[] = {
-  2.24121094e+06,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  2.41699219e+05,  0.00000000e+00,
-  4.21875000e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
- -1.36230469e+06,  0.00000000e+00,
-  0.00000000e+00,  2.24121094e+06,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.36230469e+06,
-  2.41699219e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  2.41699219e+05,  0.00000000e+00,
- -6.73828125e+05,  0.00000000e+00,
-  3.61083984e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
-  0.00000000e+00,  2.41699219e+05,
-  0.00000000e+00, -6.73828125e+05,
-  0.00000000e+00,  3.61083984e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  4.21875000e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  3.45703125e+06,  0.00000000e+00,
-  2.21484375e+07,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  0.00000000e+00,  4.21875000e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  3.45703125e+06,
-  0.00000000e+00,  2.21484375e+07,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00, -5.39062500e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  8.46679688e+06,
-  0.00000000e+00,  6.09375000e+06,
- -1.36230469e+06,  0.00000000e+00,
- -1.12792969e+06,  0.00000000e+00,
- -1.52343750e+06,  0.00000000e+00,
- -5.39062500e+06,  0.00000000e+00,
-  6.09375000e+06,  0.00000000e+00,
-  8.46679688e+06,  0.00000000e+00,
-  0.00000000e+00, -1.36230469e+06,
-  0.00000000e+00, -1.12792969e+06,
-  0.00000000e+00, -1.52343750e+06,
-  0.00000000e+00, -5.39062500e+06,
-  0.00000000e+00,  6.09375000e+06,
-  0.00000000e+00,  8.46679688e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_valsResidualLumped[] = {
   3.35171172e+10,  3.88317601e+10,
  -7.94952005e+10, -8.36278881e+10,
   2.10014852e+10, -1.83287726e+10,
@@ -262,7 +180,7 @@
   6.13320302e+09, -4.46103066e+09,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::_valsJacobian[] = {
   4.21875000e+06,  4.21875000e+06,
   3.98437500e+06,  3.98437500e+06,
   3.98437500e+06,  3.98437500e+06,
@@ -284,6 +202,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -297,8 +216,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData2DQuadratic::~ElasticityExplicitLgDeformGravData2DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData2DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata2dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_dtStableExplicit =   1.80277564e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_gravityVec[] = {
   0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
 };
@@ -106,71 +108,13 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_valsResidual[] = {
- -1.33659352e+10,  3.00655421e+11,  1.14596233e+11,
- -5.48900483e+10,  6.55599721e+11,  2.70835965e+11,
-  6.45910023e+10, -1.06342951e+12, -5.20051871e+11,
-  3.66834369e+09,  1.07174373e+11,  1.22363040e+08,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_valsJacobian[] = {
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  8.40625000e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  8.40625000e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-  0.00000000e+00,  0.00000000e+00,  8.40625000e+05,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_valsResidualLumped[] = {
  -1.33654308e+10,  3.00654749e+11,  1.14596233e+11,
  -5.48895440e+10,  6.55600730e+11,  2.70837310e+11,
   6.45891529e+10, -1.06343052e+12, -5.20053216e+11,
   3.66918432e+09,  1.07175045e+11,  1.22363040e+08,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::_valsJacobian[] = {
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
   3.36250000e+06,  3.36250000e+06,  3.36250000e+06,
@@ -190,6 +134,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -203,8 +148,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData3DLinear::~ElasticityExplicitLgDeformGravData3DLinear(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DLinear.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata3dlinear_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.cc	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.cc	2012-09-20 21:37:41 UTC (rev 20751)
@@ -43,6 +43,8 @@
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_dt =   1.00000000e-02;
 
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_dtStableExplicit =   3.68555740e-04;
+
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_gravityVec[] = {
   0.00000000e+00,  0.00000000e+00, -1.00000000e+08,
 };
@@ -187,322 +189,6 @@
 };
 
 const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_valsResidual[] = {
-  3.68904302e+10,  2.89154635e+10, -2.66246678e+10,
-  1.31658958e+11, -3.38188176e+10,  2.73167999e+10,
- -3.92909711e+11, -2.10630391e+11, -2.25786587e+11,
- -1.14269176e+11,  1.30717232e+11, -1.31985028e+11,
- -2.64258575e+11, -2.85535726e+10, -1.61155147e+11,
-  4.59398355e+11,  2.32376498e+11,  1.91367337e+11,
- -2.46994434e+11, -7.38524287e+10, -1.31572358e+11,
-  5.25219225e+10, -8.35281650e+10, -9.84143036e+10,
- -1.20392699e+11,  3.07708241e+11, -3.84670356e+11,
-  4.58368848e+11, -2.69312012e+11,  2.30080394e+11,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_valsJacobian[] = {
-  1.50251107e+06,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.50251107e+06,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.50251107e+06,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -5.70500651e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
- -8.39520833e+05,  0.00000000e+00,  0.00000000e+00,
-  2.84272070e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -5.70500651e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00, -8.39520833e+05,  0.00000000e+00,
-  0.00000000e+00,  2.84272070e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -5.70500651e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00, -8.39520833e+05,
-  0.00000000e+00,  0.00000000e+00,  2.84272070e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  1.24238411e+06,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
- -5.06914062e+05,  0.00000000e+00,  0.00000000e+00,
-  5.45154948e+05,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.50829167e+06,  0.00000000e+00,  0.00000000e+00,
-  1.80888281e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00,  1.24238411e+06,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00, -5.06914062e+05,  0.00000000e+00,
-  0.00000000e+00,  5.45154948e+05,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.50829167e+06,  0.00000000e+00,
-  0.00000000e+00,  1.80888281e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00,  1.24238411e+06,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00, -5.06914062e+05,
-  0.00000000e+00,  0.00000000e+00,  5.45154948e+05,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.50829167e+06,
-  0.00000000e+00,  0.00000000e+00,  1.80888281e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
- -3.13041667e+05,  0.00000000e+00,  0.00000000e+00,
- -6.43869792e+05,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  1.46026823e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  5.19364583e+05,  0.00000000e+00,  0.00000000e+00,
-  1.12054688e+06,  0.00000000e+00,  0.00000000e+00,
-  2.05611458e+06,  0.00000000e+00,  0.00000000e+00,
-  3.25847917e+06,  0.00000000e+00,  0.00000000e+00,
-  0.00000000e+00, -3.13041667e+05,  0.00000000e+00,
-  0.00000000e+00, -6.43869792e+05,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  1.46026823e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  5.19364583e+05,  0.00000000e+00,
-  0.00000000e+00,  1.12054688e+06,  0.00000000e+00,
-  0.00000000e+00,  2.05611458e+06,  0.00000000e+00,
-  0.00000000e+00,  3.25847917e+06,  0.00000000e+00,
-  0.00000000e+00,  0.00000000e+00, -3.13041667e+05,
-  0.00000000e+00,  0.00000000e+00, -6.43869792e+05,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  1.46026823e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  5.19364583e+05,
-  0.00000000e+00,  0.00000000e+00,  1.12054688e+06,
-  0.00000000e+00,  0.00000000e+00,  2.05611458e+06,
-  0.00000000e+00,  0.00000000e+00,  3.25847917e+06,
-};
-
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_valsResidualLumped[] = {
   3.68908573e+10,  2.89160572e+10, -2.66286702e+10,
   1.31658131e+11, -3.38201739e+10,  2.73202854e+10,
  -3.92910621e+11, -2.10630330e+11, -2.25786601e+11,
@@ -515,11 +201,11 @@
   4.58361238e+11, -2.69324783e+11,  2.30088475e+11,
 };
 
-const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_valsJacobianLumped[] = {
+const PylithScalar pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::_valsJacobian[] = {
   2.57903646e+06,  2.57903646e+06,  2.57903646e+06,
+  2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
+  2.40117187e+06,  2.40117187e+06,  2.40117187e+06,
   2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
-  2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
-  2.40117188e+06,  2.40117188e+06,  2.40117188e+06,
   1.20947917e+07,  1.20947917e+07,  1.20947917e+07,
   8.35963542e+06,  8.35963542e+06,  8.35963542e+06,
   8.35963542e+06,  8.35963542e+06,  8.35963542e+06,
@@ -541,6 +227,7 @@
   matId = _matId;
   matLabel = const_cast<char*>(_matLabel);
   dt = _dt;
+  dtStableExplicit = _dtStableExplicit;
   gravityVec = const_cast<PylithScalar*>(_gravityVec);
   vertices = const_cast<PylithScalar*>(_vertices);
   cells = const_cast<int*>(_cells);
@@ -554,8 +241,6 @@
   fieldTmdt = const_cast<PylithScalar*>(_fieldTmdt);
   valsResidual = const_cast<PylithScalar*>(_valsResidual);
   valsJacobian = const_cast<PylithScalar*>(_valsJacobian);
-  valsResidualLumped = const_cast<PylithScalar*>(_valsResidualLumped);
-  valsJacobianLumped = const_cast<PylithScalar*>(_valsJacobianLumped);
 } // constructor
 
 pylith::feassemble::ElasticityExplicitLgDeformGravData3DQuadratic::~ElasticityExplicitLgDeformGravData3DQuadratic(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.hh	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityExplicitLgDeformGravData3DQuadratic.hh	2012-09-20 21:37:41 UTC (rev 20751)
@@ -65,6 +65,8 @@
 
   static const PylithScalar _dt;
 
+  static const PylithScalar _dtStableExplicit;
+
   static const PylithScalar _gravityVec[];
 
   static const PylithScalar _vertices[];
@@ -91,10 +93,6 @@
 
   static const PylithScalar _valsJacobian[];
 
-  static const PylithScalar _valsResidualLumped[];
-
-  static const PylithScalar _valsJacobianLumped[];
-
 };
 
 #endif // pylith_feassemble_elasticityexplicitlgdeformgravdata3dquadratic_hh

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityLgDeformExplicitApp.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityLgDeformExplicitApp.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/feassemble/data/ElasticityLgDeformExplicitApp.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -54,8 +54,7 @@
     self._collectData()
     self._calculateResidual()
     self._calculateJacobian()
-    self._calculateResidualLumped()
-    self._calculateJacobianLumped()
+    self._calcDtStable()
     self._initData()
     self.data.write(self.name)
     return

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicit.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicit.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicit.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -121,8 +121,14 @@
     (mesh, integrator) = self._preinitialize()
     fields = self._initialize(mesh, integrator)
 
-    from pylith.utils.utils import maxscalar
-    self.assertAlmostEqual(1.0, integrator.stableTimeStep(mesh)/maxscalar(), 7)
+    b = 2**0.5
+    a = 2**0.5
+    c = 2.0
+    k = 0.5 * (a + b + c)
+    r = (k*(k-a)*(k-b)*(k-c))**0.5 / k
+    dtStable = 3*r/6000.0
+
+    self.assertAlmostEqual(1.0, integrator.stableTimeStep(mesh)/dtStable, 7)
     return
 
 
@@ -165,9 +171,12 @@
     (mesh, integrator) = self._preinitialize()
     fields = self._initialize(mesh, integrator)
 
-    from pylith.topology.Jacobian import Jacobian
-    jacobian = Jacobian(fields.solution())
+    from pylith.topology.Field import MeshField
+    jacobian = MeshField(mesh)
+    jacobian.newSection(jacobian.VERTICES_FIELD, mesh.coordsys().spaceDim())
+    jacobian.allocate()
     jacobian.zero()
+
     t = 7.3
     self.assertEqual(True, integrator.needNewJacobian())
     integrator.integrateJacobian(jacobian, t, fields)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py	2012-09-20 16:42:15 UTC (rev 20750)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/pytests/feassemble/TestElasticityExplicitLgDeform.py	2012-09-20 21:37:41 UTC (rev 20751)
@@ -165,9 +165,12 @@
     (mesh, integrator) = self._preinitialize()
     fields = self._initialize(mesh, integrator)
 
-    from pylith.topology.Jacobian import Jacobian
-    jacobian = Jacobian(fields.solution())
+    from pylith.topology.Field import MeshField
+    jacobian = MeshField(mesh)
+    jacobian.newSection(jacobian.VERTICES_FIELD, mesh.coordsys().spaceDim())
+    jacobian.allocate()
     jacobian.zero()
+
     t = 7.3
     self.assertEqual(True, integrator.needNewJacobian())
     integrator.integrateJacobian(jacobian, t, fields)



More information about the CIG-COMMITS mailing list