[cig-commits] r20038 - in short/3D/PyLith/branches/v1.7-trunk: libsrc/pylith libsrc/pylith/faults modulesrc/faults unittests/libtests/faults

brad at geodynamics.org brad at geodynamics.org
Thu May 3 17:45:50 PDT 2012


Author: brad
Date: 2012-05-03 17:45:49 -0700 (Thu, 03 May 2012)
New Revision: 20038

Modified:
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/Makefile.am
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/Makefile.am
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/SlipTimeFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/faultsfwd.hh
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/BruneSlipFn.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/ConstRateSlipFn.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/EqKinSrc.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/LiuCosSlipFn.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/SlipTimeFn.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/StepSlipFn.i
   short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/TimeHistorySlipFn.i
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.hh
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc
   short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh
Log:
Cleanup of kinematic slip functions. Remove slipIncr (obsolete).

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/Makefile.am	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/Makefile.am	2012-05-04 00:45:49 UTC (rev 20038)
@@ -54,13 +54,6 @@
 	bc/AbsorbingDampers.cc \
 	bc/PointForce.cc \
 	faults/Fault.cc \
-	faults/SlipTimeFn.cc \
-	faults/StepSlipFn.cc \
-	faults/ConstRateSlipFn.cc \
-	faults/BruneSlipFn.cc \
-	faults/TimeHistorySlipFn.cc \
-	faults/LiuCosSlipFn.cc \
-	faults/EqKinSrc.cc \
 	faults/TopologyOps.cc \
 	faults/CohesiveTopology.cc \
 	faults/FaultCohesive.cc \
@@ -69,6 +62,16 @@
 	faults/FaultCohesiveDyn.cc \
 	faults/FaultCohesiveImpulses.cc \
 	faults/FaultCohesiveTract.cc \
+	faults/EqKinSrc.cc \
+	faults/SlipTimeFn.cc \
+	faults/StepSlipFn.cc \
+	faults/ConstRateSlipFn.cc \
+	faults/BruneSlipFn.cc \
+	faults/TimeHistorySlipFn.cc \
+	faults/LiuCosSlipFn.cc \
+	faults/Nucleator.cc \
+	faults/TractPerturbation.cc \
+	faults/StaticPerturbation.cc \
 	feassemble/CellGeometry.cc \
 	feassemble/Constraint.cc \
 	feassemble/GeometryPoint1D.cc \

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -287,71 +287,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get increment of slip on fault surface between time t0 and t1.
-void
-pylith::faults::BruneSlipFn::slipIncr(
-				      topology::Field<topology::SubMesh>* slip,
-				      const PylithScalar t0,
-				      const PylithScalar t1)
-{ // slipIncr
-  assert(0 != slip);
-  assert(0 != _parameters);
-
-  // Get vertices in fault mesh
-  const ALE::Obj<SieveMesh>& sieveMesh = slip->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
-  assert(!vertices.isNull());
-  const label_sequence::iterator verticesBegin = vertices->begin();
-  const label_sequence::iterator verticesEnd = vertices->end();
-
-  // Get sections
-  const topology::Field<topology::SubMesh>& finalSlip = 
-    _parameters->get("final slip");
-  const ALE::Obj<RealSection>& finalSlipSection = finalSlip.section();
-  assert(!finalSlipSection.isNull());
-  const topology::Field<topology::SubMesh>& slipTime =
-    _parameters->get("slip time");
-  const ALE::Obj<RealSection>& slipTimeSection = slipTime.section();
-  assert(!slipTimeSection.isNull());
-  const topology::Field<topology::SubMesh>& riseTime =
-    _parameters->get("rise time");
-  const ALE::Obj<RealSection>& riseTimeSection = riseTime.section();
-  assert(!riseTimeSection.isNull());
-  const ALE::Obj<RealSection>& slipSection = slip->section();
-  assert(!slipSection.isNull());
-
-  const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter) {
-    finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],
-				   _slipVertex.size());
-    slipTimeSection->restrictPoint(*v_iter, &_slipTimeVertex, 1);
-    riseTimeSection->restrictPoint(*v_iter, &_riseTimeVertex, 1);
-
-    PylithScalar finalSlipMag = 0.0;
-    for (int i=0; i < spaceDim; ++i)
-      finalSlipMag += _slipVertex[i]*_slipVertex[i];
-    finalSlipMag = sqrt(finalSlipMag);
-
-    const PylithScalar slip0 = _slipFn(t0-_slipTimeVertex, finalSlipMag,
-				 _riseTimeVertex);
-    const PylithScalar slip1 = _slipFn(t1-_slipTimeVertex, finalSlipMag,
-				 _riseTimeVertex);
-    const PylithScalar scale = finalSlipMag > 0.0 ? 
-      (slip1 - slip0) / finalSlipMag : 0.0;
-    _slipVertex *= scale;
-
-    
-    // Update field
-    slipSection->updateAddPoint(*v_iter, &_slipVertex[0]);
-  } // for
-
-  PetscLogFlops(vertices->size() * (3+2*8 + 3*_slipVertex.size()));
-} // slipIncr
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::BruneSlipFn::finalSlip(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/BruneSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -29,6 +29,8 @@
 
 #include "pylith/topology/topologyfwd.hh" // USES Fields<Field<SubMesh> >
 
+#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
+
 #include "pylith/utils/types.hh" // HASA PylithScalar
 #include "pylith/utils/array.hh" // HASA scalar_array
 
@@ -79,7 +81,6 @@
   /** Initialize slip time function.
    *
    * @param faultMesh Finite-element mesh of fault.
-   * @param cs Coordinate system for mesh
    * @param normalizer Nondimensionalization of scales.
    * @param originTime Origin time for earthquake source.
    */
@@ -97,18 +98,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -246,60 +246,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get increment of slip on fault surface between time t0 and t1.
-void
-pylith::faults::ConstRateSlipFn::slipIncr(
-				      topology::Field<topology::SubMesh>* slip,
-				      const PylithScalar t0,
-				      const PylithScalar t1)
-{ // slipIncr
-  assert(0 != slip);
-  assert(0 != _parameters);
-
-  // Get vertices in fault mesh
-  const ALE::Obj<SieveMesh>& sieveMesh = slip->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
-  assert(!vertices.isNull());
-  const label_sequence::iterator verticesBegin = vertices->begin();
-  const label_sequence::iterator verticesEnd = vertices->end();
-
-  // Get sections
-  const topology::Field<topology::SubMesh>& slipRate = 
-    _parameters->get("slip rate");
-  const ALE::Obj<RealSection>& slipRateSection = slipRate.section();
-  assert(!slipRateSection.isNull());
-  const topology::Field<topology::SubMesh>& slipTime =
-    _parameters->get("slip time");
-  const ALE::Obj<RealSection>& slipTimeSection = slipTime.section();
-  assert(!slipTimeSection.isNull());
-  const ALE::Obj<RealSection>& slipSection = slip->section();
-  assert(!slipSection.isNull());
-
-  for (label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter) {
-    slipRateSection->restrictPoint(*v_iter, &_slipRateVertex[0],
-				   _slipRateVertex.size());
-    slipTimeSection->restrictPoint(*v_iter, &_slipTimeVertex, 1);
-
-    const PylithScalar relTime0 = t0 - _slipTimeVertex;
-    const PylithScalar relTime1 = t1 - _slipTimeVertex;
-    PylithScalar elapsedTime = 0.0;
-    if (relTime0 > 0)
-      elapsedTime = t1 - t0;
-    else if (relTime1 > 0)
-      elapsedTime = t1 - _slipTimeVertex;
-    _slipRateVertex *= elapsedTime; // Convert slip rate to slip
-    
-    // Update field
-    slipSection->updateAddPoint(*v_iter, &_slipRateVertex[0]);
-  } // for
-
-  PetscLogFlops(vertices->size() * (4 + _slipRateVertex.size()));
-} // slipIncr
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::ConstRateSlipFn::finalSlip(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/ConstRateSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -29,6 +29,8 @@
 
 #include "pylith/topology/topologyfwd.hh" // USES Fields<Field<SubMesh> >
 
+#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
+
 #include "pylith/utils/array.hh" // HASA scalar_array
 
 // ConstRateTimeFn ------------------------------------------------------
@@ -88,18 +90,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -98,18 +98,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get slip increment on fault surface from time t0 to 1.
-void
-pylith::faults::EqKinSrc::slipIncr(
-			   topology::Field<topology::SubMesh>* const slipField,
-			   const PylithScalar t0,
-			   const PylithScalar t1)
-{ // slip
-  assert(0 != _slipfn);
-  _slipfn->slipIncr(slipField, t0, t1);
-} // slip
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::EqKinSrc::finalSlip(void) const

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/EqKinSrc.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -89,16 +89,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
 
-  /** Get increment of slip on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip increment field over fault mesh.
-   * @param t0 Time for start of slip increment.
-   * @param t1 Time for end of slip increment.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* const slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -287,71 +287,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get increment of slip on fault surface between time t0 and t1.
-void
-pylith::faults::LiuCosSlipFn::slipIncr(
-				      topology::Field<topology::SubMesh>* slip,
-				      const PylithScalar t0,
-				      const PylithScalar t1)
-{ // slipIncr
-  assert(0 != slip);
-  assert(0 != _parameters);
-
-  // Get vertices in fault mesh
-  const ALE::Obj<SieveMesh>& sieveMesh = slip->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
-  assert(!vertices.isNull());
-  const label_sequence::iterator verticesBegin = vertices->begin();
-  const label_sequence::iterator verticesEnd = vertices->end();
-
-  // Get sections
-  const topology::Field<topology::SubMesh>& finalSlip = 
-    _parameters->get("final slip");
-  const ALE::Obj<RealSection>& finalSlipSection = finalSlip.section();
-  assert(!finalSlipSection.isNull());
-  const topology::Field<topology::SubMesh>& slipTime =
-    _parameters->get("slip time");
-  const ALE::Obj<RealSection>& slipTimeSection = slipTime.section();
-  assert(!slipTimeSection.isNull());
-  const topology::Field<topology::SubMesh>& riseTime =
-    _parameters->get("rise time");
-  const ALE::Obj<RealSection>& riseTimeSection = riseTime.section();
-  assert(!riseTimeSection.isNull());
-  const ALE::Obj<RealSection>& slipSection = slip->section();
-  assert(!slipSection.isNull());
-
-  const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter) {
-    finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],
-				   _slipVertex.size());
-    slipTimeSection->restrictPoint(*v_iter, &_slipTimeVertex, 1);
-    riseTimeSection->restrictPoint(*v_iter, &_riseTimeVertex, 1);
-
-    PylithScalar finalSlipMag = 0.0;
-    for (int i=0; i < spaceDim; ++i)
-      finalSlipMag += _slipVertex[i]*_slipVertex[i];
-    finalSlipMag = sqrt(finalSlipMag);
-
-    const PylithScalar slip0 = _slipFn(t0-_slipTimeVertex, finalSlipMag,
-				 _riseTimeVertex);
-    const PylithScalar slip1 = _slipFn(t1-_slipTimeVertex, finalSlipMag,
-				 _riseTimeVertex);
-    const PylithScalar scale = finalSlipMag > 0.0 ? 
-      (slip1 - slip0) / finalSlipMag : 0.0;
-    _slipVertex *= scale;
-
-    
-    // Update field
-    slipSection->updateAddPoint(*v_iter, &_slipVertex[0]);
-  } // for
-
-  PetscLogFlops(vertices->size() * (3+2*28 + 3*_slipVertex.size()));
-} // slipIncr
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::LiuCosSlipFn::finalSlip(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/LiuCosSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -29,6 +29,8 @@
 
 #include "pylith/topology/topologyfwd.hh" // USES Fields<Field<SubMesh> >
 
+#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
+
 #include "pylith/utils/array.hh" // HASA scalar_array
 
 // LiuCosSlipFn ---------------------------------------------------------
@@ -79,7 +81,6 @@
   /** Initialize slip time function.
    *
    * @param faultMesh Finite-element mesh of fault.
-   * @param cs Coordinate system for mesh
    * @param normalizer Nondimensionalization of scales.
    * @param originTime Origin time for earthquake source.
    */
@@ -97,18 +98,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/Makefile.am
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/Makefile.am	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/Makefile.am	2012-05-04 00:45:49 UTC (rev 20038)
@@ -42,6 +42,9 @@
 	StepSlipFn.icc \
 	TimeHistorySlipFn.hh \
 	TimeHistorySlipFn.icc \
+	Nucleator.hh \
+	TractPerturbation.hh \
+	StaticPerturbation.hh \
 	faultsfwd.hh
 
 noinst_HEADERS = \

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/SlipTimeFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/SlipTimeFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/SlipTimeFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -30,7 +30,6 @@
 #include "pylith/topology/topologyfwd.hh" // USES Fields<SubMesh>
 
 #include "spatialdata/units/unitsfwd.hh" // USES Nondimensional
-#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
 
 // SlipTimeFn -----------------------------------------------------------
 /**
@@ -59,7 +58,6 @@
   /** Initialize slip time function.
    *
    * @param faultMesh Finite-element mesh of fault.
-   * @param cs Coordinate system for mesh
    * @param normalizer Nondimensionalization of scales.
    * @param originTime Origin time for earthquake source.
    */
@@ -72,26 +70,11 @@
    *
    * @param slipField Slip field over fault surface.
    * @param t Time t.
-   *
-   * @returns Slip vector as left-lateral/reverse/normal.
    */
   virtual
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t) = 0;
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  virtual
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1) = 0;
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -245,54 +245,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get increment of slip on fault surface between time t0 and t1.
-void
-pylith::faults::StepSlipFn::slipIncr(topology::Field<topology::SubMesh>* slip,
-				     const PylithScalar t0,
-				     const PylithScalar t1)
-{ // slipIncr
-  assert(0 != slip);
-  assert(0 != _parameters);
-
-  // Get vertices in fault mesh
-  const ALE::Obj<SieveMesh>& sieveMesh = slip->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
-  assert(!vertices.isNull());
-  const label_sequence::iterator verticesBegin = vertices->begin();
-  const label_sequence::iterator verticesEnd = vertices->end();
-
-  // Get sections
-  const topology::Field<topology::SubMesh>& finalSlip = 
-    _parameters->get("final slip");
-  const ALE::Obj<RealSection>& finalSlipSection = finalSlip.section();
-  assert(!finalSlipSection.isNull());
-  const topology::Field<topology::SubMesh>& slipTime =
-    _parameters->get("slip time");
-  const ALE::Obj<RealSection>& slipTimeSection = slipTime.section();
-  assert(!slipTimeSection.isNull());
-  const ALE::Obj<RealSection>& slipSection = slip->section();
-  assert(!slipSection.isNull());
-
-  for (label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter) {
-    finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0], _slipVertex.size());
-    slipTimeSection->restrictPoint(*v_iter, &_slipTimeVertex, 1);
-
-    const PylithScalar relTime0 = t0 - _slipTimeVertex;
-    const PylithScalar relTime1 = t1 - _slipTimeVertex;
-    if (relTime1 < 0.0 || relTime0 >= 0.0)
-      _slipVertex = 0.0;
-    
-    // Update field
-    slipSection->updateAddPoint(*v_iter, &_slipVertex[0]);
-  } // for
-
-  PetscLogFlops(vertices->size() * 2);
-} // slipIncr
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::StepSlipFn::finalSlip(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/StepSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -27,6 +27,8 @@
 // Include directives ---------------------------------------------------
 #include "SlipTimeFn.hh"
 
+#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
+
 #include "pylith/utils/array.hh" // HASA scalar_array
 
 // StepSlipFn -----------------------------------------------------------
@@ -87,18 +89,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -271,78 +271,6 @@
 } // slip
 
 // ----------------------------------------------------------------------
-// Get increment of slip on fault surface between time t0 and t1.
-void
-pylith::faults::TimeHistorySlipFn::slipIncr(topology::Field<topology::SubMesh>* slip,
-				     const PylithScalar t0,
-				     const PylithScalar t1)
-{ // slipIncr
-  assert(0 != slip);
-  assert(0 != _parameters);
-  assert(0 != _dbTimeHistory);
-
-  // Get vertices in fault mesh
-  const ALE::Obj<SieveMesh>& sieveMesh = slip->mesh().sieveMesh();
-  assert(!sieveMesh.isNull());
-  const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
-  assert(!vertices.isNull());
-  const label_sequence::iterator verticesBegin = vertices->begin();
-  const label_sequence::iterator verticesEnd = vertices->end();
-
-  // Get sections
-  const topology::Field<topology::SubMesh>& slipAmplitude = 
-    _parameters->get("slip amplitude");
-  const ALE::Obj<RealSection>& slipAmplitudeSection = slipAmplitude.section();
-  assert(!slipAmplitudeSection.isNull());
-  const topology::Field<topology::SubMesh>& slipTime =
-    _parameters->get("slip time");
-  const ALE::Obj<RealSection>& slipTimeSection = slipTime.section();
-  assert(!slipTimeSection.isNull());
-  const ALE::Obj<RealSection>& slipSection = slip->section();
-  assert(!slipSection.isNull());
-
-  PylithScalar amplitude0 = 0.0;
-  PylithScalar amplitude1 = 0.0;
-  for (label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter) {
-    slipAmplitudeSection->restrictPoint(*v_iter, &_slipVertex[0], _slipVertex.size());
-    slipTimeSection->restrictPoint(*v_iter, &_slipTimeVertex, 1);
-
-    PylithScalar relTime0 = t0 - _slipTimeVertex;
-    PylithScalar relTime1 = t1 - _slipTimeVertex;
-    if (relTime1 < 0.0)
-      _slipVertex = 0.0;
-    else {
-      relTime0 *= _timeScale;
-      relTime1 *= _timeScale;
-      int err = _dbTimeHistory->query(&amplitude0, relTime0);
-      if (0 != err) {
-	std::ostringstream msg;
-	msg << "Error querying for time '" << relTime0
-	    << "' in time history database "
-	    << _dbTimeHistory->label() << ".";
-	throw std::runtime_error(msg.str());
-      } // if
-      err = _dbTimeHistory->query(&amplitude1, relTime1);
-      if (0 != err) {
-	std::ostringstream msg;
-	msg << "Error querying for time '" << relTime1
-	    << "' in time history database "
-	    << _dbTimeHistory->label() << ".";
-	throw std::runtime_error(msg.str());
-      } // if
-      _slipVertex *= amplitude1 - amplitude0;
-    } // else
-
-    // Update field
-    slipSection->updateAddPoint(*v_iter, &_slipVertex[0]);
-  } // for
-
-  PetscLogFlops(vertices->size() * 6);
-} // slipIncr
-
-// ----------------------------------------------------------------------
 // Get final slip.
 const pylith::topology::Field<pylith::topology::SubMesh>&
 pylith::faults::TimeHistorySlipFn::finalSlip(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/TimeHistorySlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -28,6 +28,8 @@
 // Include directives ---------------------------------------------------
 #include "SlipTimeFn.hh"
 
+#include "spatialdata/spatialdb/spatialdbfwd.hh" // USES SpatialDB
+
 #include "pylith/utils/array.hh" // HASA scalar_array
 
 // TimeHistorySlipFn -----------------------------------------------------------
@@ -76,7 +78,6 @@
   /** Initialize slip time function.
    *
    * @param faultMesh Finite-element mesh of fault.
-   * @param cs Coordinate system for mesh
    * @param normalizer Nondimensionalization of scales.
    * @param originTime Origin time for earthquake source.
    */
@@ -94,18 +95,6 @@
   void slip(topology::Field<topology::SubMesh>* const slipField,
 	    const PylithScalar t);
   
-  /** Get slip increment on fault surface between time t0 and t1.
-   *
-   * @param slipField Slip field over fault surface.
-   * @param t0 Time t.
-   * @param t1 Time t+dt.
-   * 
-   * @returns Increment in slip vector as left-lateral/reverse/normal.
-   */
-  void slipIncr(topology::Field<topology::SubMesh>* slipField,
-		const PylithScalar t0,
-		const PylithScalar t1);
-
   /** Get final slip.
    *
    * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/faultsfwd.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/faultsfwd.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/faultsfwd.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -48,6 +48,11 @@
     class StepSlipFn;
     class TimeHistorySlipFn;
 
+    class Nucleator;
+    class TractPerturbation;
+    class StaticPerturbation;
+    class SpaceTimePerturbation;
+
     class TopologyOps;
     template<typename Sieve, typename Renumbering> class ReplaceVisitor;
     template<typename Sieve> class ClassifyVisitor;

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/BruneSlipFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/BruneSlipFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/BruneSlipFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -79,18 +79,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
       
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/ConstRateSlipFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/ConstRateSlipFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/ConstRateSlipFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -73,18 +73,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
   
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/EqKinSrc.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/EqKinSrc.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/EqKinSrc.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -74,16 +74,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
 
-      /** Get increment of slip on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip increment field over fault mesh.
-       * @param t0 Time for start of slip increment.
-       * @param t1 Time for end of slip increment.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/LiuCosSlipFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/LiuCosSlipFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/LiuCosSlipFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -81,18 +81,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
   
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/SlipTimeFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/SlipTimeFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/SlipTimeFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -64,19 +64,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t) = 0;
   
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      virtual
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1) = 0;
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/StepSlipFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/StepSlipFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/StepSlipFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -73,18 +73,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
       
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/TimeHistorySlipFn.i
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/TimeHistorySlipFn.i	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/modulesrc/faults/TimeHistorySlipFn.i	2012-05-04 00:45:49 UTC (rev 20038)
@@ -79,18 +79,6 @@
       void slip(pylith::topology::Field<pylith::topology::SubMesh>* const slipField,
 		const PylithScalar t);
   
-      /** Get slip increment on fault surface between time t0 and t1.
-       *
-       * @param slipField Slip field over fault surface.
-       * @param t0 Time t.
-       * @param t1 Time t+dt.
-       * 
-       * @returns Increment in slip vector as left-lateral/reverse/normal.
-       */
-      void slipIncr(pylith::topology::Field<pylith::topology::SubMesh>* slipField,
-		    const PylithScalar t0,
-		    const PylithScalar t1);
-      
       /** Get final slip.
        *
        * @returns Final slip.

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -282,72 +282,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestBruneSlipFn::testSlipIncr(void)
-{ // testSlipIncr
-  const PylithScalar finalSlipE[] = { 2.3, 0.1, 
-				0.0, 0.0};
-  const PylithScalar slipTimeE[] = { 1.2, 1.3 };
-  const PylithScalar riseTimeE[] = { 1.4, 1.5 };
-  const PylithScalar originTime = 1.064;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  BruneSlipFn slipfn;
-  _initialize(&mesh, &faultMesh, &slipfn, originTime);
-
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 1.234;
-  const PylithScalar t1 = 3.635;
-  slipfn.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-    PylithScalar slipMag = 0.0;
-    for (int iDim=0; iDim < spaceDim; ++iDim)
-      slipMag += pow(finalSlipE[iPoint*spaceDim+iDim], 2);
-    slipMag = sqrt(slipMag);
-    const PylithScalar peakRate = slipMag / riseTimeE[iPoint] * 1.745;
-    const PylithScalar tau = 
-      (slipMag > 0.0) ? slipMag / (exp(1.0) * peakRate) : 1.0;
-    const PylithScalar tRef = slipTimeE[iPoint];
-    const PylithScalar slipNorm0 = 
-      (t0 > tRef) ? 1.0 - exp(-(t0-tRef)/tau) * (1.0 + (t0-tRef)/tau) : 0.0;
-    const PylithScalar slipNorm1 =
-      (t1 > tRef) ? 1.0 - exp(-(t1-tRef)/tau) * (1.0 + (t1-tRef)/tau) : 0.0;
-
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim) {
-      const PylithScalar slipE = 
-	finalSlipE[iPoint*spaceDim+iDim] * (slipNorm1-slipNorm0);
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE, vals[iDim], tolerance);
-    } // for
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Test _slip().
 void
 pylith::faults::TestBruneSlipFn::testSlipTH(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestBruneSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -58,7 +58,6 @@
   CPPUNIT_TEST( testInitialize2D );
   CPPUNIT_TEST( testInitialize3D );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
   CPPUNIT_TEST( testSlipTH );
 
   CPPUNIT_TEST_SUITE_END();
@@ -90,9 +89,6 @@
   /// Test slip().
   void testSlip(void);
 
-  /// Test slipIncr().
-  void testSlipIncr(void);
-
   /// Test _slip().
   void testSlipTH(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -240,59 +240,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestConstRateSlipFn::testSlipIncr(void)
-{ // testSlipIncr
-  const PylithScalar slipRateE[] = { 0.1, 0.2, 
-			       0.3, 0.4 };
-  const PylithScalar slipTimeE[] = { 1.2, 1.3 };
-  const PylithScalar originTime = 1.064;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  ConstRateSlipFn slipfn;
-  _initialize(&mesh, &faultMesh, &slipfn, originTime);
-
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 1.234;
-  const PylithScalar t1 = 3.635;
-  slipfn.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim) {
-      const PylithScalar tRef = (slipTimeE[iPoint] > t0) ? slipTimeE[iPoint] : t0;
-      const PylithScalar slipE = 
-	slipRateE[iPoint*spaceDim+iDim] * (t1 - tRef);
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE, vals[iDim], tolerance);
-    } // for
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Initialize ConstRateSlipFn.
 void
 pylith::faults::TestConstRateSlipFn::_initialize(topology::Mesh* mesh,

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestConstRateSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -57,7 +57,6 @@
   CPPUNIT_TEST( testInitialize2D );
   CPPUNIT_TEST( testInitialize3D );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
 
   CPPUNIT_TEST_SUITE_END();
 
@@ -85,9 +84,6 @@
   /// Test slip().
   void testSlip(void);
 
-  /// Test slipIncr().
-  void testSlipIncr(void);
-
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -144,72 +144,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestEqKinSrc::testSlipIncr(void)
-{ // testSlip
-  const PylithScalar finalSlipE[] = { 2.3, 0.1, 
-				2.4, 0.2};
-  const PylithScalar slipTimeE[] = { 1.2, 1.3 };
-  const PylithScalar riseTimeE[] = { 1.4, 1.5 };
-  const PylithScalar originTime = -4.29;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  EqKinSrc eqsrc;
-  BruneSlipFn slipfn;
-  _initialize(&mesh, &faultMesh, &eqsrc, &slipfn, originTime);
-  
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 1.234;
-  const PylithScalar t1 = 2.525;
-  eqsrc.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-    PylithScalar slipMag = 0.0;
-    for (int iDim=0; iDim < spaceDim; ++iDim)
-      slipMag += pow(finalSlipE[iPoint*spaceDim+iDim], 2);
-    slipMag = sqrt(slipMag);
-    const PylithScalar peakRate = slipMag / riseTimeE[iPoint] * 1.745;
-    const PylithScalar tau = slipMag / (exp(1.0) * peakRate);
-    const PylithScalar tRef = slipTimeE[iPoint];
-    const PylithScalar slipNorm0 = 
-      (t0 > tRef) ? 1.0 - exp(-(t0-tRef)/tau) * (1.0 + (t0-tRef)/tau) : 0.0;
-    const PylithScalar slipNorm1 =
-      (t1 > tRef) ? 1.0 - exp(-(t1-tRef)/tau) * (1.0 + (t1-tRef)/tau) : 0.0;
-    
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim) {
-      const PylithScalar slipE = 
-	finalSlipE[iPoint*spaceDim+iDim] * (slipNorm1 - slipNorm0);
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE, vals[iDim], tolerance);
-    } // for
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Initialize EqKinSrc.
 void
 pylith::faults::TestEqKinSrc::_initialize(topology::Mesh* mesh,

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestEqKinSrc.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -50,7 +50,6 @@
   CPPUNIT_TEST( testSlipFn );
   CPPUNIT_TEST( testInitialize );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
 
   CPPUNIT_TEST_SUITE_END();
 
@@ -71,10 +70,6 @@
   /// slip().
   void testSlip(void);
 
-  /// Test slipIncr(). Use 2-D mesh with Brune slip function to test
-  /// slip().
-  void testSlipIncr(void);
-
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -282,71 +282,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestLiuCosSlipFn::testSlipIncr(void)
-{ // testSlipIncr
-  const PylithScalar finalSlipE[] = { 2.3, 0.1, 
-				0.0, 0.0};
-  const PylithScalar slipTimeE[] = { 1.2, 1.3 };
-  const PylithScalar riseTimeE[] = { 1.4, 1.5 };
-  const PylithScalar originTime = 1.064;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  LiuCosSlipFn slipfn;
-  _initialize(&mesh, &faultMesh, &slipfn, originTime);
-
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 1.234;
-  const PylithScalar t1 = 3.635;
-  slipfn.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-    PylithScalar slipMag = 0.0;
-    for (int iDim=0; iDim < spaceDim; ++iDim)
-      slipMag += pow(finalSlipE[iPoint*spaceDim+iDim], 2);
-    slipMag = sqrt(slipMag);
-
-    const PylithScalar slipNorm0 = (slipMag > 0.0) ?
-      _slipFn(t0 - slipTimeE[iPoint], slipMag, riseTimeE[iPoint]) / slipMag :
-      0.0;
-    const PylithScalar slipNorm1 = (slipMag > 0.0) ?
-      _slipFn(t1 - slipTimeE[iPoint], slipMag, riseTimeE[iPoint]) / slipMag :
-      0.0;
-
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim) {
-      const PylithScalar slipE = 
-	finalSlipE[iPoint*spaceDim+iDim] * (slipNorm1-slipNorm0);
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE, vals[iDim], tolerance);
-    } // for
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Test _slip().
 void
 pylith::faults::TestLiuCosSlipFn::testSlipTH(void)

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestLiuCosSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -58,7 +58,6 @@
   CPPUNIT_TEST( testInitialize2D );
   CPPUNIT_TEST( testInitialize3D );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
   CPPUNIT_TEST( testSlipTH );
 
   CPPUNIT_TEST_SUITE_END();
@@ -90,9 +89,6 @@
   /// Test slip().
   void testSlip(void);
 
-  /// Test slipIncr().
-  void testSlipIncr(void);
-
   /// Test _slip().
   void testSlipTH(void);
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -236,55 +236,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestStepSlipFn::testSlipIncr(void)
-{ // testSlipIncr
-  const PylithScalar slipE[] = { 0.0, 0.0, 
-			   2.4, 0.2};
-  const PylithScalar originTime = 1.064;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  StepSlipFn slipfn;
-  _initialize(&mesh, &faultMesh, &slipfn, originTime);
-
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 1.234;
-  const PylithScalar t1 = 2.525;
-  slipfn.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE[iPoint*spaceDim+iDim], vals[iDim], 
-				   tolerance);
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Initialize StepSlipFn.
 void
 pylith::faults::TestStepSlipFn::_initialize(topology::Mesh* mesh,

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestStepSlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -57,7 +57,6 @@
   CPPUNIT_TEST( testInitialize2D );
   CPPUNIT_TEST( testInitialize3D );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
 
   CPPUNIT_TEST_SUITE_END();
 
@@ -85,9 +84,6 @@
   /// Test slip().
   void testSlip(void);
 
-  /// Test slipIncr().
-  void testSlipIncr(void);
-
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
 

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.cc	2012-05-04 00:45:49 UTC (rev 20038)
@@ -266,58 +266,6 @@
 } // testSlip
 
 // ----------------------------------------------------------------------
-// Test slipIncr().
-void
-pylith::faults::TestTimeHistorySlipFn::testSlipIncr(void)
-{ // testSlipIncr
-  const PylithScalar slipTimeE[] = { 1.2, 1.3 };
-  const PylithScalar slipE[] = { 0.92, 0.04, 
-			   0.984, 0.082};
-  const PylithScalar originTime = 1.064;
-
-  topology::Mesh mesh;
-  topology::SubMesh faultMesh;
-  TimeHistorySlipFn slipfn;
-  spatialdata::spatialdb::TimeHistory th;
-  _initialize(&mesh, &faultMesh, &slipfn, &th, originTime);
-
-  const spatialdata::geocoords::CoordSys* cs = faultMesh.coordsys();
-  CPPUNIT_ASSERT(0 != cs);
-
-  const int spaceDim = cs->spaceDim();
-  const ALE::Obj<SieveSubMesh>& faultSieveMesh = faultMesh.sieveMesh();
-  CPPUNIT_ASSERT(!faultSieveMesh.isNull());
-  const ALE::Obj<SieveMesh::label_sequence>& vertices =
-    faultSieveMesh->depthStratum(0);
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-  topology::Field<topology::SubMesh> slip(faultMesh);
-  slip.newSection(vertices, spaceDim);
-  slip.allocate();
-
-  const PylithScalar t0 = 3.2;
-  const PylithScalar t1 = 9.7;
-  slipfn.slipIncr(&slip, originTime+t0, originTime+t1);
-
-  const PylithScalar tolerance = 1.0e-06;
-  int iPoint = 0;
-  const ALE::Obj<RealSection>& slipSection = slip.section();
-  CPPUNIT_ASSERT(!slipSection.isNull());
-  for (SieveMesh::label_sequence::iterator v_iter=vertices->begin();
-       v_iter != verticesEnd;
-       ++v_iter, ++iPoint) {
-
-    const int fiberDim = slipSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(spaceDim, fiberDim);
-    const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != vals);
-
-    for (int iDim=0; iDim < fiberDim; ++iDim)
-      CPPUNIT_ASSERT_DOUBLES_EQUAL(slipE[iPoint*spaceDim+iDim],
-				   vals[iDim], tolerance);
-  } // for
-} // testSlipIncr
-
-// ----------------------------------------------------------------------
 // Initialize TimeHistorySlipFn.
 void
 pylith::faults::TestTimeHistorySlipFn::_initialize(topology::Mesh* mesh,

Modified: short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh	2012-05-03 22:36:07 UTC (rev 20037)
+++ short/3D/PyLith/branches/v1.7-trunk/unittests/libtests/faults/TestTimeHistorySlipFn.hh	2012-05-04 00:45:49 UTC (rev 20038)
@@ -59,7 +59,6 @@
   CPPUNIT_TEST( testInitialize2D );
   CPPUNIT_TEST( testInitialize3D );
   CPPUNIT_TEST( testSlip );
-  CPPUNIT_TEST( testSlipIncr );
 
   CPPUNIT_TEST_SUITE_END();
 
@@ -90,9 +89,6 @@
   /// Test slip().
   void testSlip(void);
 
-  /// Test slipIncr().
-  void testSlipIncr(void);
-
   // PRIVATE METHODS ////////////////////////////////////////////////////
 private :
 



More information about the CIG-COMMITS mailing list