[cig-commits] r18735 - short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults
brad at geodynamics.org
brad at geodynamics.org
Mon Jul 11 15:37:30 PDT 2011
Author: brad
Date: 2011-07-11 15:37:30 -0700 (Mon, 11 Jul 2011)
New Revision: 18735
Modified:
short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.cc
short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.hh
Log:
Added tolerance for minimum resolvable slip rate (account for roundoff error in adjusting lumped soln).
Modified: short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.cc 2011-07-11 22:36:48 UTC (rev 18734)
+++ short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.cc 2011-07-11 22:37:30 UTC (rev 18735)
@@ -60,6 +60,9 @@
typedef ALE::ISieveVisitor::IndicesVisitor<RealSection,SieveSubMesh::order_type,PetscInt> IndicesVisitor;
// ----------------------------------------------------------------------
+const double pylith::faults::FaultCohesiveDyn::_slipRateTolerance = 1.0e-12;
+
+// ----------------------------------------------------------------------
// Default constructor.
pylith::faults::FaultCohesiveDyn::FaultCohesiveDyn(void) :
_dbInitialTract(0),
@@ -1485,6 +1488,11 @@
slipRateVertex[iDim] +=
velocityVertexP[kDim] * +orientationVertex[iDim*spaceDim+kDim];
+ // Limit velocity to resolvable range
+ for (int iDim = 0; iDim < spaceDim; ++iDim)
+ if (fabs(slipRateVertex[iDim]) < _slipRateTolerance)
+ slipRateVertex[iDim] = 0.0;
+
// Update slip rate field.
assert(slipRateVertex.size() ==
slipRateSection->getFiberDimension(v_fault));
Modified: short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.hh 2011-07-11 22:36:48 UTC (rev 18734)
+++ short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.hh 2011-07-11 22:37:30 UTC (rev 18735)
@@ -290,6 +290,9 @@
PetscKSP _ksp; ///< PETSc KSP linear solver for sensitivity problem.
+ /// Minimum resolvable slip rate accounting for roundoff errors
+ static const double _slipRateTolerance;
+
// NOT IMPLEMENTED ////////////////////////////////////////////////////
private :
More information about the CIG-COMMITS
mailing list