[cig-commits] r21925 - in short/3D/PyLith/trunk: libsrc/pylith/feassemble unittests/libtests/feassemble unittests/libtests/feassemble/data
brad at geodynamics.org
brad at geodynamics.org
Wed Apr 24 12:55:25 PDT 2013
Author: brad
Date: 2013-04-24 12:55:25 -0700 (Wed, 24 Apr 2013)
New Revision: 21925
Removed:
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
Modified:
short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh
Log:
Code cleanup. Add scales to unit tests.
Modified: short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/libsrc/pylith/feassemble/ElasticityExplicitLgDeform.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -404,9 +404,8 @@
assert(dt > 0);
// Setup field visitors.
+ scalar_array valuesIJ(numBasis);
topology::VecVisitorMesh jacobianVisitor(*jacobian);
- PetscScalar* jacobianCell = NULL;
- PetscInt jacobianSize = 0;
topology::CoordsVisitor coordsVisitor(dmMesh);
PetscScalar* coordsCell = NULL;
@@ -441,24 +440,31 @@
const scalar_array& density = _material->calcDensity();
// Compute Jacobian for inertial terms
- for (int iQuad=0; iQuad < numQuadPts; ++iQuad) {
- const PylithScalar wt =
- quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
- for (int iBasis=0, iQ=iQuad*numBasis; iBasis < numBasis; ++iBasis) {
- const PylithScalar valI = wt*basis[iQ+iBasis];
- for (int jBasis=0; jBasis < numBasis; ++jBasis) {
- const PylithScalar valIJ = valI * basis[iQ+jBasis];
- for (int iDim=0; iDim < spaceDim; ++iDim) {
- const int iBlock = (iBasis*spaceDim + iDim) * (numBasis*spaceDim);
- const int jBlock = (jBasis*spaceDim + iDim);
- _cellMatrix[iBlock+jBlock] += valIJ;
- } // for
- } // for
+ valuesIJ = 0.0;
+ for (int iQuad = 0; iQuad < numQuadPts; ++iQuad) {
+ const PylithScalar wt = quadWts[iQuad] * jacobianDet[iQuad] * density[iQuad] / dt2;
+ const int iQ = iQuad * numBasis;
+ PylithScalar valJ = 0.0;
+ for (int jBasis = 0; jBasis < numBasis; ++jBasis) {
+ valJ += basis[iQ + jBasis];
} // for
+ valJ *= wt;
+ for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
+ valuesIJ[iBasis] += basis[iQ + iBasis] * valJ;
+ } // for
} // for
- PetscLogFlops(numQuadPts*(3+numBasis*(1+numBasis*(1+spaceDim))));
- _lumpCellMatrix();
+ for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
+ for (int iDim = 0; iDim < spaceDim; ++iDim) {
+ _cellVector[iBasis*spaceDim+iDim] += valuesIJ[iBasis];
+ } // for
+ } // for
+#if defined(DETAILED_EVENT_LOGGING)
+ PetscLogFlops(numQuadPts*(4 + numBasis*3) + numBasis*spaceDim);
+ _logger->eventEnd(computeEvent);
+ _logger->eventBegin(updateEvent);
+#endif
+
// Assemble cell contribution into lumped matrix.
jacobianVisitor.setClosure(&_cellVector[0], _cellVector.size(), cell, ADD_VALUES);
} // for
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/Makefile.am 2013-04-24 19:55:25 UTC (rev 21925)
@@ -53,18 +53,7 @@
TestIntegrator.cc \
TestIntegratorElasticity.cc \
TestElasticityExplicit.cc \
- TestElasticityExplicit1DLinear.cc \
- TestElasticityExplicit1DQuadratic.cc \
- TestElasticityExplicit2DLinear.cc \
- TestElasticityExplicit2DQuadratic.cc \
- TestElasticityExplicit3DLinear.cc \
- TestElasticityExplicit3DQuadratic.cc \
- TestElasticityExplicitGrav1DLinear.cc \
- TestElasticityExplicitGrav1DQuadratic.cc \
- TestElasticityExplicitGrav2DLinear.cc \
- TestElasticityExplicitGrav2DQuadratic.cc \
- TestElasticityExplicitGrav3DLinear.cc \
- TestElasticityExplicitGrav3DQuadratic.cc \
+ TestElasticityExplicitCases.cc \
TestElasticityExplicitTri3.cc \
TestElasticityExplicitTet4.cc \
TestElasticityImplicit.cc \
@@ -82,18 +71,7 @@
TestElasticityImplicitGrav3DQuadratic.cc \
TestIntegratorElasticityLgDeform.cc \
TestElasticityExplicitLgDeform.cc \
- TestElasticityExplicitLgDeform1DLinear.cc \
- TestElasticityExplicitLgDeform1DQuadratic.cc \
- TestElasticityExplicitLgDeform2DLinear.cc \
- TestElasticityExplicitLgDeform2DQuadratic.cc \
- TestElasticityExplicitLgDeform3DLinear.cc \
- TestElasticityExplicitLgDeform3DQuadratic.cc \
- TestElasticityExplicitLgDeformGrav1DLinear.cc \
- TestElasticityExplicitLgDeformGrav1DQuadratic.cc \
- TestElasticityExplicitLgDeformGrav2DLinear.cc \
- TestElasticityExplicitLgDeformGrav2DQuadratic.cc \
- TestElasticityExplicitLgDeformGrav3DLinear.cc \
- TestElasticityExplicitLgDeformGrav3DQuadratic.cc \
+ TestElasticityExplicitLgDeformCases.cc \
TestElasticityImplicitLgDeform.cc \
TestElasticityImplicitLgDeform1DLinear.cc \
TestElasticityImplicitLgDeform1DQuadratic.cc \
@@ -114,18 +92,7 @@
noinst_HEADERS = \
TestCellGeometry.hh \
TestElasticityExplicit.hh \
- TestElasticityExplicit1DLinear.hh \
- TestElasticityExplicit1DQuadratic.hh \
- TestElasticityExplicit2DLinear.hh \
- TestElasticityExplicit2DQuadratic.hh \
- TestElasticityExplicit3DLinear.hh \
- TestElasticityExplicit3DQuadratic.hh \
- TestElasticityExplicitGrav1DLinear.hh \
- TestElasticityExplicitGrav1DQuadratic.hh \
- TestElasticityExplicitGrav2DLinear.hh \
- TestElasticityExplicitGrav2DQuadratic.hh \
- TestElasticityExplicitGrav3DLinear.hh \
- TestElasticityExplicitGrav3DQuadratic.hh \
+ TestElasticityExplicitCases.cc \
TestElasticityExplicitTri3.hh \
TestElasticityExplicitTet4.hh \
TestElasticityImplicit.hh \
@@ -143,18 +110,7 @@
TestElasticityImplicitGrav3DQuadratic.hh \
TestIntegratorElasticityLgDeform.hh \
TestElasticityExplicitLgDeform.hh \
- TestElasticityExplicitLgDeform1DLinear.hh \
- TestElasticityExplicitLgDeform1DQuadratic.hh \
- TestElasticityExplicitLgDeform2DLinear.hh \
- TestElasticityExplicitLgDeform2DQuadratic.hh \
- TestElasticityExplicitLgDeform3DLinear.hh \
- TestElasticityExplicitLgDeform3DQuadratic.hh \
- TestElasticityExplicitLgDeformGrav1DLinear.hh \
- TestElasticityExplicitLgDeformGrav1DQuadratic.hh \
- TestElasticityExplicitLgDeformGrav2DLinear.hh \
- TestElasticityExplicitLgDeformGrav2DQuadratic.hh \
- TestElasticityExplicitLgDeformGrav3DLinear.hh \
- TestElasticityExplicitLgDeformGrav3DQuadratic.hh \
+ TestElasticityExplicitLgDeformCases.hh \
TestElasticityImplicitLgDeform.hh \
TestElasticityImplicitLgDeform1DLinear.hh \
TestElasticityImplicitLgDeform1DQuadratic.hh \
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -27,6 +27,8 @@
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES Mesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
#include "pylith/topology/SolutionFields.hh" // USES SolutionFields
#include "pylith/topology/Jacobian.hh" // USES Jacobian
@@ -46,18 +48,18 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::feassemble::TestElasticityExplicit::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
_quadrature = new Quadrature<topology::Mesh>();
_data = 0;
_material = 0;
_gravityField = 0;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
@@ -65,10 +67,14 @@
void
pylith::feassemble::TestElasticityExplicit::tearDown(void)
{ // tearDown
+ PYLITH_METHOD_BEGIN;
+
delete _data; _data = 0;
delete _quadrature; _quadrature = 0;
delete _material; _material = 0;
delete _gravityField; _gravityField = 0;
+
+ PYLITH_METHOD_END;
} // tearDown
// ----------------------------------------------------------------------
@@ -76,7 +82,11 @@
void
pylith::feassemble::TestElasticityExplicit::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -84,6 +94,8 @@
void
pylith::feassemble::TestElasticityExplicit::testTimeStep(void)
{ // testTimeStep
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
const PylithScalar dt1 = 2.0;
@@ -92,6 +104,8 @@
integrator.timeStep(dt1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+ PYLITH_METHOD_END;
} // testTimeStep
// ----------------------------------------------------------------------
@@ -99,11 +113,15 @@
void
pylith::feassemble::TestElasticityExplicit::testNormViscosity(void)
{ // testNormViscosity
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
const PylithScalar viscosity = 1.234;
integrator.normViscosity(viscosity);
CPPUNIT_ASSERT_EQUAL(viscosity, integrator._normViscosity);
+
+ PYLITH_METHOD_END;
} // testTimeStep
// ----------------------------------------------------------------------
@@ -111,6 +129,8 @@
void
pylith::feassemble::TestElasticityExplicit::testMaterial(void)
{ // testMaterial
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
materials::ElasticIsotropic3D material;
@@ -125,6 +145,8 @@
const PylithScalar dt = 2.0;
integrator.timeStep(dt);
CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+ PYLITH_METHOD_END;
} // testMaterial
// ----------------------------------------------------------------------
@@ -132,6 +154,8 @@
void
pylith::feassemble::TestElasticityExplicit::testNeedNewJacobian(void)
{ // testNeedNewJacobian
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
materials::ElasticIsotropic3D material;
@@ -139,6 +163,8 @@
CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
integrator._needNewJacobian = false;
CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
+
+ PYLITH_METHOD_END;
} // testNeedNewJacobian
// ----------------------------------------------------------------------
@@ -146,13 +172,16 @@
void
pylith::feassemble::TestElasticityExplicit::testInitialize(void)
{ // testInitialize
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicit integrator;
topology::SolutionFields fields(mesh);
_initialize(&mesh, &integrator, &fields);
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -160,8 +189,10 @@
void
pylith::feassemble::TestElasticityExplicit::testIntegrateResidual(void)
{ // testIntegrateResidual
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicit integrator;
topology::SolutionFields fields(mesh);
@@ -171,34 +202,42 @@
const PylithScalar t = 1.0;
integrator.integrateResidual(residual, t, &fields);
- const PylithScalar* valsE = _data->valsResidual;
- const int sizeE = _data->spaceDim * _data->numVertices;
+ const PylithScalar* valsE = _data->valsResidual;CPPUNIT_ASSERT(valsE);
- PetscSection residualSection = residual.petscSection();
- Vec residualVec = residual.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
-
- CPPUNIT_ASSERT(residualSection);
- err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
- err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
#if 0 // DEBUGGING
residual.view("RESIDUAL");
std::cout << "EXPECTED RESIDUAL" << std::endl;
+ const int size = _data->numVertices * _data->spaceDim;
for (int i=0; i < size; ++i)
std::cout << " " << valsE[i] << std::endl;
#endif
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+ topology::VecVisitorMesh residualVisitor(residual);
+ const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+ const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+ const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
- err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = residualVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateResidual
// ----------------------------------------------------------------------
@@ -206,8 +245,10 @@
void
pylith::feassemble::TestElasticityExplicit::testIntegrateJacobian(void)
{ // testIntegrateJacobian
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicit integrator;
topology::SolutionFields fields(mesh);
@@ -225,8 +266,7 @@
CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
jacobian.complete();
- const PylithScalar* valsE = _data->valsJacobian;
- const int sizeE = _data->numVertices * _data->spaceDim;
+ const PylithScalar* valsE = _data->valsJacobian;CPPUNIT_ASSERT(valsE);
#if 0 // DEBUGGING
// TEMPORARY
@@ -240,24 +280,31 @@
} // for
#endif // DEBUGGING
- PetscSection jacobianSection = jacobian.petscSection();
- Vec jacobianVec = jacobian.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
- CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
- err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
+ topology::VecVisitorMesh jacobianVisitor(jacobian);
+ const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
- err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+ const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
+
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = jacobianVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateJacobian
// ----------------------------------------------------------------------
@@ -265,6 +312,8 @@
void
pylith::feassemble::TestElasticityExplicit::testUpdateStateVars(void)
{ // testUpdateStateVars
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -274,6 +323,8 @@
const PylithScalar t = 1.0;
integrator.updateStateVars(t, &fields);
+
+ PYLITH_METHOD_END;
} // testUpdateStateVars
// ----------------------------------------------------------------------
@@ -281,6 +332,8 @@
void
pylith::feassemble::TestElasticityExplicit::testStableTimeStep(void)
{ // testStableTimeStep
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -290,80 +343,49 @@
const PylithScalar dtStable = integrator.stableTimeStep(mesh);
const PylithScalar tolerance = 1.0e-6;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+ PYLITH_METHOD_END;
} // testStableTimeStep
-extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
-extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
// ----------------------------------------------------------------------
+extern PetscErrorCode DMPlexBuildFromCellList_Private(PetscDM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
+extern PetscErrorCode DMPlexBuildCoordinates_Private(PetscDM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
+
// Initialize elasticity integrator.
void
-pylith::feassemble::TestElasticityExplicit::_initialize(
- topology::Mesh* mesh,
- ElasticityExplicit* const integrator,
- topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicit::_initialize(topology::Mesh* mesh,
+ ElasticityExplicit* const integrator,
+ topology::SolutionFields* fields)
{ // _initialize
- CPPUNIT_ASSERT(0 != mesh);
- CPPUNIT_ASSERT(0 != integrator);
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _material);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(mesh);
+ CPPUNIT_ASSERT(integrator);
+ CPPUNIT_ASSERT(_data);
+ CPPUNIT_ASSERT(_quadrature);
+ CPPUNIT_ASSERT(_material);
+
const int spaceDim = _data->spaceDim;
const PylithScalar dt = _data->dt;
// Setup mesh
- mesh->createSieveMesh(_data->cellDim);
- const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- ALE::Obj<SieveMesh::sieve_type> sieve =
- new SieveMesh::sieve_type(mesh->comm());
- CPPUNIT_ASSERT(!sieve.isNull());
-
mesh->createDMMesh(_data->cellDim);
- DM dmMesh = mesh->dmMesh();
- CPPUNIT_ASSERT(dmMesh);
+ PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
// Cells and vertices
const bool interpolate = false;
- ALE::Obj<SieveFlexMesh::sieve_type> s =
- new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-
- ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s,
- _data->cellDim, _data->numCells,
- const_cast<int*>(_data->cells),
- _data->numVertices,
- interpolate, _data->numBasis);
- std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
- ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
- sieveMesh->setSieve(sieve);
- sieveMesh->stratify();
- ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim,
- _data->vertices);
PetscErrorCode err;
-
err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
// Material ids
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->heightStratum(0);
- CPPUNIT_ASSERT(!cells.isNull());
- const ALE::Obj<SieveMesh::label_type>& labelMaterials =
- sieveMesh->createLabel("material-id");
- CPPUNIT_ASSERT(!labelMaterials.isNull());
- int i = 0;
- for(SieveMesh::label_sequence::iterator e_iter=cells->begin();
- e_iter != cells->end();
- ++e_iter)
- sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
PetscInt cStart, cEnd, c;
-
err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
for(PetscInt c = cStart; c < cEnd; ++c) {
err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
- }
+ } // for
// Setup quadrature
_quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -373,11 +395,22 @@
_data->quadWts, _data->numQuadPts,
spaceDim);
- spatialdata::units::Nondimensional normalizer;
+ // Setup coordinate system.
spatialdata::geocoords::CSCart cs;
cs.setSpaceDim(spaceDim);
cs.initialize();
mesh->coordsys(&cs);
+
+ // Setup scales.
+ const PylithScalar timeScale = _data->timeScale;
+ const PylithScalar lengthScale = _data->lengthScale;
+ const PylithScalar velScale = lengthScale / timeScale;
+ const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.densityScale(_data->densityScale);
+ normalizer.timeScale(_data->timeScale);
mesh->nondimensionalize(normalizer);
// Setup material
@@ -393,12 +426,12 @@
integrator->quadrature(_quadrature);
integrator->gravityField(_gravityField);
- integrator->timeStep(_data->dt);
+ integrator->timeStep(_data->dt / _data->timeScale);
integrator->material(_material);
integrator->initialize(*mesh);
// Setup fields
- CPPUNIT_ASSERT(0 != fields);
+ CPPUNIT_ASSERT(fields);
fields->add("residual", "residual");
fields->add("dispIncr(t->t+dt)", "displacement_increment");
fields->add("disp(t)", "displacement");
@@ -413,43 +446,56 @@
residual.zero();
fields->copyLayout("residual");
- const int fieldSize = spaceDim * _data->numVertices;
+ topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+ PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
- scalar_array velVertex(spaceDim);
- scalar_array accVertex(spaceDim);
+ topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+ PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
- PetscSection dispTSectionP = fields->get("disp(t)").petscSection();
- Vec dispTVec = fields->get("disp(t)").localVector();
- CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
- PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
- Vec dispTIncrVec = fields->get("dispIncr(t->t+dt)").localVector();
- CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
- PetscSection dispTmdtSectionP = fields->get("disp(t-dt)").petscSection();
- Vec dispTmdtVec = fields->get("disp(t-dt)").localVector();
- CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
- PetscSection velSectionP = fields->get("velocity(t)").petscSection();
- Vec velVec = fields->get("velocity(t)").localVector();
- CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
- PetscSection accSectionP = fields->get("acceleration(t)").petscSection();
- Vec accVec = fields->get("acceleration(t)").localVector();
- CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
- PetscInt offset = _data->numCells;
- for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+ topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+ PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+ topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+ PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+ topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+ PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+ const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+ const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+ const PetscInt voff = velVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+ const PetscInt aoff = accVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
for(int iDim=0; iDim < spaceDim; ++iDim) {
- velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
- _data->fieldT[iVertex*spaceDim+iDim] -
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
- accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
- _data->fieldT[iVertex*spaceDim+iDim] +
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+ dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+ dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+ dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+ velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+ _data->fieldT[iVertex*spaceDim+iDim] -
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+ accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+ _data->fieldT[iVertex*spaceDim+iDim] +
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
} // for
- err = DMPlexVecSetClosure(dmMesh, dispTSectionP, dispTVec, iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP, dispTmdtVec, iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, velSectionP, velVec, iVertex+offset, &velVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, accSectionP, accVec, iVertex+offset, &accVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
} // for
+ PYLITH_METHOD_END;
} // _initialize
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- 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 "TestElasticityExplicit1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit1DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData1DLinear();
- _gravityField = 0;
- GeometryLine1D geometry;
- CPPUNIT_ASSERT(0 != _quadrature);
- _quadrature->refGeometry(&geometry);
- _material = new materials::ElasticStrain1D;
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit1DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit1dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit1DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit1dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- 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 "TestElasticityExplicit1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature1D
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit1DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData1DQuadratic();
- _gravityField = 0;
- GeometryLine1D geometry;
- CPPUNIT_ASSERT(0 != _quadrature);
- _quadrature->refGeometry(&geometry);
- _material = new materials::ElasticStrain1D;
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit1DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit1dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit1DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit1dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicit2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit2DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData2DLinear();
- _gravityField = 0;
- CPPUNIT_ASSERT(0 != _quadrature);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticPlaneStrain;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit2DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit2dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit2DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit2dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicit2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit2DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData2DQuadratic();
- _gravityField = 0;
- CPPUNIT_ASSERT(0 != _quadrature);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticPlaneStrain;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit2DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit2dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit2DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit2dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicit3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit3DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData3DLinear();
- _gravityField = 0;
- CPPUNIT_ASSERT(0 != _quadrature);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit3DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicit3dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit3DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit3dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicit3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicit3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicit3DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitData3DQuadratic();
- _gravityField = 0;
- CPPUNIT_ASSERT(0 != _quadrature);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicit3DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,66 +0,0 @@
-// -*- 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/TestElasticityExplicit3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 3-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicit3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicit3dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicit3DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-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
-
-#endif // pylith_feassemble_testelasticityexplicit3dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav1DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData1DLinear();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryLine1D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav1DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav1dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav1DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav1DLinear :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit1DLinear
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DLinear );
-
- 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 TestElasticityExplicitGrav1DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav1dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav1DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav1DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData1DQuadratic();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryLine1D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav1DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav1DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav1DQuadratic :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit1DQuadratic
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav1DQuadratic );
-
- 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 TestElasticityExplicitGrav1DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav1dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav2DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData2DLinear();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav2DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav2dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav2DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav2DLinear :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit2DLinear
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DLinear );
-
- 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 TestElasticityExplicitGrav2DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav2dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav2DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav2DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData2DQuadratic();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav2DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 2-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav2DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav2DQuadratic :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit2DQuadratic
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav2DQuadratic );
-
- 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 TestElasticityExplicitGrav2DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav2dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DLinear );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav3DLinear::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData3DLinear();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- _gravityField->gravAcceleration(g);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav3DLinear.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitgrav3dlinear_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav3DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav3DLinear :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit3DLinear
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DLinear );
-
- 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 TestElasticityExplicitGrav3DLinear
-
-#endif // pylith_feassemble_testelasticityexplicitgrav3dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- 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 "TestElasticityExplicitGrav3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitGravData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitGrav3DQuadratic );
-
-// ----------------------------------------------------------------------
-// Setup testing data.
-void
-pylith::feassemble::TestElasticityExplicitGrav3DQuadratic::setUp(void)
-{ // setUp
- TestElasticityExplicit::setUp();
-
- _data = new ElasticityExplicitGravData3DQuadratic();
- _gravityField = new spatialdata::spatialdb::GravityField();
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- _gravityField->gravAcceleration(g);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitGrav3DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitGrav3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicit object
- *
- * C++ unit testing for ElasticityExplicit with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh
-
-#include "TestElasticityExplicit.hh" // ISA TestElasticityExplicit
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitGrav3DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicit
-class pylith::feassemble::TestElasticityExplicitGrav3DQuadratic :
- public TestElasticityExplicit
-{ // class TestElasticityExplicit3DQuadratic
-
- // CPPUNIT TEST SUITE /////////////////////////////////////////////////
- CPPUNIT_TEST_SUITE( TestElasticityExplicitGrav3DQuadratic );
-
- 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 TestElasticityExplicitGrav3DQuadratic
-
-#endif // pylith_feassemble_testelasticityexplicitgrav3dquadratic_hh
-
-
-// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -26,6 +26,8 @@
#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
#include "pylith/topology/Mesh.hh" // USES Mesh
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/SolutionFields.hh" // USES SolutionFields
#include "pylith/topology/Jacobian.hh" // USES Jacobian
@@ -42,18 +44,18 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitLgDeform );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::feassemble::TestElasticityExplicitLgDeform::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
_quadrature = new Quadrature<topology::Mesh>();
_data = 0;
_material = 0;
_gravityField = 0;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
@@ -61,10 +63,14 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::tearDown(void)
{ // tearDown
+ PYLITH_METHOD_BEGIN;
+
delete _data; _data = 0;
delete _quadrature; _quadrature = 0;
delete _material; _material = 0;
delete _gravityField; _gravityField = 0;
+
+ PYLITH_METHOD_END;
} // tearDown
// ----------------------------------------------------------------------
@@ -72,7 +78,11 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitLgDeform integrator;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -80,13 +90,16 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::testInitialize(void)
{ // testInitialize
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitLgDeform integrator;
topology::SolutionFields fields(mesh);
_initialize(&mesh, &integrator, &fields);
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -94,8 +107,10 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateResidual(void)
{ // testIntegrateResidual
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitLgDeform integrator;
topology::SolutionFields fields(mesh);
@@ -106,19 +121,7 @@
integrator.integrateResidual(residual, t, &fields);
const PylithScalar* valsE = _data->valsResidual;
- const int sizeE = _data->spaceDim * _data->numVertices;
- PetscSection residualSection = residual.petscSection();
- Vec residualVec = residual.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
-
- CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
- err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
#if 0
residual.view("RESIDUAL");
std::cout << "EXPECTED RESIDUAL" << std::endl;
@@ -126,13 +129,32 @@
std::cout << "valE: " << valsE[i] << ", val: " << vals[i] << ", val/valE: " << vals[i]/valsE[i] << std::endl;
#endif
- const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-04;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
- err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+ topology::VecVisitorMesh residualVisitor(residual);
+ const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+ const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+ const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = residualVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateResidual
// ----------------------------------------------------------------------
@@ -140,8 +162,10 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::testIntegrateJacobian(void)
{ // testIntegrateJacobian
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitLgDeform integrator;
topology::SolutionFields fields(mesh);
@@ -160,39 +184,41 @@
jacobian.complete();
const PylithScalar* valsE = _data->valsJacobian;
- const int sizeE = _data->numVertices * _data->spaceDim;
#if 0 // DEBUGGING
// TEMPORARY
jacobian.view("JACOBIAN");
- std::cout << "\n\nJACOBIAN FULL" << std::endl;
- const int n = numBasis*spaceDim;
+ std::cout << "\n\nJACOBIAN EXPECTED" << std::endl;
+ const int n = _data->numBasis*_data->spaceDim;
for (int r=0; r < n; ++r) {
- for (int c=0; c < n; ++c)
- std::cout << " " << valsMatrixE[r*n+c];
- std::cout << "\n";
+ std::cout << " " << valsE[r] << "\n";
} // for
#endif // DEBUGGING
- PetscSection jacobianSection = jacobian.petscSection();
- Vec jacobianVec = jacobian.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
- CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
- err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
+ topology::VecVisitorMesh jacobianVisitor(jacobian);
+ const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
+ const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = jacobianVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
- err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateJacobian
// ----------------------------------------------------------------------
@@ -200,8 +226,10 @@
void
pylith::feassemble::TestElasticityExplicitLgDeform::testUpdateStateVars(void)
{ // testUpdateStateVars
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitLgDeform integrator;
topology::SolutionFields fields(mesh);
@@ -209,83 +237,48 @@
const PylithScalar t = 1.0;
integrator.updateStateVars(t, &fields);
+
+ PYLITH_METHOD_END;
} // testUpdateStateVars
+
+// ----------------------------------------------------------------------
extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
-// ----------------------------------------------------------------------
// Initialize elasticity integrator.
void
-pylith::feassemble::TestElasticityExplicitLgDeform::_initialize(
- topology::Mesh* mesh,
- ElasticityExplicitLgDeform* const integrator,
- topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitLgDeform::_initialize(topology::Mesh* mesh,
+ ElasticityExplicitLgDeform* const integrator,
+ topology::SolutionFields* fields)
{ // _initialize
- CPPUNIT_ASSERT(0 != mesh);
- CPPUNIT_ASSERT(0 != integrator);
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _material);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(mesh);
+ CPPUNIT_ASSERT(integrator);
+ CPPUNIT_ASSERT(_data);
+ CPPUNIT_ASSERT(_quadrature);
+ CPPUNIT_ASSERT(_material);
+
const int spaceDim = _data->spaceDim;
const PylithScalar dt = _data->dt;
// Setup mesh
- spatialdata::geocoords::CSCart cs;
- cs.setSpaceDim(spaceDim);
- cs.initialize();
- mesh->coordsys(&cs);
- mesh->createSieveMesh(_data->cellDim);
- const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- ALE::Obj<SieveMesh::sieve_type> sieve =
- new SieveMesh::sieve_type(mesh->comm());
- CPPUNIT_ASSERT(!sieve.isNull());
-
mesh->createDMMesh(_data->cellDim);
- DM dmMesh = mesh->dmMesh();
- CPPUNIT_ASSERT(dmMesh);
+ PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
// Cells and vertices
const bool interpolate = false;
- ALE::Obj<SieveFlexMesh::sieve_type> s =
- new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-
- ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s,
- _data->cellDim, _data->numCells,
- const_cast<int*>(_data->cells),
- _data->numVertices,
- interpolate, _data->numBasis);
- std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
- ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
- sieveMesh->setSieve(sieve);
- sieveMesh->stratify();
- ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim,
- _data->vertices);
PetscErrorCode err;
-
err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
// Material ids
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->heightStratum(0);
- CPPUNIT_ASSERT(!cells.isNull());
- const ALE::Obj<SieveMesh::label_type>& labelMaterials =
- sieveMesh->createLabel("material-id");
- CPPUNIT_ASSERT(!labelMaterials.isNull());
- int i = 0;
- for(SieveMesh::label_sequence::iterator e_iter=cells->begin();
- e_iter != cells->end();
- ++e_iter)
- sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
PetscInt cStart, cEnd, c;
-
err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
for(PetscInt c = cStart; c < cEnd; ++c) {
err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
- }
+ } // for
// Setup quadrature
_quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -295,14 +288,30 @@
_data->quadWts, _data->numQuadPts,
spaceDim);
+ // Setup coordinate system.
+ spatialdata::geocoords::CSCart cs;
+ cs.setSpaceDim(spaceDim);
+ cs.initialize();
+ mesh->coordsys(&cs);
+
+ // Setup scales.
+ const PylithScalar timeScale = _data->timeScale;
+ const PylithScalar lengthScale = _data->lengthScale;
+ const PylithScalar velScale = lengthScale / timeScale;
+ const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.densityScale(_data->densityScale);
+ normalizer.timeScale(_data->timeScale);
+ mesh->nondimensionalize(normalizer);
+
// Setup material
spatialdata::spatialdb::SimpleIOAscii iohandler;
iohandler.filename(_data->matDBFilename);
spatialdata::spatialdb::SimpleDB dbProperties;
dbProperties.ioHandler(&iohandler);
- spatialdata::units::Nondimensional normalizer;
-
_material->id(_data->matId);
_material->label(_data->matLabel);
_material->dbProperties(&dbProperties);
@@ -310,12 +319,12 @@
integrator->quadrature(_quadrature);
integrator->gravityField(_gravityField);
- integrator->timeStep(_data->dt);
+ integrator->timeStep(_data->dt / _data->timeScale);
integrator->material(_material);
integrator->initialize(*mesh);
// Setup fields
- CPPUNIT_ASSERT(0 != fields);
+ CPPUNIT_ASSERT(fields);
fields->add("residual", "residual");
fields->add("disp(t)", "displacement");
fields->add("dispIncr(t->t+dt)", "displacement_increment");
@@ -330,40 +339,56 @@
residual.zero();
fields->copyLayout("residual");
- scalar_array velVertex(spaceDim);
- scalar_array accVertex(spaceDim);
- const int offset = _data->numCells;
+ topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+ PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
- PetscSection dispTSectionP = fields->get("disp(t)").petscSection();
- Vec dispTVec = fields->get("disp(t)").localVector();
- CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
- PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
- Vec dispTIncrVec = fields->get("dispIncr(t->t+dt)").localVector();
- CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
- PetscSection dispTmdtSectionP = fields->get("disp(t-dt)").petscSection();
- Vec dispTmdtVec = fields->get("disp(t-dt)").localVector();
- CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
- PetscSection velSectionP = fields->get("velocity(t)").petscSection();
- Vec velVec = fields->get("velocity(t)").localVector();
- CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
- PetscSection accSectionP = fields->get("acceleration(t)").petscSection();
- Vec accVec = fields->get("acceleration(t)").localVector();
- CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
- for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+ topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+ PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+ topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+ PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+ topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+ PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+ topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+ PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+ const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+ const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+ const PetscInt voff = velVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+ const PetscInt aoff = accVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
for(int iDim=0; iDim < spaceDim; ++iDim) {
- velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
- _data->fieldT[iVertex*spaceDim+iDim] -
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
- accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
- _data->fieldT[iVertex*spaceDim+iDim] +
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+ dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+ dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+ dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+ velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+ _data->fieldT[iVertex*spaceDim+iDim] -
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+ accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+ _data->fieldT[iVertex*spaceDim+iDim] +
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
} // for
- err = DMPlexVecSetClosure(dmMesh, dispTSectionP, dispTVec, iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP, dispTmdtVec, iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, velSectionP, velVec, iVertex+offset, &velVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, accSectionP, accVec, iVertex+offset, &accVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
} // for
+
+ PYLITH_METHOD_END;
} // _initialize
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- _quadrature->refGeometry(&geometry);
- _material = new materials::ElasticStrain1D;
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform1dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,53 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- _quadrature->refGeometry(&geometry);
- _material = new materials::ElasticStrain1D;
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform1DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeform1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeform1DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform1dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticPlaneStrain;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeform2DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeform2DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform2dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticPlaneStrain;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform2DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeform2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeform2DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform2dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeform3DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeform3DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform3dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,55 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeform3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeform3DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeform3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeform3DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeform3dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav1DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData1DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryLine1D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav1DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav1DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DLinear :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DLinear
-
- // 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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav1dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav1DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData1DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
-#include "pylith/materials/ElasticStrain1D.hh" // USES ElasticStrain1D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryLine1D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticStrain1D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav1DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav1DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav1DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav1DQuadratic :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform1DQuadratic
-
- // 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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav1dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav2DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData2DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav2DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav2DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DLinear :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DLinear
-
- // 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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav2dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,62 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav2DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData2DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/GeometryTri2D.hh" // USES GeometryTri2D
-#include "pylith/materials/ElasticPlaneStrain.hh" // USES ElasticPlaneStrain
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTri2D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- 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(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav2DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav2DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 2-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav2DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav2DQuadratic :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform2DQuadratic
-
- // 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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav2dquadratic_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav3DLinear.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData3DLinear.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- _gravityField->gravAcceleration(g);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DLinear.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav3DLinear.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D linear cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav3DLinear;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DLinear :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DLinear
-
- // 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
-
-#endif // pylith_feassemble_testelasticityexplicitlgdeformgrav3dlinear_hh
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,61 +0,0 @@
-// -*- 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 "TestElasticityExplicitLgDeformGrav3DQuadratic.hh" // Implementation of class methods
-
-#include "data/ElasticityExplicitLgDeformGravData3DQuadratic.hh"
-
-#include "pylith/topology/Mesh.hh" // USES Quadrature<Mesh>
-#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
-#include "pylith/feassemble/Quadrature3D.hh" // USES Quadrature3D
-#include "pylith/feassemble/GeometryTet3D.hh" // USES GeometryTet3D
-#include "pylith/materials/ElasticIsotropic3D.hh" // USES ElasticIsotropic3D
-#include "spatialdata/spatialdb/GravityField.hh" // USES GravityField
-
-// ----------------------------------------------------------------------
-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(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _gravityField);
- GeometryTet3D geometry;
- _quadrature->refGeometry(&geometry);
-
- const PylithScalar g = 1.0e8;
- _gravityField->gravAcceleration(g);
-
- _material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
-
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
-} // setUp
-
-
-// End of file
Deleted: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitLgDeformGrav3DQuadratic.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -1,65 +0,0 @@
-// -*- 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/TestElasticityExplicitLgDeformGrav3DQuadratic.hh
- *
- * @brief C++ TestElasticityExplicitLgDeform object
- *
- * C++ unit testing for ElasticityExplicitLgDeform with 1-D quadratic cells and gravity.
- */
-
-#if !defined(pylith_feassemble_testelasticityexplicitlgdeformgrav3dquadratic_hh)
-#define pylith_feassemble_testelasticityexplicitlgdeformgrav3dquadratic_hh
-
-#include "TestElasticityExplicitLgDeform.hh" // ISA TestElasticityExplicitLgDeform
-
-/// Namespace for pylith package
-namespace pylith {
- namespace feassemble {
- class TestElasticityExplicitLgDeformGrav3DQuadratic;
- } // feassemble
-} // pylith
-
-/// C++ unit testing for ElasticityExplicitLgDeform
-class pylith::feassemble::TestElasticityExplicitLgDeformGrav3DQuadratic :
- public TestElasticityExplicitLgDeform
-{ // class TestElasticityExplicitLgDeform3DQuadratic
-
- // 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_testelasticityexplicitlgdeformgrav3dquadratic_hh
-
-
-// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTet4.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -28,6 +28,8 @@
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
#include "pylith/topology/Mesh.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
#include "pylith/topology/Jacobian.hh" // USES Jacobian
@@ -45,26 +47,25 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitTet4 );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::feassemble::TestElasticityExplicitTet4::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
_quadrature = new Quadrature<topology::Mesh>();
- CPPUNIT_ASSERT(0 != _quadrature);
+ CPPUNIT_ASSERT(_quadrature);
GeometryTet3D geometry;
_quadrature->refGeometry(&geometry);
_data = new ElasticityExplicitData3DLinear;
- CPPUNIT_ASSERT(0 != _data);
+ CPPUNIT_ASSERT(_data);
_material = new materials::ElasticIsotropic3D;
- CPPUNIT_ASSERT(0 != _material);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"),
- std::string(_data->matType));
+ CPPUNIT_ASSERT(_material);
+ CPPUNIT_ASSERT_EQUAL(std::string("ElasticIsotropic3D"), std::string(_data->matType));
_gravityField = 0;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
@@ -72,10 +73,14 @@
void
pylith::feassemble::TestElasticityExplicitTet4::tearDown(void)
{ // tearDown
+ PYLITH_METHOD_BEGIN;
+
delete _data; _data = 0;
delete _quadrature; _quadrature = 0;
delete _material; _material = 0;
delete _gravityField; _gravityField = 0;
+
+ PYLITH_METHOD_END;
} // tearDown
// ----------------------------------------------------------------------
@@ -83,7 +88,11 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTet4 integrator;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -91,6 +100,8 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testTimeStep(void)
{ // testTimeStep
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTet4 integrator;
const PylithScalar dt1 = 2.0;
@@ -99,6 +110,8 @@
integrator.timeStep(dt1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+ PYLITH_METHOD_END;
} // testTimeStep
// ----------------------------------------------------------------------
@@ -106,6 +119,8 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testMaterial(void)
{ // testMaterial
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTet4 integrator;
materials::ElasticIsotropic3D material;
@@ -120,6 +135,8 @@
const PylithScalar dt = 2.0;
integrator.timeStep(dt);
CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+ PYLITH_METHOD_END;
} // testMaterial
// ----------------------------------------------------------------------
@@ -127,6 +144,8 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testNeedNewJacobian(void)
{ // testNeedNewJacobian
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTet4 integrator;
materials::ElasticIsotropic3D material;
@@ -134,6 +153,8 @@
CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
integrator._needNewJacobian = false;
CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
+
+ PYLITH_METHOD_END;
} // testNeedNewJacobian
// ----------------------------------------------------------------------
@@ -141,13 +162,16 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testInitialize(void)
{ // testInitialize
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTet4 integrator;
topology::SolutionFields fields(mesh);
_initialize(&mesh, &integrator, &fields);
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -155,8 +179,10 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testIntegrateResidual(void)
{ // testIntegrateResidual
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTet4 integrator;
topology::SolutionFields fields(mesh);
@@ -167,33 +193,41 @@
integrator.integrateResidual(residual, t, &fields);
const PylithScalar* valsE = _data->valsResidual;
- const int sizeE = _data->spaceDim * _data->numVertices;
- PetscSection residualSection = residual.petscSection();
- Vec residualVec = residual.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
-
- CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
- err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
#if 0 // DEBUGGING
residual.view("RESIDUAL");
std::cout << "EXPECTED RESIDUAL" << std::endl;
+ const int size = _data->numVertices * _data->spaceDim;
for (int i=0; i < size; ++i)
std::cout << " " << valsE[i] << std::endl;
#endif // DEBUGGING
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
- err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+ topology::VecVisitorMesh residualVisitor(residual);
+ const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+ const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+ const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = residualVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateResidual
// ----------------------------------------------------------------------
@@ -201,8 +235,10 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testIntegrateJacobian(void)
{ // testIntegrateJacobian
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTet4 integrator;
topology::SolutionFields fields(mesh);
@@ -221,7 +257,6 @@
jacobian.complete();
const PylithScalar* valsE = _data->valsJacobian;
- const int sizeE = _data->numVertices * _data->spaceDim;
const int spaceDim = _data->spaceDim;
const int numBasis = _data->numVertices;
@@ -233,25 +268,31 @@
std::cout << " " << valsE[i] << "\n";
#endif // DEBUGGING
- PetscSection jacobianSection = jacobian.petscSection();
- Vec jacobianVec = jacobian.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
- CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
- err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
+ topology::VecVisitorMesh jacobianVisitor(jacobian);
+ const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+ const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
- err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = jacobianVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateJacobian
// ----------------------------------------------------------------------
@@ -259,8 +300,10 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testUpdateStateVars(void)
{ // testUpdateStateVars
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTet4 integrator;
topology::SolutionFields fields(mesh);
@@ -268,6 +311,8 @@
const PylithScalar t = 1.0;
integrator.updateStateVars(t, &fields);
+
+ PYLITH_METHOD_END;
} // testUpdateStateVars
// ----------------------------------------------------------------------
@@ -275,6 +320,8 @@
void
pylith::feassemble::TestElasticityExplicitTet4::testStableTimeStep(void)
{ // testStableTimeStep
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -284,80 +331,49 @@
const PylithScalar dtStable = integrator.stableTimeStep(mesh);
const PylithScalar tolerance = 1.0e-6;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+ PYLITH_METHOD_END;
} // testStableTimeStep
+
+// ----------------------------------------------------------------------
extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
-// ----------------------------------------------------------------------
// Initialize elasticity integrator.
void
-pylith::feassemble::TestElasticityExplicitTet4::_initialize(
- topology::Mesh* mesh,
- ElasticityExplicitTet4* const integrator,
- topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitTet4::_initialize(topology::Mesh* mesh,
+ ElasticityExplicitTet4* const integrator,
+ topology::SolutionFields* fields)
{ // _initialize
- CPPUNIT_ASSERT(0 != mesh);
- CPPUNIT_ASSERT(0 != integrator);
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _material);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(mesh);
+ CPPUNIT_ASSERT(integrator);
+ CPPUNIT_ASSERT(_data);
+ CPPUNIT_ASSERT(_quadrature);
+ CPPUNIT_ASSERT(_material);
+
const int spaceDim = _data->spaceDim;
const PylithScalar dt = _data->dt;
// Setup mesh
- mesh->createSieveMesh(_data->cellDim);
- const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- ALE::Obj<SieveMesh::sieve_type> sieve =
- new SieveMesh::sieve_type(mesh->comm());
- CPPUNIT_ASSERT(!sieve.isNull());
-
mesh->createDMMesh(_data->cellDim);
- DM dmMesh = mesh->dmMesh();
- CPPUNIT_ASSERT(dmMesh);
+ PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
// Cells and vertices
const bool interpolate = false;
- ALE::Obj<SieveFlexMesh::sieve_type> s =
- new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-
- ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s,
- _data->cellDim, _data->numCells,
- const_cast<int*>(_data->cells),
- _data->numVertices,
- interpolate, _data->numBasis);
- std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
- ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
- sieveMesh->setSieve(sieve);
- sieveMesh->stratify();
- ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim,
- _data->vertices);
PetscErrorCode err;
-
err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
// Material ids
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->heightStratum(0);
- CPPUNIT_ASSERT(!cells.isNull());
- const ALE::Obj<SieveMesh::label_type>& labelMaterials =
- sieveMesh->createLabel("material-id");
- CPPUNIT_ASSERT(!labelMaterials.isNull());
- int i = 0;
- for(SieveMesh::label_sequence::iterator e_iter=cells->begin();
- e_iter != cells->end();
- ++e_iter)
- sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
PetscInt cStart, cEnd, c;
-
err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
for(PetscInt c = cStart; c < cEnd; ++c) {
err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
- }
+ } // for
// Setup quadrature
_quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
@@ -367,11 +383,22 @@
_data->quadWts, _data->numQuadPts,
spaceDim);
- spatialdata::units::Nondimensional normalizer;
+ // Setup coordinate system.
spatialdata::geocoords::CSCart cs;
cs.setSpaceDim(spaceDim);
cs.initialize();
mesh->coordsys(&cs);
+
+ // Setup scales.
+ const PylithScalar timeScale = _data->timeScale;
+ const PylithScalar lengthScale = _data->lengthScale;
+ const PylithScalar velScale = lengthScale / timeScale;
+ const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.densityScale(_data->densityScale);
+ normalizer.timeScale(_data->timeScale);
mesh->nondimensionalize(normalizer);
// Setup material
@@ -387,12 +414,12 @@
integrator->quadrature(_quadrature);
integrator->gravityField(_gravityField);
- integrator->timeStep(_data->dt);
+ integrator->timeStep(_data->dt / _data->timeScale);
integrator->material(_material);
integrator->initialize(*mesh);
// Setup fields
- CPPUNIT_ASSERT(0 != fields);
+ CPPUNIT_ASSERT(fields);
fields->add("residual", "residual");
fields->add("dispIncr(t->t+dt)", "displacement_increment");
fields->add("disp(t)", "displacement");
@@ -407,40 +434,56 @@
residual.zero();
fields->copyLayout("residual");
- scalar_array velVertex(spaceDim);
- scalar_array accVertex(spaceDim);
- const int offset = _data->numCells;
+ topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+ PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
- PetscSection dispTSectionP = fields->get("disp(t)").petscSection();
- Vec dispTVec = fields->get("disp(t)").localVector();
- CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
- PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
- Vec dispTIncrVec = fields->get("dispIncr(t->t+dt)").localVector();
- CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
- PetscSection dispTmdtSectionP = fields->get("disp(t-dt)").petscSection();
- Vec dispTmdtVec = fields->get("disp(t-dt)").localVector();
- CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
- PetscSection velSectionP = fields->get("velocity(t)").petscSection();
- Vec velVec = fields->get("velocity(t)").localVector();
- CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
- PetscSection accSectionP = fields->get("acceleration(t)").petscSection();
- Vec accVec = fields->get("acceleration(t)").localVector();
- CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
- for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+ topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+ PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+ topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+ PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+ topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+ PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+ topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+ PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+ const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+ const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+ const PetscInt voff = velVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+ const PetscInt aoff = accVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
for(int iDim=0; iDim < spaceDim; ++iDim) {
- velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
- _data->fieldT[iVertex*spaceDim+iDim] -
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
- accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
- _data->fieldT[iVertex*spaceDim+iDim] +
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+ dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+ dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+ dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+ velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+ _data->fieldT[iVertex*spaceDim+iDim] -
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+ accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+ _data->fieldT[iVertex*spaceDim+iDim] +
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
} // for
- err = DMPlexVecSetClosure(dmMesh, dispTSectionP, dispTVec, iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP, dispTmdtVec, iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, velSectionP, velVec, iVertex+offset, &velVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, accSectionP, accVec, iVertex+offset, &accVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
} // for
+
+ PYLITH_METHOD_END;
} // _initialize
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestElasticityExplicitTri3.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -28,6 +28,8 @@
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature
#include "pylith/topology/Mesh.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
#include "pylith/topology/Jacobian.hh" // USES Jacobian
@@ -45,26 +47,25 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestElasticityExplicitTri3 );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::feassemble::TestElasticityExplicitTri3::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
_quadrature = new Quadrature<topology::Mesh>();
- CPPUNIT_ASSERT(0 != _quadrature);
+ CPPUNIT_ASSERT(_quadrature);
GeometryTri2D geometry;
_quadrature->refGeometry(&geometry);
_data = new ElasticityExplicitData2DLinear();
- CPPUNIT_ASSERT(0 != _data);
+ CPPUNIT_ASSERT(_data);
_material = new materials::ElasticPlaneStrain;
- CPPUNIT_ASSERT(0 != _material);
- CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"),
- std::string(_data->matType));
+ CPPUNIT_ASSERT(_material);
+ CPPUNIT_ASSERT_EQUAL(std::string("ElasticPlaneStrain"), std::string(_data->matType));
_gravityField = 0;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
@@ -72,10 +73,14 @@
void
pylith::feassemble::TestElasticityExplicitTri3::tearDown(void)
{ // tearDown
+ PYLITH_METHOD_BEGIN;
+
delete _data; _data = 0;
delete _quadrature; _quadrature = 0;
delete _material; _material = 0;
delete _gravityField; _gravityField = 0;
+
+ PYLITH_METHOD_END;
} // tearDown
// ----------------------------------------------------------------------
@@ -83,7 +88,11 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTri3 integrator;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -91,6 +100,8 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testTimeStep(void)
{ // testTimeStep
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTri3 integrator;
const PylithScalar dt1 = 2.0;
@@ -99,6 +110,8 @@
integrator.timeStep(dt1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dtm1);
CPPUNIT_ASSERT_EQUAL(dt1, integrator._dt);
+
+ PYLITH_METHOD_END;
} // testTimeStep
// ----------------------------------------------------------------------
@@ -106,6 +119,8 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testMaterial(void)
{ // testMaterial
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTri3 integrator;
materials::ElasticPlaneStrain material;
@@ -120,6 +135,8 @@
const PylithScalar dt = 2.0;
integrator.timeStep(dt);
CPPUNIT_ASSERT_EQUAL(dt, integrator._material->timeStep());
+
+ PYLITH_METHOD_END;
} // testMaterial
// ----------------------------------------------------------------------
@@ -127,6 +144,8 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testNeedNewJacobian(void)
{ // testNeedNewJacobian
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicitTri3 integrator;
materials::ElasticPlaneStrain material;
@@ -134,6 +153,8 @@
CPPUNIT_ASSERT_EQUAL(true, integrator.needNewJacobian());
integrator._needNewJacobian = false;
CPPUNIT_ASSERT_EQUAL(false, integrator.needNewJacobian());
+
+ PYLITH_METHOD_END;
} // testNeedNewJacobian
// ----------------------------------------------------------------------
@@ -141,13 +162,16 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testInitialize(void)
{ // testInitialize
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTri3 integrator;
topology::SolutionFields fields(mesh);
_initialize(&mesh, &integrator, &fields);
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -155,8 +179,10 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testIntegrateResidual(void)
{ // testIntegrateResidual
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTri3 integrator;
topology::SolutionFields fields(mesh);
@@ -167,33 +193,41 @@
integrator.integrateResidual(residual, t, &fields);
const PylithScalar* valsE = _data->valsResidual;
- const int sizeE = _data->spaceDim * _data->numVertices;
- PetscSection residualSection = residual.petscSection();
- Vec residualVec = residual.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
-
- CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
- err = VecGetArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(residualSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
-
#if 0 // DEBUGGING
residual.view("RESIDUAL");
std::cout << "EXPECTED RESIDUAL" << std::endl;
+ const int size = _data->spaceDim * _data->numVertices;
for (int i=0; i < size; ++i)
std::cout << " " << valsE[i] << std::endl;
#endif // DEBUGGING
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
- err = VecRestoreArray(residualVec, &vals);CHECK_PETSC_ERROR(err);
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
+
+ topology::VecVisitorMesh residualVisitor(residual);
+ const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
+
+ const PylithScalar accScale = _data->lengthScale / pow(_data->timeScale, 2);
+ const PylithScalar residualScale = _data->densityScale * accScale*pow(_data->lengthScale, _data->spaceDim);
+
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = residualVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, residualVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valsE[index]*residualScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], residualArray[off+d]*residualScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateResidual
// ----------------------------------------------------------------------
@@ -201,8 +235,10 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testIntegrateJacobian(void)
{ // testIntegrateJacobian
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTri3 integrator;
topology::SolutionFields fields(mesh);
@@ -221,7 +257,6 @@
jacobian.complete();
const PylithScalar* valsE = _data->valsJacobian;
- const int sizeE = _data->numVertices * _data->spaceDim;
const int spaceDim = _data->spaceDim;
const int numBasis = _data->numVertices;
@@ -233,25 +268,31 @@
std::cout << " " << valsE[i] << "\n";
#endif // DEBUGGING
- PetscSection jacobianSection = jacobian.petscSection();
- Vec jacobianVec = jacobian.localVector();
- PetscScalar *vals;
- PetscInt size;
- PetscErrorCode err;
+ const PetscDM dmMesh = mesh.dmMesh();
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+ CPPUNIT_ASSERT_EQUAL(_data->numVertices, verticesStratum.size());
- CPPUNIT_ASSERT(jacobianSection);CPPUNIT_ASSERT(jacobianVec);
- err = VecGetArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
- err = PetscSectionGetStorageSize(jacobianSection, &size);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(sizeE, size);
+ topology::VecVisitorMesh jacobianVisitor(jacobian);
+ const PetscScalar* jacobianArray = jacobianVisitor.localArray();CPPUNIT_ASSERT(jacobianArray);
- const PylithScalar tolerance = 1.0e-06;
- for (int i=0; i < size; ++i)
- if (fabs(valsE[i]) > 1.0)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valsE[i], tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[i], vals[i], tolerance);
+ const PylithScalar jacobianScale = _data->densityScale / pow(_data->timeScale, 2) * pow(_data->lengthScale, _data->spaceDim);
- err = VecRestoreArray(jacobianVec, &vals);CHECK_PETSC_ERROR(err);
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ for (PetscInt v = vStart, index = 0; v < vEnd; ++v) {
+ const PetscInt off = jacobianVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(_data->spaceDim, jacobianVisitor.sectionDof(v));
+
+ for (int d=0; d < _data->spaceDim; ++d, ++index) {
+ if (fabs(valsE[index]) > 1.0)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, jacobianArray[off+d]/valsE[index]*jacobianScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valsE[index], jacobianArray[off+d]*jacobianScale, tolerance);
+ } // for
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateJacobian
// ----------------------------------------------------------------------
@@ -259,8 +300,10 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testUpdateStateVars(void)
{ // testUpdateStateVars
- CPPUNIT_ASSERT(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(_data);
+
topology::Mesh mesh;
ElasticityExplicitTri3 integrator;
topology::SolutionFields fields(mesh);
@@ -268,6 +311,8 @@
const PylithScalar t = 1.0;
integrator.updateStateVars(t, &fields);
+
+ PYLITH_METHOD_END;
} // testUpdateStateVars
// ----------------------------------------------------------------------
@@ -275,6 +320,8 @@
void
pylith::feassemble::TestElasticityExplicitTri3::testStableTimeStep(void)
{ // testStableTimeStep
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -284,81 +331,49 @@
const PylithScalar dtStable = integrator.stableTimeStep(mesh);
const PylithScalar tolerance = 1.0e-6;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit, tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, dtStable/_data->dtStableExplicit*_data->timeScale, tolerance);
+
+ PYLITH_METHOD_END;
} // testStableTimeStep
+// ----------------------------------------------------------------------
extern PetscErrorCode DMPlexBuildFromCellList_Private(DM dm, PetscInt numCells, PetscInt numVertices, PetscInt numCorners, const int cells[]);
extern PetscErrorCode DMPlexBuildCoordinates_Private(DM dm, PetscInt spaceDim, PetscInt numCells, PetscInt numVertices, const double vertexCoords[]);
-// ----------------------------------------------------------------------
// Initialize elasticity integrator.
void
-pylith::feassemble::TestElasticityExplicitTri3::_initialize(
- topology::Mesh* mesh,
- ElasticityExplicitTri3* const integrator,
- topology::SolutionFields* fields)
+pylith::feassemble::TestElasticityExplicitTri3::_initialize(topology::Mesh* mesh,
+ ElasticityExplicitTri3* const integrator,
+ topology::SolutionFields* fields)
{ // _initialize
- CPPUNIT_ASSERT(0 != mesh);
- CPPUNIT_ASSERT(0 != integrator);
- CPPUNIT_ASSERT(0 != _data);
- CPPUNIT_ASSERT(0 != _quadrature);
- CPPUNIT_ASSERT(0 != _material);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(mesh);
+ CPPUNIT_ASSERT(integrator);
+ CPPUNIT_ASSERT(_data);
+ CPPUNIT_ASSERT(_quadrature);
+ CPPUNIT_ASSERT(_material);
+
const int spaceDim = _data->spaceDim;
const PylithScalar dt = _data->dt;
// Setup mesh
- mesh->createSieveMesh(_data->cellDim);
- const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- ALE::Obj<SieveMesh::sieve_type> sieve =
- new SieveMesh::sieve_type(mesh->comm());
- CPPUNIT_ASSERT(!sieve.isNull());
-
mesh->createDMMesh(_data->cellDim);
- DM dmMesh = mesh->dmMesh();
- CPPUNIT_ASSERT(dmMesh);
+ PetscDM dmMesh = mesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
// Cells and vertices
const bool interpolate = false;
- ALE::Obj<SieveFlexMesh::sieve_type> s =
- new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-
- ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s,
- _data->cellDim, _data->numCells,
- const_cast<int*>(_data->cells),
- _data->numVertices,
- interpolate, _data->numBasis);
- std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
- ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
- sieveMesh->setSieve(sieve);
- sieveMesh->stratify();
- ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim,
- _data->vertices);
PetscErrorCode err;
-
err = DMPlexBuildFromCellList_Private(dmMesh, _data->numCells, _data->numVertices, _data->numBasis, _data->cells);CHECK_PETSC_ERROR(err);
err = DMPlexBuildCoordinates_Private(dmMesh, _data->spaceDim, _data->numCells, _data->numVertices, _data->vertices);CHECK_PETSC_ERROR(err);
// Material ids
- const ALE::Obj<SieveMesh::label_sequence>& cells =
- sieveMesh->heightStratum(0);
- CPPUNIT_ASSERT(!cells.isNull());
- const ALE::Obj<SieveMesh::label_type>& labelMaterials =
- sieveMesh->createLabel("material-id");
- CPPUNIT_ASSERT(!labelMaterials.isNull());
- int i = 0;
- for(SieveMesh::label_sequence::iterator e_iter=cells->begin();
- e_iter != cells->end();
- ++e_iter)
- sieveMesh->setValue(labelMaterials, *e_iter, _data->matId);
PetscInt cStart, cEnd, c;
-
err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
for(PetscInt c = cStart; c < cEnd; ++c) {
err = DMPlexSetLabelValue(dmMesh, "material-id", c, _data->matId);CHECK_PETSC_ERROR(err);
- }
-
+ } // for
+
// Setup quadrature
_quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
_data->basisDerivRef, _data->numQuadPts,
@@ -367,11 +382,22 @@
_data->quadWts, _data->numQuadPts,
spaceDim);
- spatialdata::units::Nondimensional normalizer;
+ // Setup coordinate system.
spatialdata::geocoords::CSCart cs;
cs.setSpaceDim(spaceDim);
cs.initialize();
mesh->coordsys(&cs);
+
+ // Setup scales.
+ const PylithScalar timeScale = _data->timeScale;
+ const PylithScalar lengthScale = _data->lengthScale;
+ const PylithScalar velScale = lengthScale / timeScale;
+ const PylithScalar accScale = lengthScale / (timeScale*timeScale);
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.densityScale(_data->densityScale);
+ normalizer.timeScale(_data->timeScale);
mesh->nondimensionalize(normalizer);
// Setup material
@@ -387,12 +413,12 @@
integrator->quadrature(_quadrature);
integrator->gravityField(_gravityField);
- integrator->timeStep(_data->dt);
+ integrator->timeStep(_data->dt / _data->timeScale);
integrator->material(_material);
integrator->initialize(*mesh);
// Setup fields
- CPPUNIT_ASSERT(0 != fields);
+ CPPUNIT_ASSERT(fields);
fields->add("residual", "residual");
fields->add("dispIncr(t->t+dt)", "displacement_increment");
fields->add("disp(t)", "displacement");
@@ -407,40 +433,56 @@
residual.zero();
fields->copyLayout("residual");
- scalar_array velVertex(spaceDim);
- scalar_array accVertex(spaceDim);
- const int offset = _data->numCells;
+ topology::VecVisitorMesh dispTVisitor(fields->get("disp(t)"));
+ PetscScalar* dispTArray = dispTVisitor.localArray();CPPUNIT_ASSERT(dispTArray);
- PetscSection dispTSectionP = fields->get("disp(t)").petscSection();
- Vec dispTVec = fields->get("disp(t)").localVector();
- CPPUNIT_ASSERT(dispTSectionP);CPPUNIT_ASSERT(dispTVec);
- PetscSection dispTIncrSectionP = fields->get("dispIncr(t->t+dt)").petscSection();
- Vec dispTIncrVec = fields->get("dispIncr(t->t+dt)").localVector();
- CPPUNIT_ASSERT(dispTIncrSectionP);CPPUNIT_ASSERT(dispTIncrVec);
- PetscSection dispTmdtSectionP = fields->get("disp(t-dt)").petscSection();
- Vec dispTmdtVec = fields->get("disp(t-dt)").localVector();
- CPPUNIT_ASSERT(dispTmdtSectionP);CPPUNIT_ASSERT(dispTmdtVec);
- PetscSection velSectionP = fields->get("velocity(t)").petscSection();
- Vec velVec = fields->get("velocity(t)").localVector();
- CPPUNIT_ASSERT(velSectionP);CPPUNIT_ASSERT(velVec);
- PetscSection accSectionP = fields->get("acceleration(t)").petscSection();
- Vec accVec = fields->get("acceleration(t)").localVector();
- CPPUNIT_ASSERT(accSectionP);CPPUNIT_ASSERT(accVec);
- for(int iVertex=0; iVertex < _data->numVertices; ++iVertex) {
+ topology::VecVisitorMesh dispTmdtVisitor(fields->get("disp(t-dt)"));
+ PetscScalar* dispTmdtArray = dispTmdtVisitor.localArray();CPPUNIT_ASSERT(dispTmdtArray);
+
+ topology::VecVisitorMesh dispTIncrVisitor(fields->get("dispIncr(t->t+dt)"));
+ PetscScalar* dispTIncrArray = dispTIncrVisitor.localArray();CPPUNIT_ASSERT(dispTIncrArray);
+
+ topology::VecVisitorMesh velVisitor(fields->get("velocity(t)"));
+ PetscScalar* velArray = velVisitor.localArray();CPPUNIT_ASSERT(velArray);
+
+ topology::VecVisitorMesh accVisitor(fields->get("acceleration(t)"));
+ PetscScalar* accArray = accVisitor.localArray();CPPUNIT_ASSERT(accArray);
+
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt dtoff = dispTVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTVisitor.sectionDof(v));
+
+ const PetscInt dmoff = dispTmdtVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTmdtVisitor.sectionDof(v));
+
+ const PetscInt dioff = dispTIncrVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, dispTIncrVisitor.sectionDof(v));
+
+ const PetscInt voff = velVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, velVisitor.sectionDof(v));
+
+ const PetscInt aoff = accVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, accVisitor.sectionDof(v));
+
for(int iDim=0; iDim < spaceDim; ++iDim) {
- velVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
- _data->fieldT[iVertex*spaceDim+iDim] -
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt);
- accVertex[iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
- _data->fieldT[iVertex*spaceDim+iDim] +
- _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt);
+ dispTArray[dtoff+iDim] = _data->fieldT[iVertex*spaceDim+iDim] / lengthScale;
+ dispTmdtArray[dmoff+iDim] = _data->fieldTmdt[iVertex*spaceDim+iDim] / lengthScale;
+ dispTIncrArray[dioff+iDim] = _data->fieldTIncr[iVertex*spaceDim+iDim] / lengthScale;
+
+ velArray[voff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] +
+ _data->fieldT[iVertex*spaceDim+iDim] -
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (2.0*dt) / velScale;
+ accArray[aoff+iDim] = (_data->fieldTIncr[iVertex*spaceDim+iDim] -
+ _data->fieldT[iVertex*spaceDim+iDim] +
+ _data->fieldTmdt[iVertex*spaceDim+iDim]) / (dt*dt) / accScale;
} // for
- err = DMPlexVecSetClosure(dmMesh, dispTSectionP, dispTVec, iVertex+offset, &_data->fieldT[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTIncrSectionP, dispTIncrVec, iVertex+offset, &_data->fieldTIncr[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, dispTmdtSectionP, dispTmdtVec, iVertex+offset, &_data->fieldTmdt[iVertex*_data->spaceDim], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, velSectionP, velVec, iVertex+offset, &velVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
- err = DMPlexVecSetClosure(dmMesh, accSectionP, accVec, iVertex+offset, &accVertex[0], INSERT_ALL_VALUES);CHECK_PETSC_ERROR(err);
} // for
+
+ PYLITH_METHOD_END;
} // _initialize
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegrator.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -37,11 +37,15 @@
void
pylith::feassemble::TestIntegrator::testTimeStep(void)
{ // testTimeStep
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
const PylithScalar dt = 1.2;
integrator.timeStep(dt);
CPPUNIT_ASSERT_EQUAL(dt, integrator._dt);
+
+ PYLITH_METHOD_END;
} // testTimeStep
// ----------------------------------------------------------------------
@@ -49,11 +53,14 @@
void
pylith::feassemble::TestIntegrator::testStableTimeStep(void)
{ // testStableTimeStep
+ PYLITH_METHOD_BEGIN;
+
bc::Neumann integrator;
topology::Mesh mesh;
- CPPUNIT_ASSERT_EQUAL(pylith::PYLITH_MAXSCALAR,
- integrator.stableTimeStep(mesh));
+ CPPUNIT_ASSERT_EQUAL(pylith::PYLITH_MAXSCALAR, integrator.stableTimeStep(mesh));
+
+ PYLITH_METHOD_END;
} // testStableTimeStep
// ----------------------------------------------------------------------
@@ -61,12 +68,16 @@
void
pylith::feassemble::TestIntegrator::testIsJacobianSymmetric(void)
{ // testIsJacobianSymmetric
+ PYLITH_METHOD_BEGIN;
+
ElasticityExplicit integrator;
CPPUNIT_ASSERT_EQUAL(true, integrator.isJacobianSymmetric());
integrator._isJacobianSymmetric = false;
CPPUNIT_ASSERT_EQUAL(false, integrator.isJacobianSymmetric());
+
+ PYLITH_METHOD_END;
} // testIsJacobianSymmetric
// ----------------------------------------------------------------------
@@ -74,6 +85,8 @@
void
pylith::feassemble::TestIntegrator::testQuadrature(void)
{ // testQuadrature
+ PYLITH_METHOD_BEGIN;
+
// Since quadrature is cloned, test setting quadrature by testing
// value of minJacobian
@@ -85,6 +98,8 @@
integrator.quadrature(&quadrature);
CPPUNIT_ASSERT_EQUAL(minJacobian, integrator._quadrature->minJacobian());
+
+ PYLITH_METHOD_END;
} // testQuadrature
// ----------------------------------------------------------------------
@@ -92,6 +107,8 @@
void
pylith::feassemble::TestIntegrator::testNormalizer(void)
{ // testNormalizer
+ PYLITH_METHOD_BEGIN;
+
const double lengthScale = 2.0;
spatialdata::units::Nondimensional normalizer;
@@ -101,6 +118,8 @@
integrator.normalizer(normalizer);
CPPUNIT_ASSERT_EQUAL(lengthScale, integrator._normalizer->lengthScale());
+
+ PYLITH_METHOD_END;
} // testNormalizer
// ----------------------------------------------------------------------
@@ -108,13 +127,17 @@
void
pylith::feassemble::TestIntegrator::testGravityField(void)
{ // testGravityField
+ PYLITH_METHOD_BEGIN;
+
ElasticityImplicit integrator;
spatialdata::spatialdb::GravityField gravityField;
CPPUNIT_ASSERT(0 == integrator._gravityField);
integrator.gravityField(&gravityField);
- CPPUNIT_ASSERT(0 != integrator._gravityField);
+ CPPUNIT_ASSERT(integrator._gravityField);
+
+ PYLITH_METHOD_END;
} // testGravityField
// ----------------------------------------------------------------------
@@ -122,6 +145,8 @@
void
pylith::feassemble::TestIntegrator::testInitCellVector(void)
{ // testInitCellVector
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> quadrature;
_initQuadrature(&quadrature);
@@ -135,6 +160,8 @@
CPPUNIT_ASSERT_EQUAL(size, integrator._cellVector.size());
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellVector[i]);
+
+ PYLITH_METHOD_END;
} // testInitCellVector
// ----------------------------------------------------------------------
@@ -142,6 +169,8 @@
void
pylith::feassemble::TestIntegrator::testResetCellVector(void)
{ // testResetCellVector
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> quadrature;
_initQuadrature(&quadrature);
@@ -158,6 +187,8 @@
integrator._resetCellVector();
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellVector[i]);
+
+ PYLITH_METHOD_END;
} // testResetCellVector
// ----------------------------------------------------------------------
@@ -165,6 +196,8 @@
void
pylith::feassemble::TestIntegrator::testInitCellMatrix(void)
{ // testInitCellMatrix
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> quadrature;
_initQuadrature(&quadrature);
@@ -179,6 +212,8 @@
CPPUNIT_ASSERT_EQUAL(size, integrator._cellMatrix.size());
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellMatrix[i]);
+
+ PYLITH_METHOD_END;
} // testInitCellMatrix
// ----------------------------------------------------------------------
@@ -186,6 +221,8 @@
void
pylith::feassemble::TestIntegrator::testResetCellMatrix(void)
{ // testResetCellMatrix
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> quadrature;
_initQuadrature(&quadrature);
@@ -203,6 +240,8 @@
integrator._resetCellMatrix();
for (size_t i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(PylithScalar(0.0), integrator._cellMatrix[i]);
+
+ PYLITH_METHOD_END;
} // testResetCellMatrix
// ----------------------------------------------------------------------
@@ -210,6 +249,8 @@
void
pylith::feassemble::TestIntegrator::testLumpCellMatrix(void)
{ // testLumpCellMatrix
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> quadrature;
_initQuadrature(&quadrature);
@@ -238,6 +279,8 @@
value += 1.23 + 1.2*(index+jBasis*spaceDim+iDim);
CPPUNIT_ASSERT_DOUBLES_EQUAL(value, integrator._cellVector[iBasis*spaceDim+iDim], tolerance);
} // for
+
+ PYLITH_METHOD_END;
} // testLumpCellMatrix
// ----------------------------------------------------------------------
@@ -245,6 +288,7 @@
void
pylith::feassemble::TestIntegrator::testSplitField(void)
{ // testSplitField
+ PYLITH_METHOD_BEGIN;
topology::Mesh mesh;
topology::Field<topology::Mesh> field(mesh);
@@ -252,24 +296,27 @@
ElasticityExplicit integrator;
integrator.splitField(&field);
// Expect nothing to happen
+
+ PYLITH_METHOD_END;
} // testSplitField
// ----------------------------------------------------------------------
// Set quadrature information.
void
-pylith::feassemble::TestIntegrator::_initQuadrature(
- Quadrature<topology::Mesh>* quadrature)
+pylith::feassemble::TestIntegrator::_initQuadrature(Quadrature<topology::Mesh>* quadrature)
{ // _initQuadrature
- CPPUNIT_ASSERT(0 != quadrature);
+ PYLITH_METHOD_BEGIN;
+ CPPUNIT_ASSERT(quadrature);
+
const int cellDim = 1;
const int numBasis = 2;
const int numQuadPts = 1;
const int spaceDim = 1;
- const PylithScalar basis[] = { 0.5, 0.5 };
- const PylithScalar basisDeriv[] = { -0.5, 0.5 };
- const PylithScalar quadPtsRef[] = { 0.0 };
- const PylithScalar quadWts[] = { 2.0 };
+ const PylithScalar basis[numQuadPts*numBasis] = { 0.5, 0.5 };
+ const PylithScalar basisDeriv[numQuadPts*numBasis*cellDim] = { -0.5, 0.5 };
+ const PylithScalar quadPtsRef[numQuadPts*cellDim] = { 0.0 };
+ const PylithScalar quadWts[numQuadPts] = { 2.0 };
const PylithScalar minJacobian = 1.0;
quadrature->initialize(basis, numQuadPts, numBasis,
@@ -277,6 +324,8 @@
quadPtsRef, numQuadPts, cellDim,
quadWts, numQuadPts,
spaceDim);
+
+ PYLITH_METHOD_END;
} // _initQuadrature
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticity.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -33,6 +33,8 @@
void
pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain1D(void)
{ // testCalcTotalStrain1D
+ PYLITH_METHOD_BEGIN;
+
// N0 = 0.5 * (1 - x)
// N1 = 0.5 * (1 + x)
// dN0/dx = -0.5
@@ -56,13 +58,14 @@
scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticity::_calcTotalStrain1D(&strain,
- basisDeriv, disp, numBasis, numQuadPts);
+ IntegratorElasticity::_calcTotalStrain1D(&strain, basisDeriv, disp, numBasis, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain1D
// ----------------------------------------------------------------------
@@ -70,6 +73,8 @@
void
pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain2D(void)
{ // testCalcTotalStrain2D
+ PYLITH_METHOD_BEGIN;
+
// N0 = x
// N1 = y
// N2 = 1 - x - y
@@ -104,13 +109,14 @@
scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticity::_calcTotalStrain2D(&strain, basisDeriv, disp,
- numBasis, numQuadPts);
+ IntegratorElasticity::_calcTotalStrain2D(&strain, basisDeriv, disp, numBasis, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain2D
// ----------------------------------------------------------------------
@@ -118,6 +124,8 @@
void
pylith::feassemble::TestIntegratorElasticity::testCalcTotalStrain3D(void)
{ // testCalcTotalStrain3D
+ PYLITH_METHOD_BEGIN;
+
// N0 = x
// N1 = y
// N2 = z
@@ -162,13 +170,14 @@
scalar_array basisDeriv(basisDerivVals, numQuadPts*numBasis*dim);
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticity::_calcTotalStrain3D(&strain, basisDeriv, disp,
- numBasis, numQuadPts);
+ IntegratorElasticity::_calcTotalStrain3D(&strain, basisDeriv, disp, numBasis, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain3D
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestIntegratorElasticityLgDeform.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -25,6 +25,7 @@
#include <math.h> // USES fabs()
#include <stdexcept>
+
// ----------------------------------------------------------------------
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::feassemble::TestIntegratorElasticityLgDeform );
@@ -33,6 +34,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation1D(void)
{ // testCalcDeformation1D
+ PYLITH_METHOD_BEGIN;
+
// N0 = 0.5 * (1 - x)
// N1 = 0.5 * (1 + x)
// dN0/dx = -0.5
@@ -60,9 +63,7 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
@@ -76,14 +77,14 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
} // Uniform strain
+
+ PYLITH_METHOD_END;
} // testCalcDeformation1D
// ----------------------------------------------------------------------
@@ -91,6 +92,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation2D(void)
{ // testCalcDeformation2D
+ PYLITH_METHOD_BEGIN;
+
// N0 = x
// N1 = y
// N2 = 1 - x - y
@@ -133,9 +136,7 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
@@ -165,9 +166,7 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
@@ -189,14 +188,14 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
} // Uniform strain
+
+ PYLITH_METHOD_END;
} // testCalcDeformation2D
// ----------------------------------------------------------------------
@@ -204,6 +203,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcDeformation3D(void)
{ // testCalcDeformation3D
+ PYLITH_METHOD_BEGIN;
+
// N0 = 0.125 * (1-x) * (1-y) * (1-z)
// N1 = 0.125 * (1+x) * (1-y) * (1-z)
// N2 = 0.125 * (1+x) * (1+y) * (1-z)
@@ -273,9 +274,7 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
@@ -328,14 +327,14 @@
scalar_array disp(dispVals, numBasis*dim);
- IntegratorElasticityLgDeform::_calcDeformation(&deform,
- basisDeriv, vertices, disp,
- numBasis, numQuadPts, dim);
+ IntegratorElasticityLgDeform::_calcDeformation(&deform, basisDeriv, vertices, disp, numBasis, numQuadPts, dim);
CPPUNIT_ASSERT_EQUAL(size, int(deform.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(deformE[i], deform[i], tolerance);
} // Uniform strain
+
+ PYLITH_METHOD_END;
} // testCalcDeformation3D
// ----------------------------------------------------------------------
@@ -343,6 +342,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain1D(void)
{ // testCalcTotalStrain1D
+ PYLITH_METHOD_BEGIN;
+
// Deformation tensor X
// X = [ 2.0 ], [ 0.4 ]
const int dim = 1;
@@ -360,13 +361,14 @@
scalar_array deform(deformVals, numQuadPts*dim*dim);
- IntegratorElasticityLgDeform::_calcTotalStrain1D(&strain,
- deform, numQuadPts);
+ IntegratorElasticityLgDeform::_calcTotalStrain1D(&strain, deform, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain1D
// ----------------------------------------------------------------------
@@ -374,6 +376,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain2D(void)
{ // testCalcTotalStrain2D
+ PYLITH_METHOD_BEGIN;
+
// Deformation tensor X
// X = [ 2.0, 0.4 ] [ 1.5, 0.2 ]
// [ 0.6, 1.4 ], [ -0.9, 0.8 ]
@@ -394,13 +398,14 @@
scalar_array deform(deformVals, numQuadPts*dim*dim);
- IntegratorElasticityLgDeform::_calcTotalStrain2D(&strain,
- deform, numQuadPts);
+ IntegratorElasticityLgDeform::_calcTotalStrain2D(&strain, deform, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain2D
// ----------------------------------------------------------------------
@@ -408,6 +413,8 @@
void
pylith::feassemble::TestIntegratorElasticityLgDeform::testCalcTotalStrain3D(void)
{ // testCalcTotalStrain3D
+ PYLITH_METHOD_BEGIN;
+
// Deformation tensor X
// X = [ 2.0, 0.4, 0.3 ] [ 1.5, 0.2, -0.1 ]
// [ 0.6, 1.4, -0.8 ] [ -0.9, 0.8, 0.3 ]
@@ -429,13 +436,14 @@
scalar_array deform(deformVals, numQuadPts*dim*dim);
- IntegratorElasticityLgDeform::_calcTotalStrain3D(&strain,
- deform, numQuadPts);
+ IntegratorElasticityLgDeform::_calcTotalStrain3D(&strain, deform, numQuadPts);
const PylithScalar tolerance = 1.0e-06;
CPPUNIT_ASSERT_EQUAL(size, int(strain.size()));
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_DOUBLES_EQUAL(strainE[i], strain[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testCalcTotalStrain3D
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadrature.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -38,6 +38,8 @@
void
pylith::feassemble::TestQuadrature::testCopyConstructor(void)
{ // testClone
+ PYLITH_METHOD_BEGIN;
+
// Semi-random values manually set to check cloning
const PylithScalar minJacobianE = 1.0;
const bool checkConditioning = true;
@@ -45,10 +47,10 @@
const int numBasisE = 2;
const int numQuadPtsE = 1;
const int spaceDimE = 1;
- const PylithScalar basisE[] = { 0.2, 0.4 };
- const PylithScalar basisDerivE[] = { 0.8, 1.6 };
- const PylithScalar quadPtsRefE[] = { 3.2 };
- const PylithScalar quadWtsE[] = { 6.4 };
+ const PylithScalar basisE[numQuadPtsE*numBasisE] = { 0.2, 0.4 };
+ const PylithScalar basisDerivE[numQuadPtsE*numBasisE*cellDimE] = { 0.8, 1.6 };
+ const PylithScalar quadPtsRefE[numQuadPtsE*cellDimE] = { 3.2 };
+ const PylithScalar quadWtsE[numQuadPtsE] = { 6.4 };
const PylithScalar quadPtsE[] = { 12.8 };
const PylithScalar jacobianE[] = { 2.56 };
const PylithScalar jacobianInvE[] = { 5.12 };
@@ -70,7 +72,7 @@
Quadrature<topology::Mesh> qCopy(qOrig);
// Check copy
- CPPUNIT_ASSERT(0 == qCopy._engine);
+ CPPUNIT_ASSERT(!qCopy._engine);
CPPUNIT_ASSERT_EQUAL(minJacobianE, qCopy._minJacobian);
CPPUNIT_ASSERT_EQUAL(checkConditioning, qCopy._checkConditioning);
CPPUNIT_ASSERT_EQUAL(cellDimE, qCopy.cellDim());
@@ -105,6 +107,8 @@
CPPUNIT_ASSERT_EQUAL(geometry.cellDim(), qCopy.refGeometry().cellDim());
CPPUNIT_ASSERT_EQUAL(geometry.spaceDim(), qCopy.refGeometry().spaceDim());
CPPUNIT_ASSERT_EQUAL(geometry.numCorners(), qCopy.refGeometry().numCorners());
+
+ PYLITH_METHOD_END;
} // testCopyConstructor
// ----------------------------------------------------------------------
@@ -112,6 +116,8 @@
void
pylith::feassemble::TestQuadrature::testCheckConditioning(void)
{ // testCheckConditioning
+ PYLITH_METHOD_BEGIN;
+
Quadrature<topology::Mesh> q;
CPPUNIT_ASSERT_EQUAL(false, q.checkConditioning());
@@ -119,6 +125,8 @@
CPPUNIT_ASSERT_EQUAL(true, q.checkConditioning());
q.checkConditioning(false);
CPPUNIT_ASSERT_EQUAL(false, q.checkConditioning());
+
+ PYLITH_METHOD_END;
} // testCheckConditioning
// ----------------------------------------------------------------------
@@ -126,6 +134,8 @@
void
pylith::feassemble::TestQuadrature::testEngineAccessors(void)
{ // testEngineAccessors
+ PYLITH_METHOD_BEGIN;
+
const int cellDim = 2;
const int numBasis = 5;
const int numQuadPts = 1;
@@ -169,6 +179,8 @@
size = numQuadPts * numBasis * spaceDim;
CPPUNIT_ASSERT_EQUAL(size, q.basisDeriv().size());
+
+ PYLITH_METHOD_END;
} // testEngineAccessors
// ----------------------------------------------------------------------
@@ -176,7 +188,7 @@
void
pylith::feassemble::TestQuadrature::testComputeGeometry(void)
{ // testComputeGeometry
- typedef pylith::topology::Mesh::SieveMesh SieveMesh;
+ PYLITH_METHOD_BEGIN;
QuadratureData2DLinear data;
const int cellDim = data.cellDim;
@@ -195,14 +207,13 @@
// Create mesh with test cell
topology::Mesh mesh(data.cellDim);
- DM dmMesh;
+
PetscErrorCode err;
// Cells and vertices
PetscBool interpolate = PETSC_FALSE;
-
- err = DMPlexCreateFromCellList(mesh.comm(), cellDim, numCells, data.numVertices, numBasis, interpolate, const_cast<int*>(data.cells), spaceDim, data.vertices, &dmMesh);CHECK_PETSC_ERROR(err);
- CPPUNIT_ASSERT(dmMesh);
+ PetscDM dmMesh = NULL;
+ err = DMPlexCreateFromCellList(mesh.comm(), cellDim, numCells, data.numVertices, numBasis, interpolate, const_cast<int*>(data.cells), spaceDim, data.vertices, &dmMesh);CHECK_PETSC_ERROR(err);CPPUNIT_ASSERT(dmMesh);
mesh.setDMMesh(dmMesh);
// Setup quadrature and compute geometry
@@ -217,34 +228,25 @@
spaceDim);
PetscInt cStart, cEnd;
-
err = DMPlexGetHeightStratum(dmMesh, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
quadrature.initializeGeometry();
-#if defined(PRECOMPUTE_GEOMETRY)
- quadrature.computeGeometry(mesh, cells);
-#else
scalar_array coordinatesCell(numBasis*spaceDim);
- PetscSection coordSection;
- Vec coordVec;
+ PetscSection coordSection = NULL;
+ PetscVec coordVec = NULL;
err = DMPlexGetCoordinateSection(dmMesh, &coordSection);CHECK_PETSC_ERROR(err);
err = DMGetCoordinatesLocal(dmMesh, &coordVec);CHECK_PETSC_ERROR(err);
-#endif
size_t size = 0;
// Check values from computeGeometry()
const PylithScalar tolerance = 1.0e-06;
for (PetscInt c = cStart; c < cEnd; ++c) {
-#if defined(PRECOMPUTE_GEOMETRY)
- quadrature.retrieveGeometry(c);
-#else
PetscScalar *coordsArray = NULL;
PetscInt coordsSize = 0;
err = DMPlexVecGetClosure(dmMesh, coordSection, coordVec, c, &coordsSize, &coordsArray);CHECK_PETSC_ERROR(err);
quadrature.computeGeometry(coordsArray, coordsSize, c);
err = DMPlexVecRestoreClosure(dmMesh, coordSection, coordVec, c, &coordsSize, &coordsArray);CHECK_PETSC_ERROR(err);
-#endif
const scalar_array& quadPts = quadrature.quadPts();
size = numQuadPts * spaceDim;
@@ -274,11 +276,13 @@
// Check clear()
quadrature.clear();
- CPPUNIT_ASSERT(0 == quadrature._geometryFields);
- CPPUNIT_ASSERT(0 == quadrature._engine);
+ CPPUNIT_ASSERT(!quadrature._geometryFields);
+ CPPUNIT_ASSERT(!quadrature._engine);
// Make sure caling clear without data doesn't generate errors
quadrature.clear();
+
+ PYLITH_METHOD_END;
} // testComputeGeometry
// ----------------------------------------------------------------------
@@ -286,7 +290,7 @@
void
pylith::feassemble::TestQuadrature::testComputeGeometryCell(void)
{ // testComputeGeometryCell
- typedef pylith::topology::Mesh::SieveMesh SieveMesh;
+ PYLITH_METHOD_BEGIN;
QuadratureData2DLinear data;
const int cellDim = data.cellDim;
@@ -304,32 +308,6 @@
const PylithScalar minJacobian = 1.0e-06;
-#if 0
- // Create mesh with test cell
- topology::Mesh mesh(data.cellDim);
- const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- ALE::Obj<SieveMesh::sieve_type> sieve =
- new SieveMesh::sieve_type(mesh.comm());
- CPPUNIT_ASSERT(!sieve.isNull());
-
- // Cells and vertices
- const bool interpolate = false;
- ALE::Obj<SieveFlexMesh::sieve_type> s =
- new SieveFlexMesh::sieve_type(sieve->comm(), sieve->debug());
-
- ALE::SieveBuilder<SieveFlexMesh>::buildTopology(s, cellDim, numCells,
- const_cast<int*>(data.cells),
- data.numVertices,
- interpolate, numBasis);
- std::map<SieveFlexMesh::point_type,SieveFlexMesh::point_type> renumbering;
- ALE::ISieveConverter::convertSieve(*s, *sieve, renumbering);
- sieveMesh->setSieve(sieve);
- sieveMesh->stratify();
- ALE::SieveBuilder<SieveMesh>::buildCoordinates(sieveMesh, spaceDim,
- data.vertices);
-#endif
-
// Setup quadrature and compute geometry
GeometryTri2D geometry;
Quadrature<topology::Mesh> quadrature;
@@ -341,11 +319,6 @@
data.quadWts, numQuadPts,
spaceDim);
-#if 0
- const ALE::Obj<SieveMesh::label_sequence>& cells = sieveMesh->heightStratum(0);
- CPPUNIT_ASSERT(!cells.isNull());
-#endif
-
quadrature.initializeGeometry();
quadrature.computeGeometry(vertCoords, vertCoordsSize, 0);
@@ -380,8 +353,10 @@
quadrature.clear();
- CPPUNIT_ASSERT(0 == quadrature._geometryFields);
- CPPUNIT_ASSERT(0 == quadrature._engine);
+ CPPUNIT_ASSERT(!quadrature._geometryFields);
+ CPPUNIT_ASSERT(!quadrature._engine);
+
+ PYLITH_METHOD_END;
} // testComputeGeometryCell
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureEngine.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -23,6 +23,8 @@
#include "pylith/feassemble/QuadratureRefCell.hh" // USES QuadratureRefCell
#include "pylith/feassemble/Quadrature1D.hh" // USES Quadrature1D
+#include "pylith/utils/petscerror.h" // USES PYLITH_METHOD_BEGIN/END
+
#include "data/QuadratureData.hh" // USES QuadratureData
#include <string.h> // USES memcpy()
@@ -35,6 +37,8 @@
void
pylith::feassemble::TestQuadratureEngine::testCopyConstructor(void)
{ // testClone
+ PYLITH_METHOD_BEGIN;
+
// Semi-random values manually set to check cloning
const PylithScalar quadPtsE[] = { 12.8 };
const PylithScalar jacobianE[] = { 2.56 };
@@ -66,7 +70,7 @@
// Copy
const QuadratureEngine* engine = engineOrig.clone();
- CPPUNIT_ASSERT(0 != engine);
+ CPPUNIT_ASSERT(engine);
const scalar_array& quadPts = engine->quadPts();
size = 1;
@@ -93,6 +97,8 @@
CPPUNIT_ASSERT_EQUAL(jacobianDetE[i], jacobianDet[i]);
delete engine; engine = 0;
+
+ PYLITH_METHOD_END;
} // testCopyConstructor
// ----------------------------------------------------------------------
@@ -100,6 +106,8 @@
void
pylith::feassemble::TestQuadratureEngine::testInitialize(void)
{ // testInitialize
+ PYLITH_METHOD_BEGIN;
+
const int cellDim = 2;
const int numBasis = 5;
const int numQuadPts = 1;
@@ -143,6 +151,8 @@
size = numQuadPts * numBasis * spaceDim;
CPPUNIT_ASSERT_EQUAL(size, engine.basisDeriv().size());
+
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -153,6 +163,8 @@
QuadratureRefCell* refCell,
const QuadratureData& data) const
{ // testComputeGeometry
+ PYLITH_METHOD_BEGIN;
+
const int cellDim = data.cellDim;
const int numBasis = data.numBasis;
const int numQuadPts = data.numQuadPts;
@@ -173,8 +185,8 @@
const PylithScalar* basisDerivE = data.basisDeriv;
CPPUNIT_ASSERT(1 == numCells);
- CPPUNIT_ASSERT(0 != engine);
- CPPUNIT_ASSERT(0 != refCell);
+ CPPUNIT_ASSERT(engine);
+ CPPUNIT_ASSERT(refCell);
const PylithScalar minJacobian = 1.0e-06;
refCell->minJacobian(minJacobian);
@@ -195,23 +207,21 @@
size = numQuadPts * cellDim * spaceDim;
for (int i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianE[i], engine->_jacobian[i],
- tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianE[i], engine->_jacobian[i], tolerance);
size = numQuadPts * spaceDim * cellDim;
for (int i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianInvE[i], engine->_jacobianInv[i],
- tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianInvE[i], engine->_jacobianInv[i], tolerance);
size = numQuadPts;
for (int i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianDetE[i], engine->_jacobianDet[i],
- tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(jacobianDetE[i], engine->_jacobianDet[i], tolerance);
size = numQuadPts * numBasis * spaceDim;
for (int i=0; i < size; ++i)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(basisDerivE[i], engine->_basisDeriv[i],
- tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(basisDerivE[i], engine->_basisDeriv[i], tolerance);
+
+ PYLITH_METHOD_END;
} // testComputeGeometry
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/TestQuadratureRefCell.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -23,6 +23,8 @@
#include "pylith/feassemble/QuadratureRefCell.hh" // USES QuadratureRefCell
#include "pylith/feassemble/GeometryLine1D.hh" // USES GeometryLine1D
+#include "pylith/utils/petscerror.h" // USES PYLITH_METHOD_BEGIN/END
+
#include "data/QuadratureData.hh" // USES QuadratureData
#include <string.h> // USES memcpy()
@@ -35,7 +37,11 @@
void
pylith::feassemble::TestQuadratureRefCell::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
QuadratureRefCell q;
+
+ PYLITH_METHOD_END;
} // testMinJacobian
// ----------------------------------------------------------------------
@@ -43,11 +49,15 @@
void
pylith::feassemble::TestQuadratureRefCell::testMinJacobian(void)
{ // testMinJacobian
+ PYLITH_METHOD_BEGIN;
+
QuadratureRefCell q;
const PylithScalar min = 1.0;
q.minJacobian(min);
CPPUNIT_ASSERT_EQUAL(min, q._minJacobian);
+
+ PYLITH_METHOD_END;
} // testMinJacobian
// ----------------------------------------------------------------------
@@ -55,6 +65,8 @@
void
pylith::feassemble::TestQuadratureRefCell::testRefGeometry(void)
{ // testRefGeometry
+ PYLITH_METHOD_BEGIN;
+
GeometryLine1D geometry;
QuadratureRefCell quadrature;
@@ -64,6 +76,8 @@
CPPUNIT_ASSERT_EQUAL(geometry.cellDim(), test.cellDim());
CPPUNIT_ASSERT_EQUAL(geometry.spaceDim(), test.spaceDim());
CPPUNIT_ASSERT_EQUAL(geometry.numCorners(), test.numCorners());
+
+ PYLITH_METHOD_END;
} // testRefGeometry
// ----------------------------------------------------------------------
@@ -71,6 +85,7 @@
void
pylith::feassemble::TestQuadratureRefCell::testInitialize(void)
{ // initialize
+ PYLITH_METHOD_BEGIN;
const int cellDim = 1;
const int numBasis = 2;
@@ -109,6 +124,8 @@
size = numQuadPts;
for (int i=0; i < size; ++i)
CPPUNIT_ASSERT_EQUAL(quadWts[i], q._quadWts[i]);
+
+ PYLITH_METHOD_END;
} // initialize
Modified: short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc 2013-04-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.cc 2013-04-24 19:55:25 UTC (rev 21925)
@@ -21,8 +21,14 @@
// ----------------------------------------------------------------------
// 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-24 16:31:44 UTC (rev 21924)
+++ short/3D/PyLith/trunk/unittests/libtests/feassemble/data/ElasticityExplicitData.hh 2013-04-24 19:55:25 UTC (rev 21925)
@@ -42,6 +42,14 @@
// 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.
More information about the CIG-COMMITS
mailing list