[cig-commits] r7280 - in short/3D/PyLith/trunk: . libsrc/faults
modulesrc/faults pylith/faults unittests/libtests/faults
unittests/libtests/faults/data unittests/pytests/faults
brad at geodynamics.org
brad at geodynamics.org
Sun Jun 17 17:28:01 PDT 2007
Author: brad
Date: 2007-06-17 17:28:00 -0700 (Sun, 17 Jun 2007)
New Revision: 7280
Added:
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh
short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4f.mesh
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/libsrc/faults/Fault.hh
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.hh
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh
short/3D/PyLith/trunk/modulesrc/faults/faults.pyxe.src
short/3D/PyLith/trunk/pylith/faults/Fault.py
short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh
short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am
short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
Log:
Added user influenced picking of fault normal direction (allows user to insure that sense of slip with be left-lateral, reverse, and fault-opening). Added corresponding unit test (tet4f).
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/TODO 2007-06-18 00:28:00 UTC (rev 7280)
@@ -20,13 +20,13 @@
MAIN PRIORITIES (Brad)
======================================================================
-add preferred normal direction for fault normal (to increase changes
-we get the orientation that we want in 3-D cases).
+add ability to have comments in meshio and spatial data files (if easy
+to do, would use '#' as delimiter).
1. Additional unit tests
- Unit tests with multiple cohesive cells.
- hex8
+ FaultCohesiveKin
+ multiple cohesive cells for hex8 mesh
normal okay with rollover of fault dip?
Modified: short/3D/PyLith/trunk/libsrc/faults/Fault.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/Fault.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/libsrc/faults/Fault.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -93,12 +93,16 @@
* @param cs Coordinate system for mesh
* @param upDir Direction perpendicular to along-strike direction that is
* not collinear with fault normal (usually "up" direction but could
- * be up-dip direction).
+ * be up-dip direction; only applies to fault surfaces in a 3-D domain).
+ * @param normalDir General preferred direction for fault normal
+ * (used to pick which of two possible normal directions for
+ * interface; only applies to fault surfaces in a 3-D domain).
*/
virtual
void initialize(const ALE::Obj<ALE::Mesh>& mesh,
const spatialdata::geocoords::CoordSys* cs,
- const double_array& upDir) = 0;
+ const double_array& upDir,
+ const double_array& normalDir) = 0;
// PROTECTED METHODS //////////////////////////////////////////////////
protected :
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -39,7 +39,8 @@
void
pylith::faults::FaultCohesiveDyn::initialize(const ALE::Obj<ALE::Mesh>& mesh,
const spatialdata::geocoords::CoordSys* cs,
- const double_array& upDir)
+ const double_array& upDir,
+ const double_array& normalDir)
{ // initialize
throw std::logic_error("FaultCohesiveDyn::initialize() not implemented.");
} // initialize
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -58,11 +58,15 @@
* @param cs Coordinate system for mesh
* @param upDir Direction perpendicular to along-strike direction that is
* not collinear with fault normal (usually "up" direction but could
- * be up-dip direction).
+ * be up-dip direction; only applies to fault surfaces in a 3-D domain).
+ * @param normalDir General preferred direction for fault normal
+ * (used to pick which of two possible normal directions for
+ * interface; only applies to fault surfaces in a 3-D domain).
*/
void initialize(const ALE::Obj<ALE::Mesh>& mesh,
const spatialdata::geocoords::CoordSys* cs,
- const double_array& upDir);
+ const double_array& upDir,
+ const double_array& normalDir);
/** Integrate contribution of cohesive cells to residual term.
*
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -58,7 +58,8 @@
void
pylith::faults::FaultCohesiveKin::initialize(const ALE::Obj<ALE::Mesh>& mesh,
const spatialdata::geocoords::CoordSys* cs,
- const double_array& upDir)
+ const double_array& upDir,
+ const double_array& normalDir)
{ // initialize
assert(0 != _quadrature);
assert(0 != _eqsrc);
@@ -66,6 +67,9 @@
if (3 != upDir.size())
throw std::runtime_error("Up direction for fault orientation must be "
"a vector with 3 components.");
+ if (3 != normalDir.size())
+ throw std::runtime_error("Normal direction for fault orientation must be "
+ "a vector with 3 components.");
/* First find vertices associated with Lagrange multiplier
* constraints in cohesive cells and compute the orientation of the
@@ -114,12 +118,12 @@
const int orientationSize = spaceDim*spaceDim;
_orientation = new real_section_type(mesh->comm(), mesh->debug());
assert(!_orientation.isNull());
- const std::set<Mesh::point_type>::const_iterator vertCohesiveBegin =
+ const std::set<Mesh::point_type>::const_iterator vertConstraintBegin =
_constraintVert.begin();
- const std::set<Mesh::point_type>::const_iterator vertCohesiveEnd =
+ const std::set<Mesh::point_type>::const_iterator vertConstraintEnd =
_constraintVert.end();
- for (std::set<Mesh::point_type>::const_iterator v_iter=vertCohesiveBegin;
- v_iter != vertCohesiveEnd;
+ for (std::set<Mesh::point_type>::const_iterator v_iter=vertConstraintBegin;
+ v_iter != vertConstraintEnd;
++v_iter)
_orientation->setFiberDimension(*v_iter, orientationSize);
mesh->allocate(_orientation);
@@ -204,8 +208,8 @@
// Loop over vertices, make orientation information unit magnitude
double_array vertexDir(orientationSize);
- for (std::set<Mesh::point_type>::const_iterator v_iter=vertCohesiveBegin;
- v_iter != vertCohesiveEnd;
+ for (std::set<Mesh::point_type>::const_iterator v_iter=vertConstraintBegin;
+ v_iter != vertConstraintEnd;
++v_iter) {
const real_section_type::value_type* vertexOrient =
_orientation->restrictPoint(*v_iter);
@@ -225,6 +229,44 @@
_orientation->updatePoint(*v_iter, &vertexDir[0]);
} // for
+ if (2 == cohesiveDim) {
+ // Check orientation of first vertex, if dot product of fault
+ // normal with preferred normal is negative, flip all along-strike
+ // and fault-normal directions (keep up-dip direction the same).
+ // If the user gives the correct normal direction, we should end
+ // up with left-lateral-slip, reverse-slip, and fault-opening for
+ // positive slip values.
+
+ const real_section_type::value_type* vertexOrient =
+ _orientation->restrictPoint(*vertConstraintBegin);
+ assert(9 == _orientation->getFiberDimension(*vertConstraintBegin));
+ double_array vertNormalDir(&vertexOrient[6], 3);
+ const double dot =
+ normalDir[0]*vertNormalDir[0] +
+ normalDir[1]*vertNormalDir[1] +
+ normalDir[2]*vertNormalDir[2];
+ if (dot < 0.0)
+ for (std::set<Mesh::point_type>::const_iterator v_iter=vertConstraintBegin;
+ v_iter != vertConstraintEnd;
+ ++v_iter) {
+ const real_section_type::value_type* vertexOrient =
+ _orientation->restrictPoint(*v_iter);
+ assert(9 == _orientation->getFiberDimension(*v_iter));
+ // Flip along-strike direction
+ for (int iDim=0; iDim < 3; ++iDim)
+ vertexDir[iDim] = -vertexOrient[iDim];
+ // Keep up-dip direction
+ for (int iDim=3; iDim < 6; ++iDim)
+ vertexDir[iDim] = vertexOrient[iDim];
+ // Flip normal direction
+ for (int iDim=6; iDim < 9; ++iDim)
+ vertexDir[iDim] = -vertexOrient[iDim];
+
+ // Update direction
+ _orientation->updatePoint(*v_iter, &vertexDir[0]);
+ } // for
+ } // if
+
_eqsrc->initialize(mesh, *_faultMesh, _constraintVert, cs);
// Establish pairing between constraint vertices and first cell they
@@ -232,14 +274,14 @@
const int noCell = -1;
_constraintCell = new int_section_type(mesh->comm(), mesh->debug());
assert(!_constraintCell.isNull());
- for (std::set<Mesh::point_type>::const_iterator v_iter=vertCohesiveBegin;
- v_iter != vertCohesiveEnd;
+ for (std::set<Mesh::point_type>::const_iterator v_iter=vertConstraintBegin;
+ v_iter != vertConstraintEnd;
++v_iter)
_constraintCell->setFiberDimension(*v_iter, 1);
mesh->allocate(_constraintCell);
// Set values to noCell
- for (std::set<Mesh::point_type>::const_iterator v_iter=vertCohesiveBegin;
- v_iter != vertCohesiveEnd;
+ for (std::set<Mesh::point_type>::const_iterator v_iter=vertConstraintBegin;
+ v_iter != vertConstraintEnd;
++v_iter)
_constraintCell->updatePoint(*v_iter, &noCell);
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -72,11 +72,15 @@
* @param cs Coordinate system for mesh
* @param upDir Direction perpendicular to along-strike direction that is
* not collinear with fault normal (usually "up" direction but could
- * be up-dip direction).
+ * be up-dip direction; only applies to fault surfaces in a 3-D domain).
+ * @param normalDir General preferred direction for fault normal
+ * (used to pick which of two possible normal directions for
+ * interface; only applies to fault surfaces in a 3-D domain).
*/
void initialize(const ALE::Obj<ALE::Mesh>& mesh,
const spatialdata::geocoords::CoordSys* cs,
- const double_array& upDir);
+ const double_array& upDir,
+ const double_array& normalDir);
/** Integrate contributions to residual term (r) for operator.
*
Modified: short/3D/PyLith/trunk/modulesrc/faults/faults.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/faults/faults.pyxe.src 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/modulesrc/faults/faults.pyxe.src 2007-06-18 00:28:00 UTC (rev 7280)
@@ -119,12 +119,12 @@
return
- def initialize(self, mesh, cs, upDir):
+ def initialize(self, mesh, cs, upDir, normalDir):
"""
Initialize fault.
"""
# create shim for method 'initialize'
- #embed{ void Fault_initialize(void* objVptr, void* meshVptr, void* csVptr, double* upDirPtr)
+ #embed{ void Fault_initialize(void* objVptr, void* meshVptr, void* csVptr, double* upDirPtr, double* normalDirPtr)
try {
assert(0 != objVptr);
assert(0 != meshVptr);
@@ -136,7 +136,11 @@
upDir[0] = upDirPtr[0];
upDir[1] = upDirPtr[1];
upDir[2] = upDirPtr[2];
- ((pylith::faults::Fault*) objVptr)->initialize(*mesh, cs, upDir);
+ pylith::double_array normalDir(3);
+ normalDir[0] = normalDirPtr[0];
+ normalDir[1] = normalDirPtr[1];
+ normalDir[2] = normalDirPtr[2];
+ ((pylith::faults::Fault*) objVptr)->initialize(*mesh, cs, upDir, normalDir);
} catch (const std::exception& err) {
PyErr_SetString(PyExc_RuntimeError,
const_cast<char*>(err.what()));
@@ -160,12 +164,19 @@
if 3 != len(upDir):
raise TypeError, \
"Argument must be a 3 vector (list)."
+ if 3 != len(normalDir):
+ raise TypeError, \
+ "Argument must be a 3 vector (list)."
cdef double upDirCpp[3]
upDirCpp[0] = upDir[0]
upDirCpp[1] = upDir[1]
upDirCpp[2] = upDir[2]
+ cdef double normalDirCpp[3]
+ normalDirCpp[0] = normalDir[0]
+ normalDirCpp[1] = normalDir[1]
+ normalDirCpp[2] = normalDir[2]
Fault_initialize(self.thisptr, ptrFromHandle(mesh), ptrFromHandle(cs),
- upDirCpp)
+ upDirCpp, normalDirCpp)
return
Modified: short/3D/PyLith/trunk/pylith/faults/Fault.py
===================================================================
--- short/3D/PyLith/trunk/pylith/faults/Fault.py 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/pylith/faults/Fault.py 2007-06-18 00:28:00 UTC (rev 7280)
@@ -22,12 +22,12 @@
from pyre.components.Component import Component
-# Validator for up-direction
-def validateUpDir(value):
+# Validator for direction
+def validateDir(value):
"""
- Validate up-direction.
+ Validate direction.
"""
- msg = "Up-direction must be a 3 component vector (list)."
+ msg = "Direction must be a 3 component vector (list)."
if not isinstance(value, list):
raise ValueError(msg)
if 3 != len(value):
@@ -64,7 +64,11 @@
## @li \b id Fault identifier
## @li \b name Name of fault
## @li \b up_dir Up-dip or up direction
- ## (perpendicular to along-strike and not collinear with fault normal)
+ ## (perpendicular to along-strike and not collinear with fault normal;
+ ## only applies to fault surfaces in a 3-D domain).
+ ## @li \b normal_dir General preferred direction for fault normal
+ ## (used to pick which of two possible normal directions for
+ ## interface; only applies to fault surfaces in a 3-D domain).
##
## \b Facilities
## @li \b quadrature Quadrature object for numerical integration
@@ -79,11 +83,18 @@
label.meta['tip'] = "Name of material."
upDir = pyre.inventory.list("up_dir", default=[0, 0, 1],
- validator=validateUpDir)
+ validator=validateDir)
upDir.meta['tip'] = "Up-dip or up direction " \
"(perpendicular to along-strike and not collinear " \
- "with fault normal)."
+ "with fault normal; only applies to fault surface " \
+ "in a 3-D domain)."
+ normalDir = pyre.inventory.list("normal_dir", default=[1, 0, 0],
+ validator=validateDir)
+ normalDir.meta['tip'] = "General preferred direction for fault normal " \
+ "(used to pick which of two possible normal directions for " \
+ "interface; only applies to fault surfaces in a 3-D domain)."
+
from pylith.feassemble.quadrature.Quadrature import Quadrature
quadrature = pyre.inventory.facility("quadrature", factory=Quadrature)
quadrature.meta['tip'] = "Quadrature object for numerical integration."
@@ -131,7 +142,7 @@
self.cppHandle.label = self.label
self.cppHandle.quadrature = self.quadrature.cppHandle
self.cppHandle.initialize(mesh.cppHandle, mesh.coordsys.cppHandle,
- self.upDir)
+ self.upDir, self.normalDir)
return
@@ -145,6 +156,7 @@
self.id = self.inventory.id
self.label = self.inventory.label
self.upDir = self.inventory.upDir
+ self.normalDir = self.inventory.normalDir
self.quadrature = self.inventory.quadrature
return
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2007-06-18 00:28:00 UTC (rev 7280)
@@ -33,6 +33,7 @@
TestFaultCohesiveKinQuad4e.cc \
TestFaultCohesiveKinTet4.cc \
TestFaultCohesiveKinTet4e.cc \
+ TestFaultCohesiveKinTet4f.cc \
TestFaultCohesiveKinHex8.cc \
test_faults.cc
@@ -49,6 +50,7 @@
TestFaultCohesiveKinQuad4e.hh \
TestFaultCohesiveKinTet4.hh \
TestFaultCohesiveKinTet4e.hh \
+ TestFaultCohesiveKinTet4f.hh \
TestFaultCohesiveKinHex8.hh
# Source files associated with testing data
@@ -71,6 +73,7 @@
data/CohesiveDataTet4b.cc \
data/CohesiveDataTet4c.cc \
data/CohesiveDataTet4d.cc \
+ data/CohesiveDataTet4f.cc \
data/CohesiveDataTet4Lagrange.cc \
data/CohesiveDataHex8.cc \
data/CohesiveDataHex8b.cc \
@@ -87,6 +90,7 @@
data/CohesiveKinDataQuad4e.cc \
data/CohesiveKinDataTet4.cc \
data/CohesiveKinDataTet4e.cc \
+ data/CohesiveKinDataTet4f.cc \
data/CohesiveKinDataHex8.cc
noinst_HEADERS += \
@@ -108,6 +112,7 @@
data/CohesiveDataTet4b.hh \
data/CohesiveDataTet4c.hh \
data/CohesiveDataTet4d.hh \
+ data/CohesiveDataTet4f.hh \
data/CohesiveDataTet4Lagrange.hh \
data/CohesiveDataHex8.hh \
data/CohesiveDataHex8b.hh \
@@ -124,6 +129,7 @@
data/CohesiveKinDataQuad4e.hh \
data/CohesiveKinDataTet4.hh \
data/CohesiveKinDataTet4e.hh \
+ data/CohesiveKinDataTet4f.hh \
data/CohesiveKinDataHex8.hh
AM_CPPFLAGS = $(PETSC_SIEVE_FLAGS) $(PETSC_INCLUDE)
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -36,6 +36,7 @@
#include "data/CohesiveDataTet4b.hh" // USES CohesiveDataTet4b
#include "data/CohesiveDataTet4c.hh" // USES CohesiveDataTet4c
#include "data/CohesiveDataTet4d.hh" // USES CohesiveDataTet4d
+#include "data/CohesiveDataTet4f.hh" // USES CohesiveDataTet4f
#include "data/CohesiveDataHex8.hh" // USES CohesiveDataHex8
#include "data/CohesiveDataHex8b.hh" // USES CohesiveDataHex8b
#include "data/CohesiveDataHex8c.hh" // USES CohesiveDataHex8c
@@ -173,7 +174,7 @@
} // testAdjustTopologyTet4b
// ----------------------------------------------------------------------
-// Test adjustTopology() with 3-D tetrahedral element (face b).
+// Test adjustTopology() with 3-D tetrahedral element (face c).
void
pylith::faults::TestFaultCohesive::testAdjustTopologyTet4c(void)
{ // testAdjustTopologyTet4c
@@ -183,7 +184,7 @@
} // testAdjustTopologyTet4c
// ----------------------------------------------------------------------
-// Test adjustTopology() with 3-D tetrahedral element (face b).
+// Test adjustTopology() with 3-D tetrahedral element (face d).
void
pylith::faults::TestFaultCohesive::testAdjustTopologyTet4d(void)
{ // testAdjustTopologyTet4d
@@ -193,6 +194,16 @@
} // testAdjustTopologyTet4d
// ----------------------------------------------------------------------
+// Test adjustTopology() with 3-D tetrahedral element (reverse cell order).
+void
+pylith::faults::TestFaultCohesive::testAdjustTopologyTet4f(void)
+{ // testAdjustTopologyTet4f
+ CohesiveDataTet4f data;
+ FaultCohesiveDyn fault;
+ _testAdjustTopology(&fault, data);
+} // testAdjustTopologyTet4f
+
+// ----------------------------------------------------------------------
// Test adjustTopology() with 3-D hexahedral element.
void
pylith::faults::TestFaultCohesive::testAdjustTopologyHex8(void)
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesive.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -55,6 +55,7 @@
CPPUNIT_TEST( testAdjustTopologyTet4b );
CPPUNIT_TEST( testAdjustTopologyTet4c );
CPPUNIT_TEST( testAdjustTopologyTet4d );
+ CPPUNIT_TEST( testAdjustTopologyTet4f );
CPPUNIT_TEST( testAdjustTopologyHex8 );
CPPUNIT_TEST( testAdjustTopologyHex8b );
CPPUNIT_TEST( testAdjustTopologyHex8c );
@@ -119,6 +120,9 @@
/// Test adjustTopology() with 3-D tetrahedral element (face d).
void testAdjustTopologyTet4d(void);
+ /// Test adjustTopology() with 3-D tetrahedral element (reverse cell order).
+ void testAdjustTopologyTet4f(void);
+
/// Test adjustTopology() with 3-D hexahedral element.
void testAdjustTopologyHex8(void);
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKin.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -363,7 +363,10 @@
const double upDirVals[] = { 0.0, 0.0, 1.0 };
double_array upDir(upDirVals, 3);
- fault->initialize(*mesh, &cs, upDir);
+ const double normalDirVals[] = { 1.0, 0.0, 0.0 };
+ double_array normalDir(normalDirVals, 3);
+
+ fault->initialize(*mesh, &cs, upDir, normalDir);
} catch (const ALE::Exception& err) {
throw std::runtime_error(err.msg());
} // catch
Added: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,39 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+#include <portinfo>
+
+#include "TestFaultCohesiveKinTet4f.hh" // Implementation of class methods
+
+#include "data/CohesiveKinDataTet4f.hh" // USES CohesiveKinDataTet4f
+
+#include "pylith/feassemble/Quadrature2Din3D.hh" // USES Quadrature2Din3D
+#include "pylith/feassemble/GeometryTri3D.hh" // USES GeometryTri3D
+
+// ----------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION( pylith::faults::TestFaultCohesiveKinTet4f );
+
+// ----------------------------------------------------------------------
+// Setup testing data.
+void
+pylith::faults::TestFaultCohesiveKinTet4f::setUp(void)
+{ // setUp
+ TestFaultCohesiveKin::setUp();
+ _data = new CohesiveKinDataTet4f();
+ _quadrature = new feassemble::Quadrature2Din3D();
+ CPPUNIT_ASSERT(0 != _quadrature);
+ feassemble::GeometryTri3D geometry;
+ _quadrature->refGeometry(&geometry);
+} // setUp
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveKinTet4f.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+//
+// ----------------------------------------------------------------------
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ----------------------------------------------------------------------
+//
+
+/**
+ * @file unittests/libtests/faults/TestFaultCohesiveKinTet4f.hh
+ *
+ * @brief C++ TestFaultCohesiveKinTet4f object.
+ *
+ * C++ unit testing for FaultCohesiveKin for mesh with 3-D tetrahedral cells.
+ */
+
+#if !defined(pylith_faults_testfaultcohesivekintet4f_hh)
+#define pylith_faults_testfaultcohesivekintet4f_hh
+
+#include "TestFaultCohesiveKin.hh" // ISA TestFaultCohesiveKin
+
+/// Namespace for pylith package
+namespace pylith {
+ namespace faults {
+ class TestFaultCohesiveKinTet4f;
+ } // bc
+} // pylith
+
+/// C++ unit testing for FaultCohesiveKin for mesh with 3-D tetrahedral cells.
+class pylith::faults::TestFaultCohesiveKinTet4f : public TestFaultCohesiveKin
+{ // class TestFaultCohesiveKinTet4f
+
+ // CPPUNIT TEST SUITE /////////////////////////////////////////////////
+ CPPUNIT_TEST_SUITE( TestFaultCohesiveKinTet4f );
+
+ CPPUNIT_TEST( testInitialize );
+ CPPUNIT_TEST( testIntegrateResidual );
+ CPPUNIT_TEST( testIntegrateJacobian );
+
+ CPPUNIT_TEST_SUITE_END();
+
+ // PUBLIC METHODS /////////////////////////////////////////////////////
+public :
+
+ /// Setup testing data.
+ void setUp(void);
+
+}; // class TestFaultCohesiveKinTet4f
+
+#endif // pylith_faults_testfaultcohesivetet4f_hh
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-1, vertices are 2-6.
+ *
+ * 2 3,4,5 6
+ *
+ * ^^^^^ Face in x-y plane
+ *
+ * After adding cohesive elements
+ *
+ * Cells are 0-1,10, vertices are 2-9.
+ *
+ * 2 7,8,9 3,4,5 6
+ *
+ * ^^^^^^^^^^^^ Cohesive element in x-y plane.
+ */
+
+#include "CohesiveDataTet4f.hh"
+
+const int pylith::faults::CohesiveDataTet4f::_numVertices = 8;
+
+const int pylith::faults::CohesiveDataTet4f::_spaceDim = 3;
+
+const int pylith::faults::CohesiveDataTet4f::_numCells = 3;
+
+const int pylith::faults::CohesiveDataTet4f::_cellDim = 3;
+
+const double pylith::faults::CohesiveDataTet4f::_vertices[] = {
+ -1.0, 0.0, 0.0,
+ 0.0, -1.0, 0.0,
+ 0.0, 0.0, 1.0,
+ 0.0, 1.0, 0.0,
+ 1.0, 0.0, 0.0,
+ 0.0, -1.0, 0.0,
+ 0.0, 0.0, 1.0,
+ 0.0, 1.0, 0.0
+};
+
+const int pylith::faults::CohesiveDataTet4f::_numCorners[] = {
+ 4,
+ 4,
+ 6
+};
+
+const int pylith::faults::CohesiveDataTet4f::_cells[] = {
+ 3, 5, 4, 6,
+ 7, 8, 9, 2,
+ 3, 4, 5, 7, 8, 9
+};
+
+const int pylith::faults::CohesiveDataTet4f::_materialIds[] = {
+ 0, 0,
+ 1
+};
+
+const int pylith::faults::CohesiveDataTet4f::_numGroups = 2;
+
+const int pylith::faults::CohesiveDataTet4f::_groupSizes[] =
+ { 6, 5 };
+
+const int pylith::faults::CohesiveDataTet4f::_groups[] = {
+ 3, 4, 5, 7, 8, 9,
+ 2, 4, 5, 8, 9
+};
+
+const char* pylith::faults::CohesiveDataTet4f::_groupNames[] = {
+ "fault", "output"
+};
+
+const char* pylith::faults::CohesiveDataTet4f::_groupTypes[] = {
+ "vertex", "vertex"
+};
+
+const char* pylith::faults::CohesiveDataTet4f::_filename = "data/tet4f.mesh";
+
+pylith::faults::CohesiveDataTet4f::CohesiveDataTet4f(void)
+{ // constructor
+ numVertices = _numVertices;
+ spaceDim = _spaceDim;
+ numCells = _numCells;
+ cellDim = _cellDim;
+ vertices = const_cast<double*>(_vertices);
+ numCorners = const_cast<int*>(_numCorners);
+ cells = const_cast<int*>(_cells);
+ materialIds = const_cast<int*>(_materialIds);
+ groups = const_cast<int*>(_groups);
+ groupSizes = const_cast<int*>(_groupSizes);
+ groupNames = const_cast<char**>(_groupNames);
+ groupTypes = const_cast<char**>(_groupTypes);
+ numGroups = _numGroups;
+ filename = const_cast<char*>(_filename);
+} // constructor
+
+pylith::faults::CohesiveDataTet4f::~CohesiveDataTet4f(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDataTet4f.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivedatatet4f_hh)
+#define pylith_faults_cohesivedatatet4f_hh
+
+#include "CohesiveData.hh"
+
+namespace pylith {
+ namespace faults {
+ class CohesiveDataTet4f;
+ } // pylith
+} // faults
+
+class pylith::faults::CohesiveDataTet4f : public CohesiveData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ CohesiveDataTet4f(void);
+
+ /// Destructor
+ ~CohesiveDataTet4f(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const int _numVertices; ///< Number of vertices
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _numCells; ///< Number of cells
+ static const int _cellDim; ///< Number of dimensions associated with cell
+
+ static const double _vertices[]; ///< Pointer to coordinates of vertices
+ static const int _numCorners[]; ///< Number of vertices in cell
+ static const int _cells[]; ///< Pointer to indices of vertices in cells
+ static const int _materialIds[]; ///< Pointer to cell material identifiers
+
+ static const int _groups[]; ///< Groups of points
+ static const int _groupSizes[]; ///< Sizes of groups
+ static const char* _groupNames[]; ///< Array of group names
+ static const char* _groupTypes[]; ///< Array of group types
+ static const int _numGroups; ///< Number of groups
+
+ static const char* _filename; ///< Filename of input mesh
+};
+
+#endif // pylith_faults_cohesivedatatet4f_hh
+
+// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -12,124 +12,117 @@
/* Original mesh
*
- * Cells are 0-3, vertices are 4-8.
+ * Cells are 0-1, vertices are 2-6.
*
- * 4 5,6,7 8
+ * 2 3,4,5 6
*
* ^^^^^ Face in x-y plane
*
* After adding cohesive elements
*
- * Cells are 0-3,18,19, vertices are 4-17.
+ * Cells are 0-1,10, vertices are 2-9.
*
- * 4 5,6,7 10,12,14 8
- * 11,13,15
+ * 2 3,4,5 7,9,11 6
+ * 8,10,12
* ^^^^^^^^^^^^ Cohesive element in x-y plane.
*/
-#include "CohesiveKinDataTet4e.hh"
+#include "CohesiveKinDataTet4.hh"
-const char* pylith::faults::CohesiveKinDataTet4e::_meshFilename =
- "data/tet4e.mesh";
+const char* pylith::faults::CohesiveKinDataTet4::_meshFilename =
+ "data/tet4.mesh";
-const int pylith::faults::CohesiveKinDataTet4e::_spaceDim = 3;
+const int pylith::faults::CohesiveKinDataTet4::_spaceDim = 3;
-const int pylith::faults::CohesiveKinDataTet4e::_cellDim = 2;
+const int pylith::faults::CohesiveKinDataTet4::_cellDim = 2;
-const int pylith::faults::CohesiveKinDataTet4e::_numBasis = 3;
+const int pylith::faults::CohesiveKinDataTet4::_numBasis = 3;
-const int pylith::faults::CohesiveKinDataTet4e::_numQuadPts = 1;
+const int pylith::faults::CohesiveKinDataTet4::_numQuadPts = 1;
-const double pylith::faults::CohesiveKinDataTet4e::_quadPts[] = {
+const double pylith::faults::CohesiveKinDataTet4::_quadPts[] = {
3.33333333e-01, 3.33333333e-01,
};
-const double pylith::faults::CohesiveKinDataTet4e::_quadWts[] = {
+const double pylith::faults::CohesiveKinDataTet4::_quadWts[] = {
5.00000000e-01,
};
-const double pylith::faults::CohesiveKinDataTet4e::_basis[] = {
+const double pylith::faults::CohesiveKinDataTet4::_basis[] = {
3.33333333e-01, 3.33333333e-01,
3.33333333e-01,};
-const double pylith::faults::CohesiveKinDataTet4e::_basisDeriv[] = {
+const double pylith::faults::CohesiveKinDataTet4::_basisDeriv[] = {
-1.00000000e+00, -1.00000000e+00,
1.00000000e+00, 0.00000000e+00,
0.00000000e+00, 1.00000000e+00,
};
-const double pylith::faults::CohesiveKinDataTet4e::_verticesRef[] = {
+const double pylith::faults::CohesiveKinDataTet4::_verticesRef[] = {
-1.00000000e+00, -1.00000000e+00,
1.00000000e+00, -1.00000000e+00,
-1.00000000e+00, 1.00000000e+00,
};
-const int pylith::faults::CohesiveKinDataTet4e::_id = 10;
+const int pylith::faults::CohesiveKinDataTet4::_id = 10;
-const char* pylith::faults::CohesiveKinDataTet4e::_label = "fault";
+const char* pylith::faults::CohesiveKinDataTet4::_label = "fault";
-const char* pylith::faults::CohesiveKinDataTet4e::_finalSlipFilename =
- "data/tet4e_finalslip.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4::_finalSlipFilename =
+ "data/tet4_finalslip.spatialdb";
-const char* pylith::faults::CohesiveKinDataTet4e::_slipTimeFilename =
- "data/tet4e_sliptime.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4::_slipTimeFilename =
+ "data/tet4_sliptime.spatialdb";
-const char* pylith::faults::CohesiveKinDataTet4e::_peakRateFilename =
- "data/tet4e_peakrate.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4::_peakRateFilename =
+ "data/tet4_peakrate.spatialdb";
-const double pylith::faults::CohesiveKinDataTet4e::_fieldT[] = {
- 3.1, 5.1, 7.1,
- 3.2, 5.2, 7.2,
- 3.3, 5.3, 7.3,
- 3.4, 5.4, 7.4,
- 3.5, 5.5, 7.5,
- 3.6, 5.6, 7.6,
- 3.7, 5.7, 7.7,
- 3.8, 5.8, 7.8,
- 3.9, 5.9, 7.9,
- 3.0, 5.0, 7.0,
- 4.1, 6.1, 8.1,
- 4.2, 6.2, 8.2,
- 4.3, 6.3, 8.3,
- 4.4, 6.4, 8.4,
+const double pylith::faults::CohesiveKinDataTet4::_fieldT[] = {
+ 7.1, 8.1, 9.1,
+ 7.2, 8.2, 9.2,
+ 7.3, 8.3, 9.3,
+ 7.4, 8.4, 9.4,
+ 7.5, 8.5, 9.5,
+ 7.6, 8.6, 9.6,
+ 7.7, 8.7, 9.7,
+ 7.8, 8.8, 9.8,
+ 7.9, 8.9, 9.9,
+ 7.0, 8.0, 9.0,
+ 7.1, 8.1, 9.1,
};
-const int pylith::faults::CohesiveKinDataTet4e::_numConstraintVert = 4;
+const int pylith::faults::CohesiveKinDataTet4::_numConstraintVert = 3;
-const double pylith::faults::CohesiveKinDataTet4e::_orientation[] = {
+const double pylith::faults::CohesiveKinDataTet4::_orientation[] = {
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
- 0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
};
-const int pylith::faults::CohesiveKinDataTet4e::_constraintVertices[] = {
- 11, 13, 15, 17
+const int pylith::faults::CohesiveKinDataTet4::_constraintVertices[] = {
+ 8, 10, 12
};
-const int pylith::faults::CohesiveKinDataTet4e::_constraintCells[] = {
- 18, 18, 18, 19
+const int pylith::faults::CohesiveKinDataTet4::_constraintCells[] = {
+ 13, 13, 13
};
-const double pylith::faults::CohesiveKinDataTet4e::_valsResidual[] = {
+const double pylith::faults::CohesiveKinDataTet4::_valsResidual[] = {
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 8
0.0, 0.0, 0.0,
- 1.07974939836, -0.32861938211, 0.04694562602, // 11
+ 1.00381374723, -0.33460458241, 0.08365114560, // 10
0.0, 0.0, 0.0,
- 1.00381374723, -0.33460458241, 0.08365114560, // 13
- 0.0, 0.0, 0.0,
- 0.90493237602, -0.32577565537, 0.10859188512, // 15
- 0.0, 0.0, 0.0,
- 0.78469841324, -0.30180708202, 0.12072283281, // 17
+ 0.90493237602, -0.32577565537, 0.10859188512, // 12
};
-const double pylith::faults::CohesiveKinDataTet4e::_valsJacobian[] = {
- 0.0, 0.0, 0.0, // 4x
+const double pylith::faults::CohesiveKinDataTet4::_valsJacobian[] = {
+ 0.0, 0.0, 0.0, // 2x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -140,10 +133,10 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 2y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 4y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -151,69 +144,73 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 2z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 4z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 3x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 5x
+ 0.0, 0.0, 0.0, // 3y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 8
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 3z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 5y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 11
+ 0.0, 0.0, 0.0, // 4x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 5z
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 6x
+ 0.0, 0.0, 0.0, // 4z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -221,41 +218,43 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 10
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 13
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 5x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 6y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 12
+ 0.0, 0.0, 0.0, // 5y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 13
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 6z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 5z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 13
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7x
+ 0.0,-1.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 6x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -266,10 +265,9 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 15
+ 0.0, 0.0, 0.0, // 6y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -278,87 +276,95 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 6z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 15
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 15
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 8
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 8x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 17
- 0.0, 0.0, 0.0, // 8y
+ 0.0, 0.0, 0.0, // 7z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8x
+ 0.0,-1.0, 0.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 17
- 0.0, 0.0, 0.0, // 8z
+ 0.0,+1.0, 0.0, // 7
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8y
+ 0.0, 0.0,-1.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 7
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 17
- 0.0, 0.0, 0.0, // 9x
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8z
+ -1.0, 0.0, 0.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 7
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 9y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -366,7 +372,9 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 9z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -375,351 +383,111 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10x
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 9
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10y
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 9
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10z
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 9
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 11x
- 0.0,-1.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 12
0.0, 0.0, 0.0, // 11y
- 0.0, 0.0,-1.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 12
0.0, 0.0, 0.0, // 11z
- -1.0, 0.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 12
0.0, 0.0, 0.0, // 12x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 11
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 13
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 12y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 11
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 13
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 12z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 11
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 13
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 13x
- 0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 6
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 12
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 13y
- 0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 6
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 12
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 13z
- 0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 6
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 12
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 14x
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 15
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 14y
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 15
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 14z
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 15
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 15x
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 7
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 14
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 15y
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 7
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 14
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 15z
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 7
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 14
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 16x
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 17
- 0.0, 0.0, 0.0, // 16y
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 17
- 0.0, 0.0, 0.0, // 16z
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 17
- 0.0, 0.0, 0.0, // 17x
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 8
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 16
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 17y
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 8
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 16
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 17z
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 8
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 16
- 0.0, 0.0, 0.0,
};
-pylith::faults::CohesiveKinDataTet4e::CohesiveKinDataTet4e(void)
+pylith::faults::CohesiveKinDataTet4::CohesiveKinDataTet4(void)
{ // constructor
meshFilename = const_cast<char*>(_meshFilename);
spaceDim = _spaceDim;
@@ -745,7 +513,7 @@
numConstraintVert = _numConstraintVert;
} // constructor
-pylith::faults::CohesiveKinDataTet4e::~CohesiveKinDataTet4e(void)
+pylith::faults::CohesiveKinDataTet4::~CohesiveKinDataTet4(void)
{}
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4e.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -12,117 +12,124 @@
/* Original mesh
*
- * Cells are 0-1, vertices are 2-6.
+ * Cells are 0-3, vertices are 4-8.
*
- * 2 3,4,5 6
+ * 4 5,6,7 8
*
* ^^^^^ Face in x-y plane
*
* After adding cohesive elements
*
- * Cells are 0-1,10, vertices are 2-9.
+ * Cells are 0-3,18,19, vertices are 4-17.
*
- * 2 3,4,5 7,9,11 6
- * 8,10,12
+ * 4 5,6,7 10,12,14 8
+ * 11,13,15
* ^^^^^^^^^^^^ Cohesive element in x-y plane.
*/
-#include "CohesiveKinDataTet4.hh"
+#include "CohesiveKinDataTet4e.hh"
-const char* pylith::faults::CohesiveKinDataTet4::_meshFilename =
- "data/tet4.mesh";
+const char* pylith::faults::CohesiveKinDataTet4e::_meshFilename =
+ "data/tet4e.mesh";
-const int pylith::faults::CohesiveKinDataTet4::_spaceDim = 3;
+const int pylith::faults::CohesiveKinDataTet4e::_spaceDim = 3;
-const int pylith::faults::CohesiveKinDataTet4::_cellDim = 2;
+const int pylith::faults::CohesiveKinDataTet4e::_cellDim = 2;
-const int pylith::faults::CohesiveKinDataTet4::_numBasis = 3;
+const int pylith::faults::CohesiveKinDataTet4e::_numBasis = 3;
-const int pylith::faults::CohesiveKinDataTet4::_numQuadPts = 1;
+const int pylith::faults::CohesiveKinDataTet4e::_numQuadPts = 1;
-const double pylith::faults::CohesiveKinDataTet4::_quadPts[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_quadPts[] = {
3.33333333e-01, 3.33333333e-01,
};
-const double pylith::faults::CohesiveKinDataTet4::_quadWts[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_quadWts[] = {
5.00000000e-01,
};
-const double pylith::faults::CohesiveKinDataTet4::_basis[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_basis[] = {
3.33333333e-01, 3.33333333e-01,
3.33333333e-01,};
-const double pylith::faults::CohesiveKinDataTet4::_basisDeriv[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_basisDeriv[] = {
-1.00000000e+00, -1.00000000e+00,
1.00000000e+00, 0.00000000e+00,
0.00000000e+00, 1.00000000e+00,
};
-const double pylith::faults::CohesiveKinDataTet4::_verticesRef[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_verticesRef[] = {
-1.00000000e+00, -1.00000000e+00,
1.00000000e+00, -1.00000000e+00,
-1.00000000e+00, 1.00000000e+00,
};
-const int pylith::faults::CohesiveKinDataTet4::_id = 10;
+const int pylith::faults::CohesiveKinDataTet4e::_id = 10;
-const char* pylith::faults::CohesiveKinDataTet4::_label = "fault";
+const char* pylith::faults::CohesiveKinDataTet4e::_label = "fault";
-const char* pylith::faults::CohesiveKinDataTet4::_finalSlipFilename =
- "data/tet4_finalslip.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4e::_finalSlipFilename =
+ "data/tet4e_finalslip.spatialdb";
-const char* pylith::faults::CohesiveKinDataTet4::_slipTimeFilename =
- "data/tet4_sliptime.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4e::_slipTimeFilename =
+ "data/tet4e_sliptime.spatialdb";
-const char* pylith::faults::CohesiveKinDataTet4::_peakRateFilename =
- "data/tet4_peakrate.spatialdb";
+const char* pylith::faults::CohesiveKinDataTet4e::_peakRateFilename =
+ "data/tet4e_peakrate.spatialdb";
-const double pylith::faults::CohesiveKinDataTet4::_fieldT[] = {
- 7.1, 8.1, 9.1,
- 7.2, 8.2, 9.2,
- 7.3, 8.3, 9.3,
- 7.4, 8.4, 9.4,
- 7.5, 8.5, 9.5,
- 7.6, 8.6, 9.6,
- 7.7, 8.7, 9.7,
- 7.8, 8.8, 9.8,
- 7.9, 8.9, 9.9,
- 7.0, 8.0, 9.0,
- 7.1, 8.1, 9.1,
+const double pylith::faults::CohesiveKinDataTet4e::_fieldT[] = {
+ 3.1, 5.1, 7.1,
+ 3.2, 5.2, 7.2,
+ 3.3, 5.3, 7.3,
+ 3.4, 5.4, 7.4,
+ 3.5, 5.5, 7.5,
+ 3.6, 5.6, 7.6,
+ 3.7, 5.7, 7.7,
+ 3.8, 5.8, 7.8,
+ 3.9, 5.9, 7.9,
+ 3.0, 5.0, 7.0,
+ 4.1, 6.1, 8.1,
+ 4.2, 6.2, 8.2,
+ 4.3, 6.3, 8.3,
+ 4.4, 6.4, 8.4,
};
-const int pylith::faults::CohesiveKinDataTet4::_numConstraintVert = 3;
+const int pylith::faults::CohesiveKinDataTet4e::_numConstraintVert = 4;
-const double pylith::faults::CohesiveKinDataTet4::_orientation[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_orientation[] = {
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
+ 0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
};
-const int pylith::faults::CohesiveKinDataTet4::_constraintVertices[] = {
- 8, 10, 12
+const int pylith::faults::CohesiveKinDataTet4e::_constraintVertices[] = {
+ 11, 13, 15, 17
};
-const int pylith::faults::CohesiveKinDataTet4::_constraintCells[] = {
- 13, 13, 13
+const int pylith::faults::CohesiveKinDataTet4e::_constraintCells[] = {
+ 18, 18, 18, 19
};
-const double pylith::faults::CohesiveKinDataTet4::_valsResidual[] = {
+const double pylith::faults::CohesiveKinDataTet4e::_valsResidual[] = {
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 1.07974939836, -0.32861938211, 0.04694562602, // 8
0.0, 0.0, 0.0,
- 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 1.07974939836, -0.32861938211, 0.04694562602, // 11
0.0, 0.0, 0.0,
- 0.90493237602, -0.32577565537, 0.10859188512, // 12
+ 1.00381374723, -0.33460458241, 0.08365114560, // 13
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 15
+ 0.0, 0.0, 0.0,
+ 0.78469841324, -0.30180708202, 0.12072283281, // 17
};
-const double pylith::faults::CohesiveKinDataTet4::_valsJacobian[] = {
- 0.0, 0.0, 0.0, // 2x
+const double pylith::faults::CohesiveKinDataTet4e::_valsJacobian[] = {
+ 0.0, 0.0, 0.0, // 4x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -133,10 +140,10 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 2y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -144,73 +151,69 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 2z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 3x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 3y
+ 0.0, 0.0, 0.0, // 5x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 8
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 3z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 5y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 4x
+ -1.0, 0.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 5z
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 4y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 4z
+ 0.0, 0.0, 0.0, // 6x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -218,43 +221,41 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 10
0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 13
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 5x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 6y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 12
- 0.0, 0.0, 0.0, // 5y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 13
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 6z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 12
- 0.0, 0.0, 0.0, // 5z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 13
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 12
- 0.0, 0.0, 0.0, // 6x
+ 0.0, 0.0, 0.0, // 7x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -265,9 +266,10 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 6y
+ 0.0, 0.0,-1.0, // 15
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -276,95 +278,87 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 6z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 15
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 15
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 8
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 7z
+ 0.0, 0.0,-1.0, // 17
+ 0.0, 0.0, 0.0, // 8y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 8
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 8x
- 0.0,-1.0, 0.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 7
+ -1.0, 0.0, 0.0, // 17
+ 0.0, 0.0, 0.0, // 8z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 8y
- 0.0, 0.0,-1.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 7
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 17
+ 0.0, 0.0, 0.0, // 9x
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 8z
- -1.0, 0.0, 0.0, // 3
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 7
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 9x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0, // 9y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -372,9 +366,7 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
- 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 9z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
@@ -383,111 +375,351 @@
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10x
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 9
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10y
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 9
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 10z
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 4
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 9
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 11
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 11x
+ 0.0,-1.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 11y
+ 0.0, 0.0,-1.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 11z
+ -1.0, 0.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 10
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 12x
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,-1.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0,+1.0, 0.0, // 11
0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 13
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 12y
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,-1.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- 0.0, 0.0,+1.0, // 11
0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 13
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, // 12z
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- -1.0, 0.0, 0.0, // 5
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0,
- +1.0, 0.0, 0.0, // 11
0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 13
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 13x
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 6
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 13y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 6
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 13z
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 6
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 12
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 14x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 15
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 14y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 15
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 14z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 15
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 15x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 14
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 15y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 14
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 15z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 14
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 16x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 17
+ 0.0, 0.0, 0.0, // 16y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 17
+ 0.0, 0.0, 0.0, // 16z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 17
+ 0.0, 0.0, 0.0, // 17x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 16
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 17y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 16
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 17z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 16
+ 0.0, 0.0, 0.0,
};
-pylith::faults::CohesiveKinDataTet4::CohesiveKinDataTet4(void)
+pylith::faults::CohesiveKinDataTet4e::CohesiveKinDataTet4e(void)
{ // constructor
meshFilename = const_cast<char*>(_meshFilename);
spaceDim = _spaceDim;
@@ -513,7 +745,7 @@
numConstraintVert = _numConstraintVert;
} // constructor
-pylith::faults::CohesiveKinDataTet4::~CohesiveKinDataTet4(void)
+pylith::faults::CohesiveKinDataTet4e::~CohesiveKinDataTet4e(void)
{}
Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.cc 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,520 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+/* Original mesh
+ *
+ * Cells are 0-1, vertices are 2-6.
+ *
+ * 2 3,4,5 6
+ *
+ * ^^^^^ Face in x-y plane
+ *
+ * After adding cohesive elements
+ *
+ * Cells are 0-1,10, vertices are 2-9.
+ *
+ * 2 7,9,11 3,4,5 6
+ * 8,10,12
+ * ^^^^^^^^^^^^ Cohesive element in x-y plane.
+ */
+
+#include "CohesiveKinDataTet4f.hh"
+
+const char* pylith::faults::CohesiveKinDataTet4f::_meshFilename =
+ "data/tet4f.mesh";
+
+const int pylith::faults::CohesiveKinDataTet4f::_spaceDim = 3;
+
+const int pylith::faults::CohesiveKinDataTet4f::_cellDim = 2;
+
+const int pylith::faults::CohesiveKinDataTet4f::_numBasis = 3;
+
+const int pylith::faults::CohesiveKinDataTet4f::_numQuadPts = 1;
+
+const double pylith::faults::CohesiveKinDataTet4f::_quadPts[] = {
+ 3.33333333e-01, 3.33333333e-01,
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_quadWts[] = {
+ 5.00000000e-01,
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_basis[] = {
+ 3.33333333e-01, 3.33333333e-01,
+ 3.33333333e-01,};
+
+const double pylith::faults::CohesiveKinDataTet4f::_basisDeriv[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, 0.00000000e+00,
+ 0.00000000e+00, 1.00000000e+00,
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_verticesRef[] = {
+ -1.00000000e+00, -1.00000000e+00,
+ 1.00000000e+00, -1.00000000e+00,
+ -1.00000000e+00, 1.00000000e+00,
+};
+
+const int pylith::faults::CohesiveKinDataTet4f::_id = 10;
+
+const char* pylith::faults::CohesiveKinDataTet4f::_label = "fault";
+
+const char* pylith::faults::CohesiveKinDataTet4f::_finalSlipFilename =
+ "data/tet4_finalslip.spatialdb";
+
+const char* pylith::faults::CohesiveKinDataTet4f::_slipTimeFilename =
+ "data/tet4_sliptime.spatialdb";
+
+const char* pylith::faults::CohesiveKinDataTet4f::_peakRateFilename =
+ "data/tet4_peakrate.spatialdb";
+
+const double pylith::faults::CohesiveKinDataTet4f::_fieldT[] = {
+ 7.1, 8.1, 9.1,
+ 7.2, 8.2, 9.2,
+ 7.3, 8.3, 9.3,
+ 7.4, 8.4, 9.4,
+ 7.5, 8.5, 9.5,
+ 7.6, 8.6, 9.6,
+ 7.7, 8.7, 9.7,
+ 7.8, 8.8, 9.8,
+ 7.9, 8.9, 9.9,
+ 7.0, 8.0, 9.0,
+ 7.1, 8.1, 9.1,
+};
+
+const int pylith::faults::CohesiveKinDataTet4f::_numConstraintVert = 3;
+
+const double pylith::faults::CohesiveKinDataTet4f::_orientation[] = {
+ 0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
+ 0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
+ 0.0, +1.0, 0.0, 0.0, 0.0, +1.0, +1.0, 0.0, 0.0,
+};
+
+const int pylith::faults::CohesiveKinDataTet4f::_constraintVertices[] = {
+ 8, 10, 12
+};
+
+const int pylith::faults::CohesiveKinDataTet4f::_constraintCells[] = {
+ 13, 13, 13
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_valsResidual[] = {
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 1.07974939836, -0.32861938211, 0.04694562602, // 8
+ 0.0, 0.0, 0.0,
+ 1.00381374723, -0.33460458241, 0.08365114560, // 10
+ 0.0, 0.0, 0.0,
+ 0.90493237602, -0.32577565537, 0.10859188512, // 12
+};
+
+const double pylith::faults::CohesiveKinDataTet4f::_valsJacobian[] = {
+ 0.0, 0.0, 0.0, // 2x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 2y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 2z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 3x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 3y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 3z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 4z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 5x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 12
+ 0.0, 0.0, 0.0, // 5y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 5z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 6x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 6y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 6z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 7z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 8
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8x
+ 0.0,-1.0, 0.0, // 3
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8y
+ 0.0, 0.0,-1.0, // 3
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 8z
+ -1.0, 0.0, 0.0, // 3
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 7
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 9z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 10
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 10x
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 4
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 9
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 10y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 4
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 9
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 10z
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 4
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 9
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 11x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 12
+ 0.0, 0.0, 0.0, // 11y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 11z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 12
+ 0.0, 0.0, 0.0, // 12x
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,-1.0, 0.0, // 5
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0,+1.0, 0.0, // 11
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 12y
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,-1.0, // 5
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0,+1.0, // 11
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0, // 12z
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ -1.0, 0.0, 0.0, // 5
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ 0.0, 0.0, 0.0,
+ +1.0, 0.0, 0.0, // 11
+ 0.0, 0.0, 0.0,
+};
+
+pylith::faults::CohesiveKinDataTet4f::CohesiveKinDataTet4f(void)
+{ // constructor
+ meshFilename = const_cast<char*>(_meshFilename);
+ spaceDim = _spaceDim;
+ cellDim = _cellDim;
+ numBasis = _numBasis;
+ numQuadPts = _numQuadPts;
+ quadPts = const_cast<double*>(_quadPts);
+ quadWts = const_cast<double*>(_quadWts);
+ basis = const_cast<double*>(_basis);
+ basisDeriv = const_cast<double*>(_basisDeriv);
+ verticesRef = const_cast<double*>(_verticesRef);
+ id = _id;
+ label = const_cast<char*>(_label);
+ finalSlipFilename = const_cast<char*>(_finalSlipFilename);
+ slipTimeFilename = const_cast<char*>(_slipTimeFilename);
+ peakRateFilename = const_cast<char*>(_peakRateFilename);
+ fieldT = const_cast<double*>(_fieldT);
+ orientation = const_cast<double*>(_orientation);
+ constraintVertices = const_cast<int*>(_constraintVertices);
+ constraintCells = const_cast<int*>(_constraintCells);
+ valsResidual = const_cast<double*>(_valsResidual);
+ valsJacobian = const_cast<double*>(_valsJacobian);
+ numConstraintVert = _numConstraintVert;
+} // constructor
+
+pylith::faults::CohesiveKinDataTet4f::~CohesiveKinDataTet4f(void)
+{}
+
+
+// End of file
Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveKinDataTet4f.hh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+//
+// ======================================================================
+//
+// Brad T. Aagaard
+// U.S. Geological Survey
+//
+// {LicenseText}
+//
+// ======================================================================
+//
+
+#if !defined(pylith_faults_cohesivekindatatet4f_hh)
+#define pylith_faults_cohesivekindatatet4f_hh
+
+#include "CohesiveKinData.hh"
+
+namespace pylith {
+ namespace faults {
+ class CohesiveKinDataTet4f;
+ } // pylith
+} // faults
+
+class pylith::faults::CohesiveKinDataTet4f : public CohesiveKinData
+{
+
+// PUBLIC METHODS ///////////////////////////////////////////////////////
+public:
+
+ /// Constructor
+ CohesiveKinDataTet4f(void);
+
+ /// Destructor
+ ~CohesiveKinDataTet4f(void);
+
+// PRIVATE MEMBERS //////////////////////////////////////////////////////
+private:
+
+ static const char* _meshFilename; ///< Filename of input mesh
+
+ static const int _spaceDim; ///< Number of dimensions in vertex coordinates
+ static const int _cellDim; ///< Number of dimensions associated with cell
+
+ static const int _numBasis; ///< Number of vertices in cell
+ static const int _numQuadPts; ///< Number of quadrature points
+ static const double _quadPts[]; ///< Coordinates of quad pts in ref cell
+ static const double _quadWts[]; ///< Weights of quadrature points
+ static const double _basis[]; ///< Basis fns at quadrature points
+ static const double _basisDeriv[]; ///< Derivatives of basis fns at quad pts
+ static const double _verticesRef[]; ///< Coordinates of vertices in ref cell (dual basis)
+
+ static const int _id; ///< Fault material identifier
+ static const char* _label; ///< Label for fault
+ static const char* _finalSlipFilename; ///< Name of db for final slip
+ static const char* _slipTimeFilename; ///< Name of db for slip time
+ static const char* _peakRateFilename; ///< Name of db for peak rate
+ //@}
+
+ static const double _fieldT[]; ///< Solution field at time t.
+
+ static const double _orientation[]; ///< Expected values for fault orientation.
+ static const int _constraintVertices[]; ///< Expected points for constraint vertices
+ static const int _constraintCells[]; ///< Expected cells for constraint vertices
+ static const double _valsResidual[]; ///< Expected values from residual calculation.
+ static const double _valsJacobian[]; ///< Expected values from Jacobian calculation.
+ static const int _numConstraintVert; ///< Number of constraint vertices
+
+};
+
+#endif // pylith_faults_cohesivekindatatet4f_hh
+
+
+// End of file
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/Makefile.am 2007-06-18 00:28:00 UTC (rev 7280)
@@ -41,6 +41,7 @@
tet4c.mesh \
tet4d.mesh \
tet4e.mesh \
+ tet4f.mesh \
tet4_finalslip.spatialdb \
tet4_sliptime.spatialdb \
tet4_peakrate.spatialdb \
Added: short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4f.mesh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4f.mesh 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4f.mesh 2007-06-18 00:28:00 UTC (rev 7280)
@@ -0,0 +1,47 @@
+mesh = {
+ dimension = 3
+ use-index-zero = true
+ vertices = {
+ dimension = 3
+ count = 5
+ coordinates = {
+ 0 -1.0 0.0 0.0
+ 1 0.0 -1.0 0.0
+ 2 0.0 0.0 1.0
+ 3 0.0 1.0 0.0
+ 4 1.0 0.0 0.0
+ }
+ }
+ cells = {
+ count = 2
+ num-corners = 4
+ simplices = {
+ 1 1 3 2 4
+ 0 1 2 3 0
+ }
+ material-ids = {
+ 0 0
+ 1 0
+ }
+ }
+ group = {
+ name = fault
+ type = vertices
+ count = 3
+ indices = {
+ 1
+ 2
+ 3
+ }
+ }
+ group = {
+ name = output
+ type = vertices
+ count = 3
+ indices = {
+ 0
+ 2
+ 3
+ }
+ }
+}
Modified: short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py
===================================================================
--- short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py 2007-06-17 22:35:13 UTC (rev 7279)
+++ short/3D/PyLith/trunk/unittests/pytests/faults/TestFaultCohesiveKin.py 2007-06-18 00:28:00 UTC (rev 7280)
@@ -256,6 +256,7 @@
fault.id = 10
fault.label = "fault"
fault.upDir = [0, 0, 1]
+ fault.normalDir = [1, 0, 0]
fault.quadrature = quadrature
fault.eqsrc = eqsrc
fault.timeStep(dt)
More information about the cig-commits
mailing list