[cig-commits] r21951 - in short/3D/PyLith/trunk/unittests/libtests/faults: . data
brad at geodynamics.org
brad at geodynamics.org
Thu Apr 25 17:53:48 PDT 2013
Author: brad
Date: 2013-04-25 17:53:47 -0700 (Thu, 25 Apr 2013)
New Revision: 21951
Modified:
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulsesCases.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.hh
Log:
Code cleanup. Added scales to impulse tests.
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc 2013-04-26 00:32:45 UTC (rev 21950)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulses.cc 2013-04-26 00:53:47 UTC (rev 21951)
@@ -26,9 +26,10 @@
#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/feassemble/Quadrature.hh" // USES Quadrature
#include "pylith/topology/SolutionFields.hh" // USES SolutionFields
-#include "pylith/topology/Jacobian.hh" // USES Jacobian
#include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
#include "spatialdata/geocoords/CSCart.hh" // USES CSCart
@@ -41,20 +42,19 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulses );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
-typedef pylith::topology::SubMesh::SieveMesh SieveSubMesh;
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::faults::TestFaultCohesiveImpulses::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
_data = 0;
_quadrature = new feassemble::Quadrature<topology::SubMesh>();
- CPPUNIT_ASSERT(0 != _quadrature);
+ CPPUNIT_ASSERT(_quadrature);
_dbImpulseAmp = 0;
_flipFault = false;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
@@ -62,9 +62,13 @@
void
pylith::faults::TestFaultCohesiveImpulses::tearDown(void)
{ // tearDown
+ PYLITH_METHOD_BEGIN;
+
delete _data; _data = 0;
delete _quadrature; _quadrature = 0;
delete _dbImpulseAmp; _dbImpulseAmp = 0;
+
+ PYLITH_METHOD_END;
} // tearDown
// ----------------------------------------------------------------------
@@ -72,7 +76,11 @@
void
pylith::faults::TestFaultCohesiveImpulses::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
FaultCohesiveImpulses fault;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -80,6 +88,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testDBImpulseAmp(void)
{ // testDBImpulseAmp
+ PYLITH_METHOD_BEGIN;
+
FaultCohesiveImpulses fault;
const std::string& label = "test database";
@@ -88,6 +98,8 @@
fault.dbImpulseAmp(&db);
CPPUNIT_ASSERT(fault._dbImpulseAmp);
CPPUNIT_ASSERT_EQUAL(label, std::string(fault._dbImpulseAmp->label()));
+
+ PYLITH_METHOD_END;
} // testDBImpulseAmp
// ----------------------------------------------------------------------
@@ -95,6 +107,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testThreshold(void)
{ // testThreshold
+ PYLITH_METHOD_BEGIN;
+
FaultCohesiveImpulses fault;
CPPUNIT_ASSERT_EQUAL(PylithScalar(1.0e-6), fault._threshold); // default
@@ -109,6 +123,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testImpulseDOF(void)
{ // testImpulseDOF
+ PYLITH_METHOD_BEGIN;
+
FaultCohesiveImpulses fault;
const int ncomps = 2;
@@ -127,6 +143,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testNumImpulses(void)
{ // testNumImpulses
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -146,6 +164,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testInitialize(void)
{ // testInitialize
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
topology::Mesh mesh;
@@ -153,16 +173,16 @@
topology::SolutionFields fields(mesh);
_initialize(&mesh, &fault, &fields);
- DM dmMesh = fault._faultMesh->dmMesh();
- IS subpointIS;
- const PetscInt *points;
- PetscInt vStart, vEnd, numPoints;
- PetscErrorCode err;
+ PetscDM dmMesh = fault._faultMesh->dmMesh();CPPUNIT_ASSERT(dmMesh);
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
- CPPUNIT_ASSERT(dmMesh);
- err = DMPlexGetDepthStratum(dmMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
- err = DMPlexCreateSubpointIS(dmMesh, &subpointIS);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT(subpointIS);
+ PetscIS subpointIS = NULL;
+ const PetscInt *points = NULL;
+ PetscInt numPoints = 0;
+ PetscErrorCode err;
+ err = DMPlexCreateSubpointIS(dmMesh, &subpointIS);PYLITH_CHECK_ERROR(err);CPPUNIT_ASSERT(subpointIS);
err = ISGetSize(subpointIS, &numPoints);PYLITH_CHECK_ERROR(err);
err = ISGetIndices(subpointIS, &points);PYLITH_CHECK_ERROR(err);
for(PetscInt v = vStart; v < vEnd; ++v) {
@@ -179,50 +199,37 @@
// Check orientation
//fault._fields->get("orientation").view("ORIENTATION"); // DEBUGGING
- PetscSection orientationSection = fault._fields->get("orientation").petscSection();
- Vec orientationVec = fault._fields->get("orientation").localVector();
- PetscScalar *orientationArray;
- CPPUNIT_ASSERT(orientationSection);CPPUNIT_ASSERT(orientationVec);
+ topology::VecVisitorMesh orientationVisitor(fault._fields->get("orientation"));
+ const PetscScalar* orientationArray = orientationVisitor.localArray();
+
const int spaceDim = _data->spaceDim;
const int orientationSize = spaceDim*spaceDim;
- int iVertex = 0;
- err = VecGetArray(orientationVec, &orientationArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iVertex) {
- PetscInt dof, off;
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt off = orientationVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(orientationSize, orientationVisitor.sectionDof(v));
- err = PetscSectionGetDof(orientationSection, v, &dof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(orientationSection, v, &off);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(orientationSize, dof);
-
const PylithScalar tolerance = 1.0e-06;
for(PetscInt d = 0; d < orientationSize; ++d) {
CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->orientation[iVertex*orientationSize+d], orientationArray[off+d], tolerance);
} // for
} // for
- err = VecRestoreArray(orientationVec, &orientationArray);PYLITH_CHECK_ERROR(err);
// Initial tractions
if (fault._dbImpulseAmp) {
- //fault._fields->get("initial traction").view("INITIAL TRACTIONS"); // DEBUGGING
- PetscSection amplitudeSection = fault._fields->get("impulse amplitude").petscSection();
- Vec amplitudeVec = fault._fields->get("impulse amplitude").localVector();
- PetscScalar *amplitudeArray;
- CPPUNIT_ASSERT(amplitudeSection);CPPUNIT_ASSERT(amplitudeVec);
- const int spaceDim = _data->spaceDim;
- iVertex = 0;
- err = VecGetArray(amplitudeVec, &litudeArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iVertex) {
- PetscInt dof, off;
+ topology::VecVisitorMesh amplitudeVisitor(fault._fields->get("impulse amplitude"));
+ const PetscScalar* amplitudeArray = amplitudeVisitor.localArray();
+ const PylithScalar amplitudeScale = _data->lengthScale;
- err = PetscSectionGetDof(amplitudeSection, v, &dof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(amplitudeSection, v, &off);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(1, dof);
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt off = amplitudeVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(1, amplitudeVisitor.sectionDof(v));
const PylithScalar tolerance = 1.0e-06;
- CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->amplitude[iVertex], amplitudeArray[off], tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->amplitude[iVertex], amplitudeArray[off]*amplitudeScale, tolerance);
} // for
- err = VecRestoreArray(amplitudeVec, &litudeArray);PYLITH_CHECK_ERROR(err);
} // if
+
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -230,6 +237,8 @@
void
pylith::faults::TestFaultCohesiveImpulses::testIntegrateResidual(void)
{ // testIntegrateResidual
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(_data);
CPPUNIT_ASSERT(_data->fieldT);
CPPUNIT_ASSERT(_data->residualIncr);
@@ -240,75 +249,63 @@
_initialize(&mesh, &fault, &fields);
const int spaceDim = _data->spaceDim;
- topology::Field<topology::Mesh>& residual = fields.get("residual");
- PetscSection residualSection = residual.petscSection();
- Vec residualVec = residual.localVector();
- PetscScalar *residualArray;
- CPPUNIT_ASSERT(residualSection);CPPUNIT_ASSERT(residualVec);
- PetscSection dispSection = fields.get("disp(t)").petscSection();
- Vec dispVec = fields.get("disp(t)").localVector();
- PetscScalar *dispArray;
- CPPUNIT_ASSERT(dispSection);CPPUNIT_ASSERT(dispVec);
+ PetscDM dmMesh = mesh.dmMesh();CPPUNIT_ASSERT(dmMesh);
+ topology::Stratum verticesStratum(dmMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
- DM dmMesh = mesh.dmMesh();
- PetscInt vStart, vEnd;
- PetscErrorCode err;
+ topology::VecVisitorMesh dispVisitor(fields.get("disp(t)"));
+ PetscScalar* dispArray = dispVisitor.localArray();CPPUNIT_ASSERT(dispArray);
- CPPUNIT_ASSERT(dmMesh);
- err = DMPlexGetDepthStratum(dmMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
- int iVertex = 0;
- err = VecGetArray(dispVec, &dispArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iVertex) {
- PetscInt off;
- err = PetscSectionGetOffset(dispSection, v, &off);PYLITH_CHECK_ERROR(err);
- for(PetscInt d = 0; d < spaceDim; ++d) dispArray[off+d] = _data->fieldT[iVertex*spaceDim+d];
- }
- err = VecRestoreArray(dispVec, &dispArray);PYLITH_CHECK_ERROR(err);
+ for(PetscInt v = vStart, iVertex=0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt off = dispVisitor.sectionOffset(v);
+ for(PetscInt d = 0; d < spaceDim; ++d)
+ dispArray[off+d] = _data->fieldT[iVertex*spaceDim+d] / _data->lengthScale;
+ } // for
const PylithScalar t = 1.0;
const PylithScalar dt = 1.0;
fault.timeStep(dt);
+ topology::Field<topology::Mesh>& residual = fields.get("residual");
residual.zero();
- { // Integrate residual with disp increment.
- fault.integrateResidual(residual, t, &fields);
+ fault.integrateResidual(residual, t, &fields);
+ //residual.view("RESIDUAL"); // DEBUGGING
- //residual.view("RESIDUAL"); // DEBUGGING
+ topology::VecVisitorMesh residualVisitor(residual);
+ const PetscScalar* residualArray = residualVisitor.localArray();CPPUNIT_ASSERT(residualArray);
- // Check values
- const PylithScalar* valsE = _data->residualIncr;
- iVertex = 0;
- const int fiberDimE = spaceDim;
- const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
- err = VecGetArray(residualVec, &residualArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iVertex) {
- PetscInt dof, off;
+ // Check values
+ const PylithScalar* valsE = _data->residualIncr;
+ const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
+ const PylithScalar residualScale = pow(_data->lengthScale, spaceDim);
- err = PetscSectionGetDof(residualSection, v, &dof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(residualSection, v, &off);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(fiberDimE, dof);
-
- for(PetscInt d = 0; d < fiberDimE; ++d) {
- const PylithScalar valE = valsE[iVertex*spaceDim+d];
- if (fabs(valE) > tolerance)
- CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valE, tolerance);
- else
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, residualArray[off+d], tolerance);
- } // for
+ for(PetscInt v = vStart, iVertex = 0; v < vEnd; ++v, ++iVertex) {
+ const PetscInt off = residualVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, residualVisitor.sectionDof(v));
+
+ for(PetscInt d = 0; d < spaceDim; ++d) {
+ const PylithScalar valE = valsE[iVertex*spaceDim+d];
+ if (fabs(valE) > tolerance)
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, residualArray[off+d]/valE*residualScale, tolerance);
+ else
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, residualArray[off+d]*residualScale, tolerance);
} // for
- err = VecRestoreArray(residualVec, &residualArray);PYLITH_CHECK_ERROR(err);
- } // Integrate residual with disp increment.
+ } // for
+
+ PYLITH_METHOD_END;
} // testIntegrateResidual
// ----------------------------------------------------------------------
// Initialize FaultCohesiveImpulses interface condition.
void
-pylith::faults::TestFaultCohesiveImpulses::_initialize(
- topology::Mesh* const mesh,
- FaultCohesiveImpulses* const fault,
- topology::SolutionFields* const fields)
+pylith::faults::TestFaultCohesiveImpulses::_initialize(topology::Mesh* const mesh,
+ FaultCohesiveImpulses* const fault,
+ topology::SolutionFields* const fields)
{ // _initialize
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(mesh);
CPPUNIT_ASSERT(fault);
CPPUNIT_ASSERT(fields);
@@ -319,7 +316,19 @@
iohandler.filename(_data->meshFilename);
iohandler.read(mesh);
- //mesh->debug(true); // DEBUGGING
+ // Set coordinate system
+ spatialdata::geocoords::CSCart cs;
+ cs.setSpaceDim(mesh->dimension());
+ cs.initialize();
+ mesh->coordsys(&cs);
+
+ // Set scales
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_data->lengthScale);
+ normalizer.pressureScale(_data->pressureScale);
+ normalizer.densityScale(_data->densityScale);
+ normalizer.timeScale(_data->timeScale);
+ mesh->nondimensionalize(normalizer);
_quadrature->initialize(_data->basis, _data->numQuadPts, _data->numBasis,
_data->basisDeriv,
@@ -329,9 +338,7 @@
_data->spaceDim);
// Setup impulse amplitude
- spatialdata::spatialdb::SimpleDB* db =
- new spatialdata::spatialdb::SimpleDB("impulse amplitude");
- CPPUNIT_ASSERT(db);
+ spatialdata::spatialdb::SimpleDB* db = new spatialdata::spatialdb::SimpleDB("impulse amplitude");CPPUNIT_ASSERT(db);
spatialdata::spatialdb::SimpleIOAscii ioImpulseAmp;
ioImpulseAmp.filename(_data->impulseAmpFilename);
db->ioHandler(&ioImpulseAmp);
@@ -341,31 +348,24 @@
CPPUNIT_ASSERT(_data->impulseDOF);
fault->impulseDOF(_data->impulseDOF, _data->numComponents);
- PetscInt labelSize;
+ PetscInt labelSize;
PetscErrorCode err;
err = DMPlexGetStratumSize(mesh->dmMesh(), _data->label, 1, &labelSize);PYLITH_CHECK_ERROR(err);
- PetscInt firstFaultVertex = 0;
+ PetscInt firstFaultVertex = 0;
PetscInt firstLagrangeVertex = labelSize;
- PetscInt firstFaultCell = labelSize;
+ PetscInt firstFaultCell = labelSize;
if (fault->useLagrangeConstraints())
firstFaultCell += labelSize;
fault->id(_data->id);
fault->label(_data->label);
fault->quadrature(_quadrature);
- fault->adjustTopology(mesh, &firstFaultVertex, &firstLagrangeVertex,
- &firstFaultCell, _flipFault);
+ fault->adjustTopology(mesh, &firstFaultVertex, &firstLagrangeVertex, &firstFaultCell, _flipFault);
- spatialdata::geocoords::CSCart cs;
- spatialdata::units::Nondimensional normalizer;
- cs.setSpaceDim(mesh->dimension());
- cs.initialize();
- mesh->coordsys(&cs);
- mesh->nondimensionalize(normalizer);
-
const PylithScalar upDir[3] = { 0.0, 0.0, 1.0 };
+ fault->normalizer(normalizer);
fault->initialize(*mesh, upDir);
// Setup fields
@@ -382,6 +382,8 @@
fields->copyLayout("disp(t)");
fault->verifyConfiguration(*mesh);
+
+ PYLITH_METHOD_END;
} // _initialize
// ----------------------------------------------------------------------
@@ -389,8 +391,10 @@
bool
pylith::faults::TestFaultCohesiveImpulses::_isConstraintVertex(const int vertex) const
{ // _isConstraintVertex
- assert(0 != _data);
+ PYLITH_METHOD_BEGIN;
+ assert(_data);
+
const int numConstraintVert = _data->numConstraintVert;
bool isFound = false;
for (int i=0; i < _data->numConstraintVert; ++i)
@@ -398,7 +402,7 @@
isFound = true;
break;
} // if
- return isFound;
+ PYLITH_METHOD_RETURN(isFound);
} // _isConstraintVertex
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulsesCases.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulsesCases.cc 2013-04-26 00:32:45 UTC (rev 21950)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveImpulsesCases.cc 2013-04-26 00:53:47 UTC (rev 21951)
@@ -20,30 +20,24 @@
#include "TestFaultCohesiveImpulsesCases.hh" // Implementation of class methods
-#include "data/CohesiveImpulsesDataTri3.hh"
-#include "data/CohesiveImpulsesDataQuad4.hh"
-#include "data/CohesiveImpulsesDataTet4.hh"
-#include "data/CohesiveImpulsesDataHex8.hh"
-
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/feassemble/Quadrature.hh" // USES Quadrature<SubMesh>
+
#include "pylith/feassemble/GeometryLine2D.hh" // USES GeometryLine2D
#include "pylith/feassemble/GeometryTri3D.hh" // USES GeometryTri3D
#include "pylith/feassemble/GeometryQuad3D.hh" // USES GeometryQuad3D
// ----------------------------------------------------------------------
+#include "data/CohesiveImpulsesDataTri3.hh"
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesTri3 );
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesQuad4 );
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesTet4 );
-CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesHex8 );
-
-// ----------------------------------------------------------------------
// Setup testing data.
void
pylith::faults::TestFaultCohesiveImpulsesTri3::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
TestFaultCohesiveImpulses::setUp();
_data = new CohesiveImpulsesDataTri3;
@@ -52,42 +46,63 @@
_quadrature->refGeometry(&geometry);
_flipFault = true;
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
+#include "data/CohesiveImpulsesDataQuad4.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesQuad4 );
+
// Setup testing data.
void
pylith::faults::TestFaultCohesiveImpulsesQuad4::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
TestFaultCohesiveImpulses::setUp();
_data = new CohesiveImpulsesDataQuad4;
CPPUNIT_ASSERT(_quadrature);
feassemble::GeometryLine2D geometry;
_quadrature->refGeometry(&geometry);
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
+#include "data/CohesiveImpulsesDataTet4.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesTet4 );
+
// Setup testing data.
void
pylith::faults::TestFaultCohesiveImpulsesTet4::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
TestFaultCohesiveImpulses::setUp();
_data = new CohesiveImpulsesDataTet4;
CPPUNIT_ASSERT(_quadrature);
feassemble::GeometryTri3D geometry;
_quadrature->refGeometry(&geometry);
+
+ PYLITH_METHOD_END;
} // setUp
// ----------------------------------------------------------------------
+#include "data/CohesiveImpulsesDataHex8.hh"
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveImpulsesHex8 );
+
// Setup testing data.
void
pylith::faults::TestFaultCohesiveImpulsesHex8::setUp(void)
{ // setUp
+ PYLITH_METHOD_BEGIN;
+
TestFaultCohesiveImpulses::setUp();
_data = new CohesiveImpulsesDataHex8;
@@ -96,6 +111,8 @@
_quadrature->refGeometry(&geometry);
_flipFault = true;
+
+ PYLITH_METHOD_END;
} // setUp
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.cc 2013-04-26 00:32:45 UTC (rev 21950)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.cc 2013-04-26 00:53:47 UTC (rev 21951)
@@ -22,6 +22,10 @@
// Constructor
pylith::faults::CohesiveImpulsesData::CohesiveImpulsesData(void) :
meshFilename(0),
+ lengthScale(1.0e+3),
+ pressureScale(2.25e+10),
+ densityScale(1.0),
+ timeScale(2.0),
spaceDim(0),
cellDim(0),
numBasis(0),
@@ -46,6 +50,8 @@
constraintVertices(0),
numConstraintVert(0)
{ // constructor
+ const PylithScalar velScale = lengthScale / timeScale;
+ densityScale = pressureScale / (velScale*velScale);
} // constructor
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.hh 2013-04-26 00:32:45 UTC (rev 21950)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveImpulsesData.hh 2013-04-26 00:53:47 UTC (rev 21951)
@@ -44,6 +44,14 @@
char* meshFilename; ///< Filename for input mesh
+ /// @name Scales information for nondimensionalization.
+ //@{
+ PylithScalar lengthScale; ///< Length scale.
+ PylithScalar pressureScale; ///< Pressure scale.
+ PylithScalar timeScale; ///< Time scale.
+ PylithScalar densityScale; ///< Density scale.
+ //@}
+
/// @name Quadrature information
//@{
int spaceDim; ///< Number of dimensions in vertex coordinates
More information about the CIG-COMMITS
mailing list