[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