[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