[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