[cig-commits] r7537 - short/3D/PyLith/trunk/libsrc/faults

knepley at geodynamics.org knepley at geodynamics.org
Wed Jun 27 15:15:23 PDT 2007


Author: knepley
Date: 2007-06-27 15:15:23 -0700 (Wed, 27 Jun 2007)
New Revision: 7537

Modified:
   short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
Log:
Fixed fault divide-by-zero


Modified: short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2007-06-27 21:02:11 UTC (rev 7536)
+++ short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2007-06-27 22:15:23 UTC (rev 7537)
@@ -234,7 +234,7 @@
       vFinalSlipMag += vFinalSlip[iSlip]*vFinalSlip[iSlip];
     vFinalSlipMag = sqrt(vFinalSlipMag);
     const double vSlip = _slip(t-vSlipTime[0], vFinalSlipMag, vPeakRate[0]);
-    const double scale = vSlip / vFinalSlipMag;
+    const double scale = vFinalSlipMag > 0.0 ? vSlip / vFinalSlipMag : 0.0;
     for (int iSlip=0; iSlip < numSlipValues; ++iSlip)
       slipValues[iSlip] = scale * vFinalSlip[iSlip];
 
@@ -289,7 +289,7 @@
     vFinalSlipMag = sqrt(vFinalSlipMag);
     const double vSlip0 = _slip(t0-vSlipTime[0], vFinalSlipMag, vPeakRate[0]);
     const double vSlip1 = _slip(t1-vSlipTime[0], vFinalSlipMag, vPeakRate[0]);
-    const double scale = (vSlip1 - vSlip0) / vFinalSlipMag;
+    const double scale = vFinalSlipMag > 0.0 ? (vSlip1 - vSlip0) / vFinalSlipMag : 0.0;
     for (int iSlip=0; iSlip < numSlipValues; ++iSlip)
       slipValues[iSlip] = scale * vFinalSlip[iSlip];
 

Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc	2007-06-27 21:02:11 UTC (rev 7536)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc	2007-06-27 22:15:23 UTC (rev 7537)
@@ -475,6 +475,22 @@
 	    constraintOrient[kDim*spaceDim+jDim] * pseudoStiffness;
     } // for
 
+#if 0
+    std::cout << "Updating fault residual for cell " << *c_iter << std::endl;
+    for(int i = 0; i < numConstraintVert; ++i) {
+      std::cout << "  stif["<<i<<"]: " << cellStiffness[i] << std::endl;
+    }
+    for(int i = 0; i < numConstraintVert*spaceDim; ++i) {
+      std::cout << "  slip["<<i<<"]: " << cellSlip[i] << std::endl;
+    }
+    for(int i = 0; i < numCorners*spaceDim; ++i) {
+      std::cout << "  soln["<<i<<"]: " << cellSoln[i] << std::endl;
+    }
+    for(int i = 0; i < numCorners*spaceDim; ++i) {
+      std::cout << "  v["<<i<<"]: " << cellResidual[i] << std::endl;
+    }
+#endif
+
     // Assemble cell contribution into field
     mesh->updateAdd(residual, *c_iter, &cellResidual[0]);
   } // for



More information about the cig-commits mailing list