[cig-commits] r21935 - in short/3D/PyLith/trunk/unittests/libtests/feassemble: . data

brad at geodynamics.org brad at geodynamics.org
Thu Apr 25 07:54:40 PDT 2013


Author: brad
Date: 2013-04-25 07:54:40 -0700 (Thu, 25 Apr 2013)
New Revision: 21935

Added:
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.hh
Modified:
   short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc
   short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh
Log:
Added missing files (consolidated test objects).

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-04-25 12:25:25 UTC (rev 21934)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc	2013-04-25 14:54:40 UTC (rev 21935)
@@ -26,7 +26,7 @@
 #include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
 #include "pylith/feassemble/Quadrature.hh" // USES Quadrature
 #include "pylith/topology/Mesh.hh" // USES Mesh
-#include "pylith/topology/SubMesh.hh" // USES Mesh
+#include "pylith/topology/SubMesh.hh" // USES SubMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/SolutionFields.hh" // USES SolutionFields

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.cc	2013-04-25 14:54:40 UTC (rev 21935)
@@ -0,0 +1,406 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// 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.
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityExplicitCases.hh" // Implementation of class methods
+
+#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
+
+#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
+#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData1DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit1DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData1DLinear();
+  _gravityField = 0;
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(_quadrature);
+  _quadrature->refGeometry(&geometry);
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData1DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit1DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData1DQuadratic();
+  _gravityField = 0;
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(_quadrature);
+  _quadrature->refGeometry(&geometry);
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData2DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit2DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData2DLinear();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData2DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit2DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData2DQuadratic();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData3DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit3DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData3DLinear();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitData3DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicit3DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitData3DQuadratic();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData1DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav1DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData1DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryLine1D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticStrain1D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData1DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav1DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData1DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryLine1D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticStrain1D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData2DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav2DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData2DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData2DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav2DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData2DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData3DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav3DLinear::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData3DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  _gravityField->gravAcceleration(g);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitGravData3DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitGrav3DQuadratic::setUp(void)
+{ // setUp
+  PYLITH_METHOD_BEGIN;
+
+  TestElasticityExplicit::setUp();
+
+  _data = new ElasticityExplicitGravData3DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  _gravityField->gravAcceleration(g);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+
+  PYLITH_METHOD_END;
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitCases.hh	2013-04-25 14:54:40 UTC (rev 21935)
@@ -0,0 +1,367 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// 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 unittests/libtests/feassemble/TestElasticityExplicitCases.hh
+ *
+ * @brief C++ TestElasticityExplicit object
+ *
+ * C++ unit testing for ElasticityExplicit.
+ */
+
+#if !defined(pylith_feassemble_testelasticityexplicitcases_hh)
+#define pylith_feassemble_testelasticityexplicitcases_hh
+
+#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityExplicit1DLinear;
+    class TestElasticityExplicit1DQuadratic;
+    class TestElasticityExplicit2DLinear;
+    class TestElasticityExplicit2DQuadratic;
+    class TestElasticityExplicit3DLinear;
+    class TestElasticityExplicit3DQuadratic;
+
+    class TestElasticityExplicitGrav1DLinear;
+    class TestElasticityExplicitGrav1DQuadratic;
+    class TestElasticityExplicitGrav2DLinear;
+    class TestElasticityExplicitGrav2DQuadratic;
+    class TestElasticityExplicitGrav3DLinear;
+    class TestElasticityExplicitGrav3DQuadratic;
+  } // feassemble
+} // pylith
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/1-D linear cells.
+class pylith::feassemble::TestElasticityExplicit1DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit1DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit1DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit1DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/1-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicit1DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit1DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit1DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit1DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/2-D linear cells.
+class pylith::feassemble::TestElasticityExplicit2DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit2DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit2DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit2DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/2-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicit2DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit2DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit2DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit2DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/3-D linear cells.
+class pylith::feassemble::TestElasticityExplicit3DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit3DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit3DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/3-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicit3DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicit3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicit3DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicit3DQuadratic
+
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/1-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitGrav1DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav1DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav1DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/1-D quadratic cells amd gravity.
+class pylith::feassemble::TestElasticityExplicitGrav1DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav1DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav1DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/2-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitGrav2DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav2DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav2DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/2-D quadratic cells amd gravity.
+class pylith::feassemble::TestElasticityExplicitGrav2DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav2DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav2DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/3-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitGrav3DLinear :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav3DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicit w/3-D quadratic cells amd gravity.
+class pylith::feassemble::TestElasticityExplicitGrav3DQuadratic :
+  public TestElasticityExplicit
+{ // class TestElasticityExplicitGrav3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+  CPPUNIT_TEST( testStableTimeStep );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitGrav3DQuadratic
+
+
+#endif // pylith_feassemble_testelasticityexplicitcases_hh
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.cc	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.cc	2013-04-25 14:54:40 UTC (rev 21935)
@@ -0,0 +1,358 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// 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.
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestElasticityExplicitLgDeformCases.hh" // Implementation of class methods
+
+#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
+#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
+
+#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
+#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
+#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
+
+#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
+#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
+#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
+
+#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData1DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform1DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform1DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData1DLinear();
+  _gravityField = 0;
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(_quadrature);
+  _quadrature->refGeometry(&geometry);
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData1DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData1DQuadratic();
+  _gravityField = 0;
+  GeometryLine1D geometry;
+  CPPUNIT_ASSERT(_quadrature);
+  _quadrature->refGeometry(&geometry);
+  _material = new materials::ElasticStrain1D;
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData2DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform2DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform2DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData2DLinear();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData2DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData2DQuadratic();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData3DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform3DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform3DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData3DLinear();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformData3DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformData3DQuadratic();
+  _gravityField = 0;
+  CPPUNIT_ASSERT(_quadrature);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData1DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData1DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryLine1D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticStrain1D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData1DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData1DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryLine1D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { -1.0, 0.0, 0.0};
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticStrain1D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData2DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData2DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData2DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData2DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTri2D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  const PylithScalar gravityDir[] = { 0.0, -1.0, 0.0 };
+  _gravityField->gravAcceleration(g);
+  _gravityField->gravityDir(gravityDir[0], gravityDir[1], gravityDir[2]);
+
+  _material = new materials::ElasticPlaneStrain;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData3DLinear.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData3DLinear();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  _gravityField->gravAcceleration(g);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+} // setUp
+
+
+// ----------------------------------------------------------------------
+#include "data/ElasticityExplicitLgDeformGravData3DQuadratic.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic );
+
+// Setup testing data.
+void
+pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic::setUp(void)
+{ // setUp
+  TestElasticityExplicitLgDeform::setUp();
+
+  _data = new ElasticityExplicitLgDeformGravData3DQuadratic();
+  _gravityField = new spatialdata::spatialdb::GravityField();
+  CPPUNIT_ASSERT(_quadrature);
+  CPPUNIT_ASSERT(_gravityField);
+  GeometryTet3D geometry;
+  _quadrature->refGeometry(&geometry);
+
+  const PylithScalar accScale = _data->lengthScale / (_data->timeScale * _data->timeScale);
+  const PylithScalar g = 1.0e8 / accScale;
+  _gravityField->gravAcceleration(g);
+
+  _material = new materials::ElasticIsotropic3D;
+  CPPUNIT_ASSERT(_material);
+  
+  CPPUNIT_ASSERT(_data);
+  CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
+} // setUp
+
+
+// End of file 

Added: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.hh	                        (rev 0)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformCases.hh	2013-04-25 14:54:40 UTC (rev 21935)
@@ -0,0 +1,354 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// 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 unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
+ *
+ * @brief C++ TestElasticityExplicitLgDeform object
+ *
+ * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells.
+ */
+
+#if !defined(pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh)
+#define pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh
+
+#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
+
+/// Namespace for pylith package
+namespace pylith {
+  namespace feassemble {
+    class TestElasticityExplicitLgDeform1DLinear;
+    class TestElasticityExplicitLgDeform1DQuadratic;
+    class TestElasticityExplicitLgDeform2DLinear;
+    class TestElasticityExplicitLgDeform2DQuadratic;
+    class TestElasticityExplicitLgDeform3DLinear;
+    class TestElasticityExplicitLgDeform3DQuadratic;
+
+    class TestElasticityExplicitLgDeformGrav1DLinear;
+    class TestElasticityExplicitLgDeformGrav1DQuadratic;
+    class TestElasticityExplicitLgDeformGrav2DLinear;
+    class TestElasticityExplicitLgDeformGrav2DQuadratic;
+    class TestElasticityExplicitLgDeformGrav3DLinear;
+    class TestElasticityExplicitLgDeformGrav3DQuadratic;
+  } // feassemble
+} // pylith
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/1-D linear cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform1DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform1DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform1DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform1DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/1-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform1DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform1DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform1DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform1DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/2-D linear cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform2DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform2DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform2DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform2DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/2-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform2DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform2DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform2DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform2DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/3-D linear cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform3DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform3DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform3DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/3-D quadratic cells.
+class pylith::feassemble::TestElasticityExplicitLgDeform3DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeform3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeform3DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeform3DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/1-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav1DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav1DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav1DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/1-D quadratic cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav1DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav1DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav1DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/2-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav2DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav2DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav2DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/2-D quadratic cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav2DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav2DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav2DQuadratic
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/3-D linear cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav3DLinear
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav3DLinear );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav3DLinear
+
+
+// ----------------------------------------------------------------------
+/// C++ unit testing for ElasticityExplicitLgDeform w/3-D quadratic cells and gravity.
+class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic :
+  public TestElasticityExplicitLgDeform
+{ // class TestElasticityExplicitLgDeformGrav3DQuadratic
+
+  // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+  CPPUNIT_TEST_SUITE( TestElasticityExplicitLgDeformGrav3DQuadratic );
+
+  CPPUNIT_TEST( testInitialize );
+  CPPUNIT_TEST( testIntegrateResidual );
+  CPPUNIT_TEST( testIntegrateJacobian );
+  CPPUNIT_TEST( testUpdateStateVars );
+
+  CPPUNIT_TEST_SUITE_END();
+
+  // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+  /// Setup testing data.
+  void setUp(void);
+
+}; // class TestElasticityExplicitLgDeformGrav3DQuadratic
+
+
+#endif // pylith_feassemble_testelasticityexplicitlgdeformcases_hh
+
+
+// End of file 

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2013-04-25 12:25:25 UTC (rev 21934)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc	2013-04-25 14:54:40 UTC (rev 21935)
@@ -21,14 +21,8 @@
 // ----------------------------------------------------------------------
 // Constructor
 pylith::feassemble::ElasticityExplicitData::ElasticityExplicitData(void) :
-  lengthScale(1.0e+3),
-  pressureScale(2.25e+10),
-  densityScale(1.0),
-  timeScale(2.0),
   dtStableExplicit(1.0e+99)
 { // constructor
-  const PylithScalar velScale = lengthScale / timeScale;
-  densityScale = pressureScale / (velScale*velScale);
 } // constructor
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2013-04-25 12:25:25 UTC (rev 21934)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh	2013-04-25 14:54:40 UTC (rev 21935)
@@ -42,14 +42,6 @@
 // PUBLIC MEMBERS ///////////////////////////////////////////////////////
 public:
 
-  /// @name Scales information for nondimensionalization.
-  //@{
-  PylithScalar lengthScale; ///< Length scale.
-  PylithScalar pressureScale; ///< Pressure scale.
-  PylithScalar timeScale; ///< Time scale.
-  PylithScalar densityScale; ///< Density scale.
-  //@}  
-
   /// @name Calculated values.
   //@{
   PylithScalar dtStableExplicit; ///< Stable time step for explicit time integration.

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc	2013-04-25 12:25:25 UTC (rev 21934)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.cc	2013-04-25 14:54:40 UTC (rev 21935)
@@ -35,6 +35,10 @@
   quadWts(0),
   basis(0),
   basisDerivRef(0),
+  lengthScale(1.0e+3),
+  pressureScale(2.25e+10),
+  densityScale(1.0),
+  timeScale(2.0),
   matType(0),
   matDBFilename(0),
   matId(0),
@@ -46,6 +50,8 @@
   valsResidual(0),
   valsJacobian(0)
 { // constructor
+  const PylithScalar velScale = lengthScale / timeScale;
+  densityScale = pressureScale / (velScale*velScale);
 } // constructor
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh	2013-04-25 12:25:25 UTC (rev 21934)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/IntegratorData.hh	2013-04-25 14:54:40 UTC (rev 21935)
@@ -72,6 +72,14 @@
   char* matLabel; ///< Label of material.
   //@}
 
+  /// @name Scales information for nondimensionalization.
+  //@{
+  PylithScalar lengthScale; ///< Length scale.
+  PylithScalar pressureScale; ///< Pressure scale.
+  PylithScalar timeScale; ///< Time scale.
+  PylithScalar densityScale; ///< Density scale.
+  //@}  
+
   /// @name Input fields
   //@{
   PylithScalar dt; ///< Time step



More information about the CIG-COMMITS mailing list