[cig-commits] r21964 - in short/3D/PyLith/trunk: libsrc/pylith/faults unittests/libtests/faults
brad at geodynamics.org
brad at geodynamics.org
Tue Apr 30 14:40:31 PDT 2013
Author: brad
Date: 2013-04-30 14:40:31 -0700 (Tue, 30 Apr 2013)
New Revision: 21964
Modified:
short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestSlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestTractPerturbation.cc
Log:
Code cleanup. Refactor creating fault for fault unit tests in TestFaultMesh.
Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveLagrange.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -1601,8 +1601,6 @@
#if 0 // DEBUGGING
area.view("AREA");
- faultSieveMesh->getSendOverlap()->view("Send fault overlap");
- faultSieveMesh->getRecvOverlap()->view("Receive fault overlap");
#endif
PYLITH_METHOD_END;
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2013-04-30 21:40:31 UTC (rev 21964)
@@ -61,6 +61,7 @@
TestTractPerturbation.cc \
TestFaultCohesiveImpulses.cc \
TestFaultCohesiveImpulsesCases.cc \
+ TestFaultMesh.cc \
test_faults.cc
@@ -98,7 +99,8 @@
TestFaultCohesiveDynHex8.hh \
TestTractPerturbation.hh \
TestFaultCohesiveImpulses.hh \
- TestFaultCohesiveImpulsesCases.hh
+ TestFaultCohesiveImpulsesCases.hh \
+ TestFaultMesh.hh
# Source files associated with testing data
testfaults_SOURCES += \
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,6 +22,8 @@
#include "pylith/faults/BruneSlipFn.hh" // USES BruneSlipFn
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
@@ -367,7 +369,7 @@
mesh->coordsys(&cs);
// Create fault mesh
- TestSlipFn::_createFaultMesh(faultMesh, mesh, faultLabel, faultId);
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
@@ -422,7 +424,7 @@
// Create fault mesh
topology::SubMesh faultMesh;
- TestSlipFn::_createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
+ TestFaultMesh::createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestBruneSlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -27,7 +27,7 @@
#if !defined(pylith_faults_testbruneslipfn_hh)
#define pylith_faults_testbruneslipfn_hh
-#include "TestSlipFn.hh" // ISA TestSlipFn
+#include <cppunit/extensions/HelperMacros.h>
#include "pylith/faults/faultsfwd.hh" // USES BruneSlipFn
#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
@@ -44,7 +44,7 @@
} // pylith
/// C++ unit testing for BruneSlipFn
-class pylith::faults::TestBruneSlipFn : public TestSlipFn
+class pylith::faults::TestBruneSlipFn : public CppUnit::TestFixture
{ // class TestBruneSlipFn
// CPPUNIT TEST SUITE /////////////////////////////////////////////////
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,6 +22,8 @@
#include "pylith/faults/ConstRateSlipFn.hh" // USES ConstRateSlipFn
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
@@ -291,7 +293,7 @@
mesh->coordsys(&cs);
// Create fault mesh
- TestSlipFn::_createFaultMesh(faultMesh, mesh, faultLabel, faultId);
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbSlipRate("slip rate");
@@ -340,7 +342,7 @@
// Create fault mesh
topology::SubMesh faultMesh;
- TestSlipFn::_createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
+ TestFaultMesh::createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbSlipRate("slip rate");
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestConstRateSlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -27,7 +27,7 @@
#if !defined(pylith_faults_testconstrateslipfn_hh)
#define pylith_faults_testconstrateslipfn_hh
-#include "TestSlipFn.hh" // ISA TestSlipFn
+#include <cppunit/extensions/HelperMacros.h>
#include "pylith/faults/faultsfwd.hh" // USES ConstRateSlipFn
#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
@@ -44,7 +44,7 @@
} // pylith
/// C++ unit testing for ConstRateSlipFn
-class pylith::faults::TestConstRateSlipFn : public TestSlipFn
+class pylith::faults::TestConstRateSlipFn : public CppUnit::TestFixture
{ // class TestConstRateSlipFn
// CPPUNIT TEST SUITE /////////////////////////////////////////////////
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,6 +22,8 @@
#include "pylith/faults/LiuCosSlipFn.hh" // USES LiuCosSlipFn
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
@@ -360,7 +362,7 @@
mesh->coordsys(&cs);
// Create fault mesh
- TestSlipFn::_createFaultMesh(faultMesh, mesh, faultLabel, faultId);
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
@@ -415,7 +417,7 @@
// Create fault mesh
topology::SubMesh faultMesh;
- TestSlipFn::_createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
+ TestFaultMesh::createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -27,7 +27,7 @@
#if !defined(pylith_faults_testliucosslipfn_hh)
#define pylith_faults_testliucosslipfn_hh
-#include "TestSlipFn.hh" // ISA TestSlipFn
+#include <cppunit/extensions/HelperMacros.h>
#include "pylith/faults/faultsfwd.hh" // USES LiuCosSlipFn
#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
@@ -44,7 +44,7 @@
} // pylith
/// C++ unit testing for LiuCosSlipFn
-class pylith::faults::TestLiuCosSlipFn : public TestSlipFn
+class pylith::faults::TestLiuCosSlipFn : public CppUnit::TestFixture
{ // class TestLiuCosSlipFn
// CPPUNIT TEST SUITE /////////////////////////////////////////////////
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestSlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestSlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestSlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -65,70 +65,3 @@
// End of file
-// -*- 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-2013 University of California, Davis
-//
-// See COPYING for license information.
-//
-// ----------------------------------------------------------------------
-//
-
-/**
- * @file unittests/libtests/faults/TestSlipFn.hh
- *
- * @brief C++ TestBruneSlipFn object
- *
- * C++ unit testing for SlipFn.
- */
-
-#if !defined(pylith_faults_testslipfn_hh)
-#define pylith_faults_testslipfn_hh
-
-#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
-
-#include <cppunit/extensions/HelperMacros.h>
-
-/// Namespace for pylith package
-namespace pylith {
- namespace faults {
- class TestSlipFn;
- } // faults
-} // pylith
-
-/// C++ unit testing for SlipFn
-class pylith::faults::TestSlipFn : public CppUnit::TestFixture
-{ // class TestSlipFn
-
- // PROTECTED METHODS //////////////////////////////////////////////////
-protected :
-
- /** Adjust topology of domain mesh and create fault mesh.
- *
- * @param faultMesh Fault mesh.
- * @param mesh Domain mesh.
- * @param faultLabel Label for fault.
- * @param faultId Material id for fault.
- */
- static
- void
- _createFaultMesh(topology::SubMesh* faultMesh,
- topology::Mesh* mesh,
- const char* faultLabel,
- const int faultId);
-
-}; // class TestSlipFn
-
-#endif // pylith_faults_testslipfn_hh
-
-
-// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,6 +22,8 @@
#include "pylith/faults/StepSlipFn.hh" // USES StepSlipFn
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
@@ -287,7 +289,7 @@
mesh->coordsys(&cs);
// Create fault mesh
- TestSlipFn::_createFaultMesh(faultMesh, mesh, faultLabel, faultId);
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
@@ -336,7 +338,7 @@
// Create fault mesh
topology::SubMesh faultMesh;
- TestSlipFn::_createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
+ TestFaultMesh::createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbFinalSlip("final slip");
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestStepSlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -27,7 +27,7 @@
#if !defined(pylith_faults_teststepslipfn_hh)
#define pylith_faults_teststepslipfn_hh
-#include "TestSlipFn.hh" // ISA TestSlipFn
+#include <cppunit/extensions/HelperMacros.h>
#include "pylith/faults/faultsfwd.hh" // USES StepSlipFn
#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
@@ -44,7 +44,7 @@
} // pylith
/// C++ unit testing for StepSlipFn
-class pylith::faults::TestStepSlipFn : public TestSlipFn
+class pylith::faults::TestStepSlipFn : public CppUnit::TestFixture
{ // class TestStepSlipFn
// CPPUNIT TEST SUITE /////////////////////////////////////////////////
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,6 +22,8 @@
#include "pylith/faults/TimeHistorySlipFn.hh" // USES TimeHistorySlipFn
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
@@ -320,7 +322,7 @@
mesh->coordsys(&cs);
// Create fault mesh
- TestSlipFn::_createFaultMesh(faultMesh, mesh, faultLabel, faultId);
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbAmplitude("slip amplitude");
@@ -373,7 +375,7 @@
// Create fault mesh
topology::SubMesh faultMesh;
- TestSlipFn::_createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
+ TestFaultMesh::createFaultMesh(&faultMesh, &mesh, data.faultLabel, data.faultId);
// Setup databases
spatialdata::spatialdb::SimpleDB dbAmplitude("slip amplitude");
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh 2013-04-30 21:40:31 UTC (rev 21964)
@@ -27,7 +27,7 @@
#if !defined(pylith_faults_testtimehistoryslipfn_hh)
#define pylith_faults_testtimehistoryslipfn_hh
-#include "TestSlipFn.hh" // ISA TestSlipFn
+#include <cppunit/extensions/HelperMacros.h>
#include "pylith/faults/faultsfwd.hh" // USES TimeHistorySlipFn
#include "pylith/topology/topologyfwd.hh" // USES Mesh, SubMesh
@@ -45,7 +45,7 @@
} // pylith
/// C++ unit testing for TimeHistorySlipFn
-class pylith::faults::TestTimeHistorySlipFn : public TestSlipFn
+class pylith::faults::TestTimeHistorySlipFn : public CppUnit::TestFixture
{ // class TestTimeHistorySlipFn
// CPPUNIT TEST SUITE /////////////////////////////////////////////////
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestTractPerturbation.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestTractPerturbation.cc 2013-04-29 14:58:10 UTC (rev 21963)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestTractPerturbation.cc 2013-04-30 21:40:31 UTC (rev 21964)
@@ -22,11 +22,15 @@
#include "pylith/faults/TractPerturbation.hh" // USES TractPerturbation
+#include "TestFaultMesh.hh" // USES createFaultMesh()
+
#include "pylith/faults/CohesiveTopology.hh" // USES CohesiveTopology
#include "pylith/topology/Mesh.hh" // USES Mesh
#include "pylith/topology/SubMesh.hh" // USES SubMesh
#include "pylith/topology/Field.hh" // USES Field
#include "pylith/topology/Fields.hh" // USES Fields
+#include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
#include "pylith/meshio/MeshIOAscii.hh" // USES MeshIOAscii
#include "spatialdata/geocoords/CSCart.hh" // USES CSCart
@@ -38,16 +42,29 @@
CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestTractPerturbation );
// ----------------------------------------------------------------------
-typedef pylith::topology::Mesh::SieveMesh SieveMesh;
-typedef pylith::topology::Mesh::SieveSubMesh SieveSubMesh;
-typedef pylith::topology::Mesh::RealSection RealSection;
+namespace pylith {
+ namespace faults {
+ namespace _TestTractPerturbation {
+ const PylithScalar lengthScale = 1.0e+3;
+ const PylithScalar pressureScale = 2.25e+10;
+ const PylithScalar timeScale = 0.5;
+ const PylithScalar velocityScale = lengthScale / timeScale;
+ const PylithScalar densityScale = pressureScale / (velocityScale*velocityScale);
+ } // namespace _TestTractPerturbation
+ } // faults
+} // pylith
+
// ----------------------------------------------------------------------
// Test constructor.
void
pylith::faults::TestTractPerturbation::testConstructor(void)
{ // testConstructor
+ PYLITH_METHOD_BEGIN;
+
TractPerturbation eqsrc;
+
+ PYLITH_METHOD_END;
} // testConstructor
// ----------------------------------------------------------------------
@@ -55,11 +72,15 @@
void
pylith::faults::TestTractPerturbation::testLabel(void)
{ // testLabel
+ PYLITH_METHOD_BEGIN;
+
const std::string& label = "nucleation";
TractPerturbation tract;
tract.label(label.c_str());
CPPUNIT_ASSERT_EQUAL(label, tract._label);
+
+ PYLITH_METHOD_END;
} // testLabel
// ----------------------------------------------------------------------
@@ -67,6 +88,8 @@
void
pylith::faults::TestTractPerturbation::testHasParameter(void)
{ // testHasParameter
+ PYLITH_METHOD_BEGIN;
+
spatialdata::spatialdb::SimpleDB db;
TractPerturbation tract;
@@ -102,6 +125,8 @@
CPPUNIT_ASSERT_EQUAL(false, tract.hasParameter("traction_change_in_value"));
CPPUNIT_ASSERT_EQUAL(true, tract.hasParameter("traction_rate_start_time"));
CPPUNIT_ASSERT_EQUAL(false, tract.hasParameter("traction_change_start_time"));
+
+ PYLITH_METHOD_END;
} // testHasParameter
// ----------------------------------------------------------------------
@@ -109,12 +134,16 @@
void
pylith::faults::TestTractPerturbation::testInitialize(void)
{ // testInitialize
+ PYLITH_METHOD_BEGIN;
+
topology::Mesh mesh;
topology::SubMesh faultMesh;
TractPerturbation tract;
_initialize(&mesh, &faultMesh, &tract);
// Rely on testTraction() for verification of results.
+
+ PYLITH_METHOD_END;
} // testInitialize
// ----------------------------------------------------------------------
@@ -122,6 +151,8 @@
void
pylith::faults::TestTractPerturbation::testCalculate(void)
{ // testCalculate
+ PYLITH_METHOD_BEGIN;
+
const PylithScalar tractionE[4] = {
-1.0*(-2.0+1.0), -1.0*(1.0-0.5), // initial + change
-1.0*(-2.1), -1.0*(1.1), // initial
@@ -132,46 +163,33 @@
TractPerturbation tract;
_initialize(&mesh, &faultMesh, &tract);
- const PylithScalar t = 2.134;
+ const PylithScalar t = 2.134 / _TestTractPerturbation::timeScale;
tract.calculate(t);
-
- const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
- CPPUNIT_ASSERT(cs);
+ const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();CPPUNIT_ASSERT(cs);
const int spaceDim = cs->spaceDim();
- DM faultDMMesh = faultMesh.dmMesh();
- PetscInt vStart, vEnd;
- PetscErrorCode err;
+ PetscDM faultDMMesh = faultMesh.dmMesh();CPPUNIT_ASSERT(faultDMMesh);
+ topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
- CPPUNIT_ASSERT(faultDMMesh);
- err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
+ CPPUNIT_ASSERT(tract._parameters);
+ topology::VecVisitorMesh valueVisitor(tract._parameters->get("value"));
+ const PetscScalar* valueArray = valueVisitor.localArray();CPPUNIT_ASSERT(valueArray);
- //traction.view("TRACTION"); // DEBUGGING
-
const PylithScalar tolerance = 1.0e-06;
- int iPoint = 0;
+ for(PetscInt v = vStart, iPoint = 0; v < vEnd; ++v, ++iPoint) {
+ const PetscInt voff = valueVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, valueVisitor.sectionDof(v));
- CPPUNIT_ASSERT(tract._parameters);
- PetscSection valueSection = tract._parameters->get("value").petscSection();
- Vec valueVec = tract._parameters->get("value").localVector();
- PetscScalar *valueArray;
- CPPUNIT_ASSERT(valueSection);CPPUNIT_ASSERT(valueVec);
-
- err = VecGetArray(valueVec, &valueArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iPoint) {
- PetscInt vdof, voff;
-
- err = PetscSectionGetDof(valueSection, v, &vdof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(valueSection, v, &voff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(spaceDim, vdof);
-
for(PetscInt d = 0; d < spaceDim; ++d) {
const PylithScalar valueE = tractionE[iPoint*spaceDim+d];
- CPPUNIT_ASSERT_DOUBLES_EQUAL(valueE, valueArray[voff+d], tolerance);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(valueE, valueArray[voff+d]*_TestTractPerturbation::pressureScale, tolerance);
} // for
} // for
- err = VecRestoreArray(valueVec, &valueArray);PYLITH_CHECK_ERROR(err);
+
+ PYLITH_METHOD_END;
} // testCalculate
// ----------------------------------------------------------------------
@@ -179,91 +197,71 @@
void
pylith::faults::TestTractPerturbation::testParameterFields(void)
{ // testParameterFields
+ PYLITH_METHOD_BEGIN;
+
const int spaceDim = 2;
const int fiberDimE = 7;
const PylithScalar parametersE[2*fiberDimE] = {
0.0, 0.0, 2.0, -1.0, -1.0, 0.5, 1.5,
0.0, 0.0, 2.1, -1.1, -0.8, 0.7, 2.5,
};
+ CPPUNIT_ASSERT_EQUAL(fiberDimE, spaceDim+spaceDim+spaceDim+1);
topology::Mesh mesh;
topology::SubMesh faultMesh;
TractPerturbation tract;
_initialize(&mesh, &faultMesh, &tract);
- const topology::Fields<topology::Field<topology::SubMesh> >* parameters = tract.parameterFields();
+ const topology::Fields<topology::Field<topology::SubMesh> >* parameters = tract.parameterFields();CPPUNIT_ASSERT(parameters);
- DM faultDMMesh = faultMesh.dmMesh();
- PetscInt vStart, vEnd;
- PetscErrorCode err;
+ PetscDM faultDMMesh = faultMesh.dmMesh();CPPUNIT_ASSERT(faultDMMesh);
+ topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
- CPPUNIT_ASSERT(faultDMMesh);
- err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
+ topology::VecVisitorMesh valueVisitor(parameters->get("value"));
+ const PetscScalar* valueArray = valueVisitor.localArray();CPPUNIT_ASSERT(valueArray);
- CPPUNIT_ASSERT(tract._parameters);
- PetscSection valueSection = tract._parameters->get("value").petscSection();
- Vec valueVec = tract._parameters->get("value").localVector();
- PetscScalar *valueArray;
- CPPUNIT_ASSERT(valueSection);CPPUNIT_ASSERT(valueVec);
- PetscSection initialSection = tract._parameters->get("initial").petscSection();
- Vec initialVec = tract._parameters->get("initial").localVector();
- PetscScalar *initialArray;
- CPPUNIT_ASSERT(initialSection);CPPUNIT_ASSERT(initialVec);
- PetscSection changeSection = tract._parameters->get("change").petscSection();
- Vec changeVec = tract._parameters->get("change").localVector();
- PetscScalar *changeArray;
- CPPUNIT_ASSERT(changeSection);CPPUNIT_ASSERT(changeVec);
- PetscSection changeTimeSection = tract._parameters->get("change time").petscSection();
- Vec changeTimeVec = tract._parameters->get("change time").localVector();
- PetscScalar *changeTimeArray;
- CPPUNIT_ASSERT(changeTimeSection);CPPUNIT_ASSERT(changeTimeVec);
+ topology::VecVisitorMesh initialVisitor(parameters->get("initial"));
+ const PetscScalar* initialArray = initialVisitor.localArray();CPPUNIT_ASSERT(initialArray);
- const PylithScalar tolerance = 1.0e-06;
- int iPoint = 0;
- err = VecGetArray(valueVec, &valueArray);PYLITH_CHECK_ERROR(err);
- err = VecGetArray(initialVec, &initialArray);PYLITH_CHECK_ERROR(err);
- err = VecGetArray(changeVec, &changeArray);PYLITH_CHECK_ERROR(err);
- err = VecGetArray(changeTimeVec, &changeTimeArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iPoint) {
- PetscInt vdof, voff, e = 0;
+ topology::VecVisitorMesh changeVisitor(parameters->get("change"));
+ const PetscScalar* changeArray = changeVisitor.localArray();CPPUNIT_ASSERT(changeArray);
- err = PetscSectionGetDof(valueSection, v, &vdof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(valueSection, v, &voff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(spaceDim, vdof);
- PetscInt idof, ioff;
+ topology::VecVisitorMesh changeTimeVisitor(parameters->get("change time"));
+ const PetscScalar* changeTimeArray = changeTimeVisitor.localArray();CPPUNIT_ASSERT(changeTimeArray);
- err = PetscSectionGetDof(initialSection, v, &idof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(initialSection, v, &ioff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(spaceDim, idof);
- PetscInt cdof, coff;
- err = PetscSectionGetDof(changeSection, v, &cdof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(changeSection, v, &coff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(spaceDim, cdof);
- PetscInt ctdof, ctoff;
+ const PylithScalar tolerance = 1.0e-06;
+ for(PetscInt v = vStart, iPoint = 0; v < vEnd; ++v, ++iPoint) {
+ PetscInt iE = 0;
- err = PetscSectionGetDof(changeTimeSection, v, &ctdof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(changeTimeSection, v, &ctoff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(1, ctdof);
- CPPUNIT_ASSERT_EQUAL(fiberDimE, vdof+idof+cdof+ctdof);
+ PetscInt off = valueVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, valueVisitor.sectionDof(v));
+ for (int d=0; d < spaceDim; ++d, ++iE) {
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+iE], valueArray[off+d]*_TestTractPerturbation::pressureScale, tolerance);
+ } // for
- for(PetscInt d = 0; d < vdof; ++d, ++e) {
- CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+e], valueArray[voff+d], tolerance);
+ off = initialVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, initialVisitor.sectionDof(v));
+ for (int d=0; d < spaceDim; ++d, ++iE) {
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+iE], initialArray[off+d]*_TestTractPerturbation::pressureScale, tolerance);
} // for
- for(PetscInt d = 0; d < idof; ++d, ++e) {
- CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+e], initialArray[ioff+d], tolerance);
+
+ off = changeVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(spaceDim, changeVisitor.sectionDof(v));
+ for (int d=0; d < spaceDim; ++d, ++iE) {
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+iE], changeArray[off+d]*_TestTractPerturbation::pressureScale, tolerance);
} // for
- for(PetscInt d = 0; d < cdof; ++d, ++e) {
- CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+e], changeArray[coff+d], tolerance);
- } // for
- for(PetscInt d = 0; d < ctdof; ++d, ++e) {
- CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+e], changeTimeArray[ctoff+d], tolerance);
- } // for
+
+ off = changeTimeVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(1, changeTimeVisitor.sectionDof(v));
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(parametersE[iPoint*fiberDimE+iE], changeTimeArray[off]*_TestTractPerturbation::timeScale, tolerance);
+ ++iE;
+
} // for
- err = VecRestoreArray(valueVec, &valueArray);PYLITH_CHECK_ERROR(err);
- err = VecRestoreArray(initialVec, &initialArray);PYLITH_CHECK_ERROR(err);
- err = VecRestoreArray(changeVec, &changeArray);PYLITH_CHECK_ERROR(err);
- err = VecRestoreArray(changeTimeVec, &changeTimeArray);PYLITH_CHECK_ERROR(err);
+
+ PYLITH_METHOD_END;
} // testParameterFields
// ----------------------------------------------------------------------
@@ -271,6 +269,8 @@
void
pylith::faults::TestTractPerturbation::testVertexField(void)
{ // testVertexField
+ PYLITH_METHOD_BEGIN;
+
const int fiberDimE = 1;
const PylithScalar fieldE[2*fiberDimE] = {
1.5,
@@ -284,33 +284,26 @@
_initialize(&mesh, &faultMesh, &tract);
const topology::Field<topology::SubMesh>& field = tract.vertexField(label);
- PetscSection section = field.petscSection();
- Vec vec = field.localVector();
- PetscScalar *array;
- CPPUNIT_ASSERT(section);CPPUNIT_ASSERT(vec);
- DM faultDMMesh = faultMesh.dmMesh();
- PetscInt vStart, vEnd;
- PetscErrorCode err;
+ PetscDM faultDMMesh = faultMesh.dmMesh();CPPUNIT_ASSERT(faultDMMesh);
+ topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
- CPPUNIT_ASSERT(faultDMMesh);
- err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
+ topology::VecVisitorMesh fieldVisitor(field);
+ const PetscScalar* fieldArray = fieldVisitor.localArray();CPPUNIT_ASSERT(fieldArray);
const PylithScalar tolerance = 1.0e-06;
- int iPoint = 0;
- err = VecGetArray(vec, &array);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v, ++iPoint) {
- PetscInt dof, off;
+ for(PetscInt v = vStart, iPoint = 0; v < vEnd; ++v, ++iPoint) {
+ const PetscInt off = fieldVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(fiberDimE, fieldVisitor.sectionDof(v));
- err = PetscSectionGetDof(section, v, &dof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(section, v, &off);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(fiberDimE, dof);
-
- for(PetscInt d = 0; d < dof; ++d) {
- CPPUNIT_ASSERT_DOUBLES_EQUAL(fieldE[iPoint*fiberDimE+d], array[off+d], tolerance);
+ for(PetscInt d = 0; d < fiberDimE; ++d) {
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(fieldE[iPoint*fiberDimE+d], fieldArray[off+d]*_TestTractPerturbation::timeScale, tolerance);
} // for
} // for
- err = VecRestoreArray(vec, &array);PYLITH_CHECK_ERROR(err);
+
+ PYLITH_METHOD_END;
} // testVertexField
// ----------------------------------------------------------------------
@@ -320,6 +313,8 @@
topology::SubMesh* faultMesh,
TractPerturbation* tract)
{ // _initialize
+ PYLITH_METHOD_BEGIN;
+
CPPUNIT_ASSERT(mesh);
CPPUNIT_ASSERT(faultMesh);
CPPUNIT_ASSERT(tract);
@@ -340,45 +335,24 @@
meshIO.interpolate(false);
meshIO.read(mesh);
- // Set up coordinates
+ // Set coordinate system
spatialdata::geocoords::CSCart cs;
cs.setSpaceDim(mesh->dimension());
cs.initialize();
mesh->coordsys(&cs);
const int spaceDim = cs.spaceDim();
- DM dmMesh = mesh->dmMesh(), faultBoundaryDM;
- PetscInt labelSize;
- err = DMPlexGetStratumSize(dmMesh, faultLabel, 1, &labelSize);PYLITH_CHECK_ERROR(err);
+ // Set scales
+ spatialdata::units::Nondimensional normalizer;
+ normalizer.lengthScale(_TestTractPerturbation::lengthScale);
+ normalizer.pressureScale(_TestTractPerturbation::pressureScale);
+ normalizer.densityScale(_TestTractPerturbation::densityScale);
+ normalizer.timeScale(_TestTractPerturbation::timeScale);
+ mesh->nondimensionalize(normalizer);
// Create fault mesh
- PetscInt firstFaultVertex = 0;
- PetscInt firstLagrangeVertex = labelSize;
- PetscInt firstFaultCell = labelSize;
- DMLabel groupField;
- const bool useLagrangeConstraints = true;
+ TestFaultMesh::createFaultMesh(faultMesh, mesh, faultLabel, faultId);
- err = DMPlexGetLabel(dmMesh, faultLabel, &groupField);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT(groupField);
- if (useLagrangeConstraints) {
- firstFaultCell += labelSize;
- } // if
- ALE::Obj<SieveFlexMesh> faultBoundary = 0;
- const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
- CPPUNIT_ASSERT(!sieveMesh.isNull());
- CohesiveTopology::createFault(faultMesh, faultBoundary, faultBoundaryDM,
- *mesh, groupField);
- CohesiveTopology::create(mesh, *faultMesh, faultBoundary, faultBoundaryDM,
- groupField,
- faultId,
- firstFaultVertex, firstLagrangeVertex, firstFaultCell,
- useLagrangeConstraints);
- err = DMDestroy(&faultBoundaryDM);PYLITH_CHECK_ERROR(err);
-
- // Need to copy coordinates from mesh to fault mesh since we are
- // using create() instead of createParallel().
- _setupFaultCoordinates(mesh, faultMesh);
-
// Setup databases
spatialdata::spatialdb::SimpleDB dbInitial("initial traction");
spatialdata::spatialdb::SimpleIOAscii ioInitial;
@@ -394,95 +368,33 @@
topology::Field<topology::SubMesh> faultOrientation(*faultMesh);
faultOrientation.newSection(topology::FieldBase::VERTICES_FIELD, spaceDim*spaceDim);
faultOrientation.allocate();
- PetscSection orientationSection = faultOrientation.petscSection();
- Vec orientationVec = faultOrientation.localVector();
- PetscScalar *orientationArray;
- PetscInt vStart, vEnd;
- err = DMPlexGetDepthStratum(faultMesh->dmMesh(), 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT(orientationSection);CPPUNIT_ASSERT(orientationVec);
- err = VecGetArray(orientationVec, &orientationArray);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v) {
- PetscInt odof, ooff;
- err = PetscSectionGetDof(orientationSection, v, &odof);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(orientationSection, v, &ooff);PYLITH_CHECK_ERROR(err);
- CPPUNIT_ASSERT_EQUAL(spaceDim*spaceDim, odof);
- for(PetscInt d = 0; d < odof; ++d) {
- orientationArray[ooff+d] = orientationVertex[d];
+ PetscDM faultDMMesh = faultMesh->dmMesh();CPPUNIT_ASSERT(faultDMMesh);
+ topology::Stratum verticesStratum(faultDMMesh, topology::Stratum::DEPTH, 0);
+ const PetscInt vStart = verticesStratum.begin();
+ const PetscInt vEnd = verticesStratum.end();
+
+ topology::VecVisitorMesh orientationVisitor(faultOrientation);
+ PetscScalar* orientationArray = orientationVisitor.localArray();CPPUNIT_ASSERT(orientationArray);
+
+ const PetscInt orientationSize = spaceDim*spaceDim;
+ for(PetscInt v = vStart; v < vEnd; ++v) {
+ const PetscInt off = orientationVisitor.sectionOffset(v);
+ CPPUNIT_ASSERT_EQUAL(orientationSize, orientationVisitor.sectionDof(v));
+
+ for(PetscInt d = 0; d < orientationSize; ++d) {
+ orientationArray[off+d] = orientationVertex[d];
}
} // for
- err = VecRestoreArray(orientationVec, &orientationArray);PYLITH_CHECK_ERROR(err);
- spatialdata::units::Nondimensional normalizer;
-
// setup TractPerturbation
tract->dbInitial(&dbInitial);
tract->dbChange(&dbChange);
tract->initialize(*faultMesh, faultOrientation, normalizer);
+
+ PYLITH_METHOD_END;
} // _initialize
-// ----------------------------------------------------------------------
-// Setup fault coordinates
-void
-pylith::faults::TestTractPerturbation::_setupFaultCoordinates(topology::Mesh *mesh, topology::SubMesh *faultMesh)
-{ // _setupFaultCoordinates
- const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh->sieveMesh();
- if (!faultSieveMesh.isNull()) {
- const ALE::Obj<RealSection>& oldCoordSection = mesh->sieveMesh()->getRealSection("coordinates");
- faultSieveMesh->setRealSection("coordinates", oldCoordSection);
- }
- DM dmMesh = mesh->dmMesh();
- DM faultDMMesh = faultMesh->dmMesh();
- const PetscInt spaceDim = mesh->dimension();
- IS subpointIS;
- const PetscInt *points;
- PetscSection coordSection, fcoordSection;
- PetscInt vStart, vEnd, ffStart, ffEnd;
- PetscErrorCode err;
-
- CPPUNIT_ASSERT(dmMesh);
- CPPUNIT_ASSERT(faultDMMesh);
- err = DMPlexGetDepthStratum(faultDMMesh, 0, &vStart, &vEnd);PYLITH_CHECK_ERROR(err);
- err = DMPlexGetHeightStratum(faultDMMesh, 1, &ffStart, &ffEnd);PYLITH_CHECK_ERROR(err);
- err = DMPlexCreateSubpointIS(faultDMMesh, &subpointIS);PYLITH_CHECK_ERROR(err);
- err = DMPlexGetCoordinateSection(dmMesh, &coordSection);PYLITH_CHECK_ERROR(err);
- err = DMPlexGetCoordinateSection(faultDMMesh, &fcoordSection);PYLITH_CHECK_ERROR(err);
- err = PetscSectionSetChart(fcoordSection, vStart, vEnd);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v) {
- err = PetscSectionSetDof(fcoordSection, v, spaceDim);PYLITH_CHECK_ERROR(err);
- }
- err = PetscSectionSetUp(fcoordSection);PYLITH_CHECK_ERROR(err);
- Vec coordVec, fcoordVec;
- PetscScalar *coords, *fcoords;
- PetscInt coordSize;
-
- err = PetscSectionGetStorageSize(fcoordSection, &coordSize);PYLITH_CHECK_ERROR(err);
- err = DMGetCoordinatesLocal(dmMesh, &coordVec);PYLITH_CHECK_ERROR(err);
- err = VecCreate(mesh->comm(), &fcoordVec);PYLITH_CHECK_ERROR(err);
- err = VecSetSizes(fcoordVec, coordSize, PETSC_DETERMINE);PYLITH_CHECK_ERROR(err);
- err = VecSetFromOptions(fcoordVec);PYLITH_CHECK_ERROR(err);
- err = ISGetIndices(subpointIS, &points);PYLITH_CHECK_ERROR(err);
- err = VecGetArray(coordVec, &coords);PYLITH_CHECK_ERROR(err);
- err = VecGetArray(fcoordVec, &fcoords);PYLITH_CHECK_ERROR(err);
- for(PetscInt v = vStart; v < vEnd; ++v) {
- PetscInt off, foff;
-
- // Notice that subpointMap[] does not account for cohesive cells
- err = PetscSectionGetOffset(coordSection, points[v]+(ffEnd-ffStart), &off);PYLITH_CHECK_ERROR(err);
- err = PetscSectionGetOffset(fcoordSection, v, &foff);PYLITH_CHECK_ERROR(err);
- for(PetscInt d = 0; d < spaceDim; ++d) {
- fcoords[foff+d] = coords[off+d];
- }
- }
- err = ISRestoreIndices(subpointIS, &points);PYLITH_CHECK_ERROR(err);
- err = ISDestroy(&subpointIS);PYLITH_CHECK_ERROR(err);
- err = VecRestoreArray(coordVec, &coords);PYLITH_CHECK_ERROR(err);
- err = VecRestoreArray(fcoordVec, &fcoords);PYLITH_CHECK_ERROR(err);
- err = DMSetCoordinatesLocal(faultDMMesh, fcoordVec);PYLITH_CHECK_ERROR(err);
- err = VecDestroy(&fcoordVec);PYLITH_CHECK_ERROR(err);
-} // _setupFaultCoordinates
-
-
// End of file
More information about the CIG-COMMITS
mailing list