[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