[cig-commits] r16303 - in short/3D/PyLith/trunk: . libsrc/faults libsrc/friction unittests/libtests/bc/data unittests/libtests/faults unittests/libtests/faults/data
brad at geodynamics.org
brad at geodynamics.org
Sun Feb 21 19:00:21 PST 2010
Author: brad
Date: 2010-02-21 19:00:20 -0800 (Sun, 21 Feb 2010)
New Revision: 16303
Modified:
short/3D/PyLith/trunk/TODO
short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
short/3D/PyLith/trunk/libsrc/friction/FrictionModel.cc
short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataHex8.cc
short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8_initialtract.spatialdb
short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4_initialtract.spatialdb
Log:
Implemented weighted average of initial tractions for fault friction. Tet4 and Hex8 unit tests need updating for slip case.
Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/TODO 2010-02-22 03:00:20 UTC (rev 16303)
@@ -6,6 +6,8 @@
Better PETSc settings or Laplacian based preconditioner
* Drucker-Prager elastoplastic
+ Add isJacobianSymmetric() to Integrator (default is true, need to query material model).
+ Need to pass hint when creating Jacobian.
* Friction
@@ -35,9 +37,6 @@
FRICTION
----------------------------------------------------------------------
-Initial tractions
- Integrate over fault surface (should be current implementation)
-
6. Other fault constitutive models [Surendra]
Rate- and state-friction with aging law
Rate- and state-friction with slip law (only if desired)
Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveDyn.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -46,6 +46,7 @@
typedef pylith::topology::Mesh::SieveMesh SieveMesh;
typedef pylith::topology::Mesh::RealSection RealSection;
typedef pylith::topology::SubMesh::SieveMesh SieveSubMesh;
+typedef pylith::topology::Mesh::RestrictVisitor RestrictVisitor;
// ----------------------------------------------------------------------
// Default constructor.
@@ -930,106 +931,164 @@
assert(0 != _normalizer);
assert(0 != _quadrature);
+ // If no initial tractions specified, leave method
+ if (0 == _dbInitialTract)
+ return;
+
+ assert(0 != _normalizer);
const double pressureScale = _normalizer->pressureScale();
const double lengthScale = _normalizer->lengthScale();
+ // Get quadrature information
+ const int numQuadPts = _quadrature->numQuadPts();
+ const int numBasis = _quadrature->numBasis();
const int spaceDim = _quadrature->spaceDim();
- const int numQuadPts = _quadrature->numQuadPts();
+ const double_array& quadWts = _quadrature->quadWts();
+ assert(quadWts.size() == numQuadPts);
- if (0 != _dbInitialTract) { // Setup initial values, if provided.
- // Create section to hold initial tractions.
- _fields->add("initial traction", "initial_traction");
- topology::Field<topology::SubMesh>& traction = _fields->get(
- "initial traction");
- topology::Field<topology::SubMesh>& slip = _fields->get("slip");
- traction.cloneSection(slip);
- traction.scale(pressureScale);
- const ALE::Obj<RealSection>& tractionSection = traction.section();
- assert(!tractionSection.isNull());
+ double_array quadPtsGlobal(numQuadPts*spaceDim);
- _dbInitialTract->open();
- switch (spaceDim) { // switch
- case 1: {
- const char* valueNames[] = { "traction-normal" };
- _dbInitialTract->queryVals(valueNames, 1);
- break;
- } // case 1
- case 2: {
- const char* valueNames[] = { "traction-shear", "traction-normal" };
- _dbInitialTract->queryVals(valueNames, 2);
- break;
- } // case 2
- case 3: {
- const char* valueNames[] = { "traction-shear-leftlateral",
- "traction-shear-updip", "traction-normal" };
- _dbInitialTract->queryVals(valueNames, 3);
- break;
- } // case 3
- default:
- std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
- assert(0);
- throw std::logic_error("Bad spatial dimension in Neumann.");
- } // switch
+ // Create section to hold initial tractions.
+ _fields->add("initial traction", "initial_traction");
+ topology::Field<topology::SubMesh>& traction =
+ _fields->get("initial traction");
+ topology::Field<topology::SubMesh>& slip = _fields->get("slip");
+ traction.cloneSection(slip);
+ traction.scale(pressureScale);
+ const ALE::Obj<RealSection>& tractionSection = traction.section();
+ assert(!tractionSection.isNull());
+ double_array tractionCell(numBasis*spaceDim);
+ double_array tractionQuadPt(spaceDim);
+ topology::Mesh::UpdateAddVisitor tractionVisitor(*tractionSection,
+ &tractionCell[0]);
- // Get 'fault' vertices.
- const ALE::Obj<SieveSubMesh>& faultSieveMesh = _faultMesh->sieveMesh();
- assert(!faultSieveMesh.isNull());
- const ALE::Obj<SieveSubMesh::label_sequence>& vertices =
- faultSieveMesh->depthStratum(0);
- assert(!vertices.isNull());
- const SieveSubMesh::label_sequence::iterator verticesBegin =
- vertices->begin();
- const SieveSubMesh::label_sequence::iterator verticesEnd = vertices->end();
+ assert(0 != _dbInitialTract);
+ _dbInitialTract->open();
+ switch (spaceDim) { // switch
+ case 1: {
+ const char* valueNames[] = { "traction-normal" };
+ _dbInitialTract->queryVals(valueNames, 1);
+ break;
+ } // case 1
+ case 2: {
+ const char* valueNames[] = { "traction-shear", "traction-normal" };
+ _dbInitialTract->queryVals(valueNames, 2);
+ break;
+ } // case 2
+ case 3: {
+ const char* valueNames[] = { "traction-shear-leftlateral",
+ "traction-shear-updip", "traction-normal" };
+ _dbInitialTract->queryVals(valueNames, 3);
+ break;
+ } // case 3
+ default:
+ std::cerr << "Bad spatial dimension '" << spaceDim << "'." << std::endl;
+ assert(0);
+ throw std::logic_error("Bad spatial dimension in Neumann.");
+ } // switch
+
+ // Get cells associated with fault
+ const ALE::Obj<SieveSubMesh>& faultSieveMesh = _faultMesh->sieveMesh();
+ assert(!faultSieveMesh.isNull());
+ const ALE::Obj<SieveSubMesh::label_sequence>& cells =
+ faultSieveMesh->heightStratum(0);
+ assert(!cells.isNull());
+ const SieveSubMesh::label_sequence::iterator cellsBegin = cells->begin();
+ const SieveSubMesh::label_sequence::iterator cellsEnd = cells->end();
+ const ALE::Obj<SieveSubMesh::label_sequence>& vertices =
+ faultSieveMesh->depthStratum(0);
+ assert(!vertices.isNull());
+ const SieveSubMesh::label_sequence::iterator verticesBegin =
+ vertices->begin();
+ const SieveSubMesh::label_sequence::iterator verticesEnd = vertices->end();
- const int numBasis = _quadrature->numBasis();
- const int spaceDim = _quadrature->spaceDim();
+ const spatialdata::geocoords::CoordSys* cs = _faultMesh->coordsys();
+ assert(0 != cs);
- // Containers for database query results and quadrature coordinates in
- // reference geometry.
- double_array tractionVertex(spaceDim);
- double_array coordsVertex(spaceDim);
+#if !defined(PRECOMPUTE_GEOMETRY)
+ double_array coordinatesCell(numBasis*spaceDim);
+ const ALE::Obj<RealSection>& coordinates =
+ faultSieveMesh->getRealSection("coordinates");
+ RestrictVisitor coordsVisitor(*coordinates,
+ coordinatesCell.size(), &coordinatesCell[0]);
+#endif
- // Get sections.
- const ALE::Obj<RealSection>& coordinates = faultSieveMesh->getRealSection(
- "coordinates");
- assert(!coordinates.isNull());
- const spatialdata::geocoords::CoordSys* cs = _faultMesh->coordsys();
+ for (SieveSubMesh::label_sequence::iterator c_iter=cellsBegin;
+ c_iter != cellsEnd;
+ ++c_iter) {
+ // Compute geometry information for current cell
+#if defined(PRECOMPUTE_GEOMETRY)
+ _quadrature->retrieveGeometry(*c_iter);
+#else
+ coordsVisitor.clear();
+ faultSieveMesh->restrictClosure(*c_iter, coordsVisitor);
+ _quadrature->computeGeometry(coordinatesCell, *c_iter);
+#endif
- const double lengthScale = _normalizer->lengthScale();
-
- // Loop over vertices in fault mesh and perform queries.
- for (SieveSubMesh::label_sequence::iterator v_iter = verticesBegin; v_iter
- != verticesEnd; ++v_iter) {
- coordinates->restrictPoint(*v_iter, &coordsVertex[0], coordsVertex.size());
- // Dimensionalize coordinates
- _normalizer->dimensionalize(&coordsVertex[0], coordsVertex.size(),
+ const double_array& quadPtsNonDim = _quadrature->quadPts();
+ quadPtsGlobal = quadPtsNonDim;
+ _normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
lengthScale);
+ tractionCell = 0.0;
- tractionVertex = 0.0;
- const int err = _dbInitialTract->query(&tractionVertex[0], spaceDim,
- &coordsVertex[0], spaceDim, cs);
+ // Loop over quadrature points in cell and query database
+ for (int iQuadPt=0, index=0;
+ iQuadPt < numQuadPts;
+ ++iQuadPt, index+=spaceDim) {
+
+ tractionQuadPt = 0.0;
+ int err = _dbInitialTract->query(&tractionQuadPt[0], spaceDim,
+ &quadPtsGlobal[index], spaceDim, cs);
if (err) {
std::ostringstream msg;
- msg << "Could not find initial tractions at (";
+ msg << "Could not find parameters for physical properties at \n" << "(";
for (int i = 0; i < spaceDim; ++i)
- msg << " " << coordsVertex[i];
- msg << ") for dynamic fault interface " << label() << "\n"
- << "using spatial database " << _dbInitialTract->label() << ".";
+ msg << " " << quadPtsGlobal[index + i];
+ msg << ") in friction model " << label() << "\n"
+ << "using spatial database '" << _dbInitialTract->label() << "'.";
throw std::runtime_error(msg.str());
} // if
+ tractionQuadPt /= pressureScale;
- _normalizer->nondimensionalize(&tractionVertex[0], tractionVertex.size(),
- pressureScale);
+ // Get cell geometry information that depends on cell
+ const double_array& basis = _quadrature->basis();
+ const double_array& jacobianDet = _quadrature->jacobianDet();
- // Update section
- assert(tractionVertex.size() == tractionSection->getFiberDimension(*v_iter));
- tractionSection->updatePoint(*v_iter, &tractionVertex[0]);
+ // Compute properties weighted by area
+ const double wt = quadWts[iQuadPt] * jacobianDet[iQuadPt];
+ for (int iBasis = 0; iBasis < numBasis; ++iBasis) {
+ const double dArea = wt * basis[iQuadPt*numBasis+iBasis];
+ for (int iDim = 0; iDim < spaceDim; ++iDim)
+ tractionCell[iBasis*spaceDim+iDim] += tractionQuadPt[iDim] * dArea;
+ } // for
} // for
+ tractionVisitor.clear();
+ faultSieveMesh->updateClosure(*c_iter, tractionVisitor);
+ } // for
+ // Close properties database
+ _dbInitialTract->close();
- _dbInitialTract->close();
+ traction.complete(); // Assemble contributions
- //traction.view("INITIAL TRACTIONS"); // DEBUGGING
- } // if
+ // Loop over vertices and divide by area to get weighted values and
+ // nondimensionalize properties.
+ const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
+ assert(!areaSection.isNull());
+
+ double_array tractionVertex(spaceDim);
+ double areaVertex = 0.0;
+ for (SieveSubMesh::label_sequence::iterator v_iter=verticesBegin;
+ v_iter != verticesEnd;
+ ++v_iter) {
+ tractionSection->restrictPoint(*v_iter,
+ &tractionVertex[0], tractionVertex.size());
+ areaSection->restrictPoint(*v_iter, &areaVertex, 1);
+ assert(areaVertex > 0.0);
+ tractionVertex /= areaVertex;
+ tractionSection->updatePoint(*v_iter, &tractionVertex[0]);
+ } // for
+
+ traction.view("INITIAL TRACTIONS"); // DEBUGGING
} // _getInitialTractions
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/libsrc/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/friction/FrictionModel.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/libsrc/friction/FrictionModel.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -186,6 +186,8 @@
quadrature->computeGeometry(coordinatesCell, *c_iter);
#endif
+ propertiesCell = 0.0;
+
const double_array& quadPtsNonDim = quadrature->quadPts();
quadPtsGlobal = quadPtsNonDim;
_normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
@@ -218,11 +220,11 @@
const double dArea = wt * basis[iQuadPt*numBasis+iBasis];
for (int iProp = 0; iProp < numDBProperties; ++iProp)
propertiesCell[iBasis*numDBProperties+iProp]
- = propertiesQuadPt[iProp] * dArea;
+ += propertiesQuadPt[iProp] * dArea;
} // for
- propertiesVisitor.clear();
- faultSieveMesh->updateClosure(*c_iter, propertiesVisitor);
} // for
+ propertiesVisitor.clear();
+ faultSieveMesh->updateClosure(*c_iter, propertiesVisitor);
} // for
// Close properties database
_dbProperties->close();
@@ -299,6 +301,8 @@
_normalizer->dimensionalize(&quadPtsGlobal[0], quadPtsGlobal.size(),
lengthScale);
+ stateVarsCell = 0.0;
+
// Loop over quadrature points in cell and query database
for (int iQuadPt=0, index=0;
iQuadPt < numQuadPts;
@@ -326,11 +330,11 @@
const double dArea = wt * basis[iQuadPt*numBasis+iBasis];
for (int iVar = 0; iVar < numDBStateVars; ++iVar)
stateVarsCell[iBasis*numDBStateVars+iVar]
- = stateVarsDBQuery[iVar] * dArea;
+ += stateVarsDBQuery[iVar] * dArea;
} // for
- stateVarsVisitor.clear();
+ } // for
+ stateVarsVisitor.clear();
faultSieveMesh->updateClosure(*c_iter, stateVarsVisitor);
- } // for
} // for
// Close database
_dbInitialState->close();
Modified: short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataHex8.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/bc/data/NeumannDataHex8.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -38,10 +38,10 @@
1.0, 1.0, 1.0, 1.0
};
const double pylith::bc::NeumannDataHex8::_basis[] = {
- 0.62200847, 0.16666667, 0.16666667, 0.0446582,
- 0.16666667, 0.62200847, 0.0446582, 0.16666667,
- 0.16666667, 0.0446582, 0.62200847, 0.16666667,
- 0.0446582, 0.16666667, 0.16666667, 0.62200847,
+ 0.62200847, 0.16666667, 0.0446582, 0.16666667,
+ 0.16666667, 0.62200847, 0.16666667, 0.0446582,
+ 0.0446582, 0.16666667, 0.62200847, 0.16666667,
+ 0.16666667, 0.0446582, 0.16666667, 0.62200847,
};
const double pylith::bc::NeumannDataHex8::_basisDerivRef[] = {
-0.39433757, -0.39433757,
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/Makefile.am 2010-02-22 03:00:20 UTC (rev 16303)
@@ -48,8 +48,8 @@
TestFaultCohesiveDyn.cc \
TestFaultCohesiveDynTri3.cc \
TestFaultCohesiveDynQuad4.cc \
+ TestFaultCohesiveDynTet4.cc \
TestFaultCohesiveDynHex8.cc \
- TestFaultCohesiveDynTet4.cc \
test_faults.cc
@@ -80,8 +80,8 @@
TestFaultCohesiveDyn.hh \
TestFaultCohesiveDynTri3.hh \
TestFaultCohesiveDynQuad4.hh \
- TestFaultCohesiveDynHex8.hh \
- TestFaultCohesiveDynTet4.hh
+ TestFaultCohesiveDynTet4.hh \
+ TestFaultCohesiveDynHex8.hh
# Source files associated with testing data
testfaults_SOURCES += \
@@ -142,8 +142,8 @@
data/CohesiveDynData.cc \
data/CohesiveDynDataTri3.cc \
data/CohesiveDynDataQuad4.cc \
- data/CohesiveDynDataHex8.cc \
- data/CohesiveDynDataTet4.cc
+ data/CohesiveDynDataTet4.cc \
+ data/CohesiveDynDataHex8.cc
noinst_HEADERS += \
data/CohesiveData.hh \
@@ -203,8 +203,8 @@
data/CohesiveDynData.hh \
data/CohesiveDynDataTri3.hh \
data/CohesiveDynDataQuad4.hh \
- data/CohesiveDynDataHex8.hh \
- data/CohesiveDynDataTet4.hh
+ data/CohesiveDynDataTet4.hh \
+ data/CohesiveDynDataHex8.hh
AM_CPPFLAGS = \
$(PYTHON_EGG_CPPFLAGS) -I$(PYTHON_INCDIR) \
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -54,10 +54,10 @@
};
const double pylith::faults::CohesiveDynDataHex8::_basis[] = {
- 0.62200847, 0.16666667, 0.16666667, 0.0446582,
- 0.16666667, 0.62200847, 0.0446582, 0.16666667,
- 0.16666667, 0.0446582, 0.62200847, 0.16666667,
- 0.0446582, 0.16666667, 0.16666667, 0.62200847,
+ 0.62200847, 0.16666667, 0.0446582, 0.16666667,
+ 0.16666667, 0.62200847, 0.16666667, 0.0446582,
+ 0.0446582, 0.16666667, 0.62200847, 0.16666667,
+ 0.16666667, 0.0446582, 0.16666667, 0.62200847,
};
const double pylith::faults::CohesiveDynDataHex8::_basisDeriv[] = {
@@ -1340,10 +1340,10 @@
};
const double pylith::faults::CohesiveDynDataHex8::_initialTractions[] = {
- 1.0, 2.0, -3.0,
- 1.1, 2.1, -3.1,
- 1.2, 2.2, -3.2,
- 1.3, 2.3, -3.3,
+ 1.063397471, 2.063397471, -3.063397471,
+ 1.121132498, 2.121132498, -3.121132498,
+ 1.178867525, 2.178867525, -3.178867525,
+ 1.236602552, 2.236602552, -3.236602552
};
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -317,8 +317,8 @@
};
const double pylith::faults::CohesiveDynDataQuad4::_initialTractions[] = {
- 1.0, -2.0,
- 1.1, -2.1,
+ 1.05, -2.05,
+ 1.05, -2.05,
};
@@ -375,14 +375,14 @@
9.6, 10.6,
9.7, 10.7, // 8
9.9, 10.9, // 9
- -7.0, -10.8, // 10
- -6.14, -10.0, // 11
+ -8.8+3.05*0.6, -10.8, // 10
+ -8.0+3.05*0.6, -10.0, // 11
};
// :TODO: Update slip values based on changes in Lagrange multiplier values
const double pylith::faults::CohesiveDynDataQuad4::_slipSlipE[] = {
- 33.6, 0.0,
- 30.28, 0.0,
+ 33.54, 0.0,
+ 30.34, 0.0,
};
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -471,9 +471,9 @@
};
const double pylith::faults::CohesiveDynDataTet4::_initialTractions[] = {
- 1.0, 2.0, -3.0,
1.1, 2.1, -3.1,
- 1.2, 2.2, -3.2,
+ 1.1, 2.1, -3.1,
+ 1.1, 2.1, -3.1,
};
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc 2010-02-22 03:00:20 UTC (rev 16303)
@@ -247,8 +247,8 @@
};
const double pylith::faults::CohesiveDynDataTri3::_initialTractions[] = {
- 1.0, -2.0,
- 1.1, -2.1,
+ 1.05, -2.05,
+ 1.05, -2.05,
};
@@ -299,14 +299,14 @@
9.4, 10.4,
9.5, 10.5, // 6
9.7, 10.7, // 7
- -6.8, -10.6, // 8
- -6.94, -10.8, // 9
+ -8.6+3.05*0.6, -10.6, // 8
+ -8.8+3.05*0.6, -10.8, // 9
};
// :TODO: Update slip values based on changes in Lagrange multiplier values
const double pylith::faults::CohesiveDynDataTri3::_slipSlipE[] = {
- 32.8, 0.0,
- 33.48, 0.0,
+ 32.74, 0.0,
+ 33.54, 0.0,
};
// ----------------------------------------------------------------------
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8_initialtract.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8_initialtract.spatialdb 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/hex8_initialtract.spatialdb 2010-02-22 03:00:20 UTC (rev 16303)
@@ -4,14 +4,14 @@
value-names = traction-shear-leftlateral traction-shear-updip traction-normal
value-units = Pa Pa Pa
num-locs = 4
- data-dim = 1
+ data-dim = 2
space-dim = 3
cs-data = cartesian {
to-meters = 1.0
space-dim = 3
}
}
- 0.0 -1.0000 -1.0000 1.0000 2.0000 -3.0000
- 0.0 1.0000 -1.0000 1.1000 2.1000 -3.1000
- 0.0 -1.0000 1.0000 1.2000 2.2000 -3.2000
- 0.0 1.0000 1.0000 1.3000 2.3000 -3.3000
+0.0 -0.57735027 -0.57735027 1.0000 2.0000 -3.0000
+0.0 0.57735027 -0.57735027 1.1000 2.1000 -3.1000
+0.0 -0.57735027 0.57735027 1.2000 2.2000 -3.2000
+0.0 0.57735027 0.57735027 1.3000 2.3000 -3.3000
Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4_initialtract.spatialdb
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4_initialtract.spatialdb 2010-02-22 00:44:15 UTC (rev 16302)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/tet4_initialtract.spatialdb 2010-02-22 03:00:20 UTC (rev 16303)
@@ -4,7 +4,7 @@
value-names = traction-shear-leftlateral traction-shear-updip traction-normal
value-units = Pa Pa Pa
num-locs = 3
- data-dim = 1
+ data-dim = 2
space-dim = 3
cs-data = cartesian {
to-meters = 1.0
@@ -12,5 +12,5 @@
}
}
0.0 -1.0 0.0 1.0 2.0 -3.0
-0.0 0.0 1.0 1.1 2.1 -3.1
-0.0 1.0 0.0 1.2 2.2 -3.2
+0.0 0.0 1.0 1.1 2.1 -3.1
+0.0 1.0 0.0 1.2 2.2 -3.2
More information about the CIG-COMMITS
mailing list