[cig-commits] r18843 - short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults

brad at geodynamics.org brad at geodynamics.org
Mon Aug 22 18:23:54 PDT 2011


Author: brad
Date: 2011-08-22 18:23:54 -0700 (Mon, 22 Aug 2011)
New Revision: 18843

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:
Fixed tolerance issue in determining if fault is under compression.

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-08-22 22:12:55 UTC (rev 18842)
+++ short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-08-23 01:23:54 UTC (rev 18843)
@@ -60,7 +60,7 @@
 typedef ALE::ISieveVisitor::IndicesVisitor<RealSection,SieveSubMesh::order_type,PetscInt> IndicesVisitor;
 
 // ----------------------------------------------------------------------
-const double pylith::faults::FaultCohesiveDyn::_slipRateTolerance = 1.0e-12;
+const double pylith::faults::FaultCohesiveDyn::_zeroTolerance = 1.0e-12;
 
 // ----------------------------------------------------------------------
 // Default constructor.
@@ -438,7 +438,7 @@
 
 #if 0 // DEBUGGING
   slipSection->view("SLIP");
-  //slipRateSection->view("SLIP RATE");
+  slipRateSection->view("SLIP RATE");
   //areaSection->view("AREA");
   //dispTSection->view("DISP (t)");
   //dispTIncrSection->view("DISP INCR (t->t+dt)");
@@ -560,9 +560,10 @@
     const int indexN = spaceDim - 1;
     const double lagrangeTpdtNormal = lagrangeTVertex[indexN] + 
       lagrangeTIncrVertex[indexN] + dLagrangeTpdtVertex[indexN];
-    if (lagrangeTpdtNormal < 0.0 || 
-	slipVertex[indexN] + dSlipVertex[indexN] < 0.0)
+    if (lagrangeTpdtNormal < -_zeroTolerance || 
+	slipVertex[indexN] + dSlipVertex[indexN] < 0.0) {
       dSlipVertex[indexN] = -slipVertex[indexN];
+    } // if
 
     // Set change in slip.
     assert(dSlipVertex.size() ==
@@ -598,7 +599,7 @@
   dLagrangeTpdtSection->view("AFTER dLagrange");
   //dispTIncrSection->view("AFTER DISP INCR (t->t+dt)");
   slipSection->view("AFTER SLIP");
-  //slipRateSection->view("AFTER SLIP RATE");
+  slipRateSection->view("AFTER SLIP RATE");
 #endif
 } // constrainSolnSpace
 
@@ -1501,7 +1502,7 @@
 
     // Limit velocity to resolvable range
     for (int iDim = 0; iDim < spaceDim; ++iDim)
-      if (fabs(slipRateVertex[iDim]) < _slipRateTolerance)
+      if (fabs(slipRateVertex[iDim]) < _zeroTolerance)
 	slipRateVertex[iDim] = 0.0;
 
     // Update slip rate field.
@@ -1581,8 +1582,8 @@
     int maxIters = 0;
     err = KSPGetTolerances(_ksp, &rtol, &atol, &dtol, &maxIters); 
     CHECK_PETSC_ERROR(err);
-    rtol = 1.0e-12;
-    atol = 1.0e-15;
+    rtol = _zeroTolerance;
+    atol = 0.001*_zeroTolerance;
     err = KSPSetTolerances(_ksp, rtol, atol, dtol, maxIters);
     CHECK_PETSC_ERROR(err);
 

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-08-22 22:12:55 UTC (rev 18842)
+++ short/3D/PyLith/branches/v1.6-stable/libsrc/pylith/faults/FaultCohesiveDyn.hh	2011-08-23 01:23:54 UTC (rev 18843)
@@ -290,8 +290,8 @@
 
   PetscKSP _ksp; ///< PETSc KSP linear solver for sensitivity problem.
 
-  /// Minimum resolvable slip rate accounting for roundoff errors
-  static const double _slipRateTolerance;
+  /// Minimum resolvable value accounting for roundoff errors
+  static const double _zeroTolerance;
 
 // NOT IMPLEMENTED ////////////////////////////////////////////////////
 private :



More information about the CIG-COMMITS mailing list