[cig-commits] r19162 - in short/3D/PyLith/trunk: . doc/releasenotes libsrc/pylith/faults tests/3d/cyclicfriction unittests/libtests/faults unittests/libtests/faults/data

brad at geodynamics.org brad at geodynamics.org
Tue Nov 8 12:20:46 PST 2011


Author: brad
Date: 2011-11-08 12:20:46 -0800 (Tue, 08 Nov 2011)
New Revision: 19162

Added:
   short/3D/PyLith/trunk/doc/releasenotes/announce_v1.6.2.txt
   short/3D/PyLith/trunk/tests/3d/cyclicfriction/output/
Modified:
   short/3D/PyLith/trunk/configure.ac
   short/3D/PyLith/trunk/doc/releasenotes/Makefile.am
   short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/trunk/setup.py
   short/3D/PyLith/trunk/tests/3d/cyclicfriction/Makefile.am
   short/3D/PyLith/trunk/tests/3d/cyclicfriction/pylithapp.cfg
   short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.hh
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc
   short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh
Log:
Merge from stable.

Modified: short/3D/PyLith/trunk/configure.ac
===================================================================
--- short/3D/PyLith/trunk/configure.ac	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/configure.ac	2011-11-08 20:20:46 UTC (rev 19162)
@@ -17,7 +17,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([PyLith], [1.6.2], [cig-short at geodynamics.org])
+AC_INIT([PyLith], [1.7.0], [cig-short at geodynamics.org])
 AC_CONFIG_AUX_DIR([./aux-config])
 AC_CONFIG_HEADER([portinfo])
 AC_CONFIG_MACRO_DIR([m4])
@@ -325,6 +325,8 @@
 		tests/3d/Makefile
 		tests/3d/matprops/Makefile
 		tests/3d/slipdir/Makefile
+		tests/3d/cyclicfriction/Makefile
+		tests/3d/cyclicfriction/output/Makefile
 		tests/3d/plasticity/Makefile
 		tests/3d/plasticity/threehex27/Makefile
 		tests/3d/plasticity/threehex27/config/Makefile

Modified: short/3D/PyLith/trunk/doc/releasenotes/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/doc/releasenotes/Makefile.am	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/doc/releasenotes/Makefile.am	2011-11-08 20:20:46 UTC (rev 19162)
@@ -28,7 +28,9 @@
 	announce_v1.5.0.txt \
 	announce_v1.5.1.txt \
 	announce_v1.5.2.txt \
-	announce_v1.6.0.txt
+	announce_v1.6.0.txt \
+	announce_v1.6.1.txt \
+	announce_v1.6.2.txt
 
 
 # End of file 

Copied: short/3D/PyLith/trunk/doc/releasenotes/announce_v1.6.2.txt (from rev 19158, short/3D/PyLith/branches/v1.6-stable/doc/releasenotes/announce_v1.6.2.txt)
===================================================================
--- short/3D/PyLith/trunk/doc/releasenotes/announce_v1.6.2.txt	                        (rev 0)
+++ short/3D/PyLith/trunk/doc/releasenotes/announce_v1.6.2.txt	2011-11-08 20:20:46 UTC (rev 19162)
@@ -0,0 +1,71 @@
+Greetings,
+
+I am pleased to announce the release of PyLith 1.6.2, a finite-element
+code designed to solve dynamic elastic problems and quasi-static
+viscoelastic problems in tectonic deformation.
+
+This release fixes several bugs in PyLith v1.6.1. We strongly
+recommend all users of previous PyLith releases switch to this latest
+release, especially anyone running in parallel or using fault friction.
+
+You can download the source code and binaries from
+
+    http://geodynamics.org/cig/software/packages/short/pylith
+
+Detailed installation instructions for the binary packages are in the
+User Manual with detailed building instructions for a few platforms
+in the INSTALL file bundled with the PyLith Installer utility.
+
+
+RELEASE NOTES
+
+* Internal changes
+
+  - Fault implementation
+
+    Several changes have been made to the fault implementation, but
+    none of these affect the user interface. The runtime performance
+    is nearly identical with improved accuracy for spontaneous rupture
+    (fault friction) simulations. These changes involved switching to
+    using tractions (non-integrated quantities) for the Lagrange
+    multipliers in the global coordinate system rather than integrated
+    quantities in the fault coordinate system. Additionally, initial
+    fault tractions are associated with the fault vertices and their
+    interpolation uses the finite-element basis functions.
+
+  - Distribution of mesh among processors
+
+    The data structures used to distribute the mesh among processors
+    have been improved. This reduces memory use and runtime for this
+    stage of the simulations.
+
+
+* Bug fixes
+
+  - Fixed bug in writing HDF5 files in parallel when one processor
+    does not write any information (e.g., faults and boundary
+    conditions).
+
+  - Added dimensioning of time dataset in HDF5 files. The units are
+    now seconds rather than nondimensional time.
+
+  - Fixed memory allocation error (std::bad_alloc) when a processor
+    did not contain cells for a boundary condition or output. This bug
+    did not show up on all architectures.
+
+  - Increased robustness of spontaneous rupture (fault friction)
+    implementation to broaden the range of conditions it can
+    handle. The implementation now properly handles cases with fault
+    opening and cases with zero shear or normal tractions.
+    
+
+KNOWN ISSUES
+
+  The custom line search used with the PETSc nonlinear solver (SNES)
+  has difficulty handling cases with fault opening when the fault
+  normal tractions are much larger than the fault shear tractions. The
+  direction of the line search tends to be nearly orthogonal to the
+  residual, resulting in extremely poor convergence. We plan to
+  improve the line search algorithm in a future release in order to
+  resolve this issue and improve the rate of convergence in
+  spontaneous rupture simulations.

Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -808,15 +808,6 @@
     dLagrangeTpdtSection->restrictPoint(v_fault, &dLagrangeTpdtVertex[0],
 					dLagrangeTpdtVertex.size());
 
-    // Solution only changes if Lagrange multiplier changed, so skip
-    // updates if change in Lagrange multiplier is zero.
-    PylithScalar dLagrangeMag = 0.0;
-    for (int iDim=0; iDim < spaceDim; ++iDim)
-      dLagrangeMag += dLagrangeTpdtVertex[iDim]*dLagrangeTpdtVertex[iDim];
-    if (0.0 == dLagrangeMag) {
-      continue; // No change, so continue
-    } // if
-
     // Get change in relative displacement from sensitivity solve.
     assert(spaceDim == sensDispRelSection->getFiberDimension(v_fault));
     const PylithScalar* sensDispRelVertex = 

Modified: short/3D/PyLith/trunk/setup.py
===================================================================
--- short/3D/PyLith/trunk/setup.py	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/setup.py	2011-11-08 20:20:46 UTC (rev 19162)
@@ -22,7 +22,7 @@
 setup(
     
     name = 'PyLith', 
-    version = '1.6.2',
+    version = '1.7.0',
 
     zip_safe = False,
     packages = find_packages(),

Modified: short/3D/PyLith/trunk/tests/3d/cyclicfriction/Makefile.am
===================================================================
--- short/3D/PyLith/trunk/tests/3d/cyclicfriction/Makefile.am	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/tests/3d/cyclicfriction/Makefile.am	2011-11-08 20:20:46 UTC (rev 19162)
@@ -17,9 +17,16 @@
 #
 
 dist_noinst_DATA = \
+	geometry.jou \
+	hex8_1000m.jou \
+	hex8_1000m.exo \
 	pylithapp.cfg \
-	matprops.spatialdb \
+	fieldsplit.cfg \
+	initial_tractions.spatialdb \
 	cycle.timedb
 
+SUBDIRS = \
+	output
 
+
 # End of file 

Copied: short/3D/PyLith/trunk/tests/3d/cyclicfriction/output (from rev 19160, short/3D/PyLith/branches/v1.6-stable/tests/3d/cyclicfriction/output)

Modified: short/3D/PyLith/trunk/tests/3d/cyclicfriction/pylithapp.cfg
===================================================================
--- short/3D/PyLith/trunk/tests/3d/cyclicfriction/pylithapp.cfg	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/tests/3d/cyclicfriction/pylithapp.cfg	2011-11-08 20:20:46 UTC (rev 19162)
@@ -74,7 +74,7 @@
 db_change = spatialdata.spatialdb.UniformDB
 db_change.label = Amplitude of Dirichlet BC on +x
 db_change.values = [displacement-x,displacement-y,displacement-z,change-start-time]
-db_change.data = [-0.2*m,0.5*m,0.0*m,0.0*hour]
+db_change.data = [-0.2*m,-0.4*m,0.0*m,0.0*hour]
 
 th_change = spatialdata.spatialdb.TimeHistory
 th_change.label = Time history of tidal load
@@ -89,7 +89,7 @@
 db_change = spatialdata.spatialdb.UniformDB
 db_change.label = Amplitude of Dirichlet BC on -x
 db_change.values = [displacement-x,displacement-y,displacement-z,change-start-time]
-db_change.data = [+0.2*m,-0.5*m,0.0*m,0.0*hour]
+db_change.data = [+0.2*m,+0.4*m,0.0*m,0.0*hour]
 
 th_change = spatialdata.spatialdb.TimeHistory
 th_change.label = Time history of tidal load

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -232,7 +232,7 @@
       fields.get("dispIncr(t->t+dt)").section();
     CPPUNIT_ASSERT(!dispIncrSection.isNull());
 
-    //dispIncrSection->view("DISP INCREMENT"); // DEBUGGING
+    dispIncrSection->view("DISP INCREMENT"); // DEBUGGING
 
     // Get expected values
     const PylithScalar* valsE = _data->fieldIncrStick; // No change in dispIncr
@@ -277,23 +277,37 @@
       fault.vertexField("slip").section();
     CPPUNIT_ASSERT(!slipSection.isNull());
 
-    const PylithScalar valE = 0.0; // slip should be zero
+    //slipSection->view("SLIP"); // DEBUGGING
+
+    // Get expected values
+    CPPUNIT_ASSERT(_data->slipStickE);
+    const PylithScalar* valsE = _data->slipStickE;
     int iVertex = 0; // variable to use as index into valsE array
     const int fiberDimE = spaceDim; // number of values per point
     const PylithScalar tolerance = 1.0e-06;
-    for (SieveMesh::label_sequence::iterator v_iter = verticesBegin; v_iter
-	   != verticesEnd;
+    for (SieveMesh::label_sequence::iterator v_iter = verticesBegin; 
+	 v_iter != verticesEnd;
 	 ++v_iter, ++iVertex) { // loop over fault vertices
       // Check fiber dimension (number of values at point)
       const int fiberDim = slipSection->getFiberDimension(*v_iter);
       CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
       const PylithScalar* vals = slipSection->restrictPoint(*v_iter);
-      CPPUNIT_ASSERT(0 != vals);
+      CPPUNIT_ASSERT(vals);
 
       // Check values at point
       for (int i = 0; i < fiberDimE; ++i) {
         const int index = iVertex * spaceDim + i;
-	CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
+        const PylithScalar valE = valsE[index];
+#if 0 // DEBUGGING
+	std::cout << "SLIP valE: " << valE
+		  << ", val: " << vals[i]
+		  << ", error: " << fabs(1.0-vals[i]/valE)
+		  << std::endl;
+#endif // DEBUGGING
+        if (fabs(valE) > tolerance)
+	  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
+        else
+	  CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
       } // for
     } // for
   } // Check slip values
@@ -321,6 +335,54 @@
   fault.timeStep(dt);
   fault.constrainSolnSpace(&fields, t, jacobian);
 
+  { // Check solution values
+    // Lagrange multipliers should be adjusted according to friction
+    // as reflected in the fieldIncrSlipE data member.
+    const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
+    CPPUNIT_ASSERT(!sieveMesh.isNull());
+    const ALE::Obj<SieveMesh::label_sequence>& vertices =
+      sieveMesh->depthStratum(0);
+    CPPUNIT_ASSERT(!vertices.isNull());
+    const SieveMesh::label_sequence::iterator verticesBegin = vertices->begin();
+    const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
+
+    // Get section containing solution (disp + Lagrange multipliers)
+    const ALE::Obj<RealSection>& dispIncrSection =
+      fields.get("dispIncr(t->t+dt)").section();
+    CPPUNIT_ASSERT(!dispIncrSection.isNull());
+
+    // Get expected values
+    const PylithScalar* valsE = _data->fieldIncrSlipE; // Expected values for dispIncr
+    int iVertex = 0; // variable to use as index into valsE array
+    const int fiberDimE = spaceDim; // number of values per point
+    const PylithScalar tolerance = 1.0e-06;
+    for (SieveMesh::label_sequence::iterator v_iter = verticesBegin;
+	 v_iter != verticesEnd;
+	 ++v_iter, ++iVertex) { // loop over all vertices in mesh
+      // Check fiber dimension (number of values at point)
+      const int fiberDim = dispIncrSection->getFiberDimension(*v_iter);
+      CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
+      const PylithScalar* vals = dispIncrSection->restrictPoint(*v_iter);
+      CPPUNIT_ASSERT(0 != vals);
+
+      // Check values at point
+      for (int i = 0; i < fiberDimE; ++i) {
+        const int index = iVertex * spaceDim + i;
+        const PylithScalar valE = valsE[index];
+#if 0 // DEBUGGING
+	std::cout << "SOLUTION valE: " << valE
+		  << ", val: " << vals[i]
+		  << ", error: " << fabs(1.0-vals[i]/valE)
+		  << std::endl;
+#endif // DEBUGGING
+	if (fabs(valE) > tolerance)
+	  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
+        else
+	  CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
+      } // for
+    } // for
+  } // Check solution values
+
   { // Check slip values
     // Slip values should be adjusted based on the change in the
     // Lagrange multipliers as reflected in the slipSlipE data member.
@@ -374,54 +436,6 @@
     } // for
   } // Check slip values
 
-  { // Check solution values
-    // Lagrange multipliers should be adjusted according to friction
-    // as reflected in the fieldIncrSlipE data member.
-    const ALE::Obj<SieveMesh>& sieveMesh = mesh.sieveMesh();
-    CPPUNIT_ASSERT(!sieveMesh.isNull());
-    const ALE::Obj<SieveMesh::label_sequence>& vertices =
-      sieveMesh->depthStratum(0);
-    CPPUNIT_ASSERT(!vertices.isNull());
-    const SieveMesh::label_sequence::iterator verticesBegin = vertices->begin();
-    const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
-
-    // Get section containing solution (disp + Lagrange multipliers)
-    const ALE::Obj<RealSection>& dispIncrSection =
-      fields.get("dispIncr(t->t+dt)").section();
-    CPPUNIT_ASSERT(!dispIncrSection.isNull());
-
-    // Get expected values
-    const PylithScalar* valsE = _data->fieldIncrSlipE; // Expected values for dispIncr
-    int iVertex = 0; // variable to use as index into valsE array
-    const int fiberDimE = spaceDim; // number of values per point
-    const PylithScalar tolerance = (sizeof(double) == sizeof(PylithScalar)) ? 1.0e-06 : 1.0e-05;
-    for (SieveMesh::label_sequence::iterator v_iter = verticesBegin;
-	 v_iter != verticesEnd;
-	 ++v_iter, ++iVertex) { // loop over all vertices in mesh
-      // Check fiber dimension (number of values at point)
-      const int fiberDim = dispIncrSection->getFiberDimension(*v_iter);
-      CPPUNIT_ASSERT_EQUAL(fiberDimE, fiberDim);
-      const PylithScalar* vals = dispIncrSection->restrictPoint(*v_iter);
-      CPPUNIT_ASSERT(0 != vals);
-
-      // Check values at point
-      for (int i = 0; i < fiberDimE; ++i) {
-        const int index = iVertex * spaceDim + i;
-        const PylithScalar valE = valsE[index];
-#if 0 // DEBUGGING
-	std::cout << "SOLUTION valE: " << valE
-		  << ", val: " << vals[i]
-		  << ", error: " << fabs(1.0-vals[i]/valE)
-		  << std::endl;
-#endif // DEBUGGING
-	if (fabs(valE) > tolerance)
-	  CPPUNIT_ASSERT_DOUBLES_EQUAL(1.0, vals[i]/valE, tolerance);
-        else
-	  CPPUNIT_ASSERT_DOUBLES_EQUAL(valE, vals[i], tolerance);
-      } // for
-    } // for
-  } // Check solution values
-
 } // testConstrainSolnSpaceSlip
 
 // ----------------------------------------------------------------------

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -42,6 +42,7 @@
   orientation(0),
   initialTractions(0),
   area(0),
+  slipStickE(0),
   fieldIncrSlipE(0),
   slipSlipE(0),
   fieldIncrOpenE(0),

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynData.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -78,6 +78,7 @@
   PylithScalar* orientation; ///< Expected values for fault orientation.
   PylithScalar* area; ///< Expected values for fault area.
   PylithScalar* initialTractions; ///< Expected values for initial tractions.
+  PylithScalar* slipStickE; ///< Expected values for slip for sticking case.
   PylithScalar* fieldIncrSlipE; ///< Expected values for solution increment for slipping case.
   PylithScalar* slipSlipE; ///< Expected values for slip for slipping case.
   PylithScalar* fieldIncrOpenE; ///< Expected values for solution increment for opening case.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -1128,18 +1128,23 @@
   0.0, 2.0, 1.0,
   1.1, 3.1, 2.1,
   1.2, 3.2, 2.2,
-  1.3, 3.3, 2.3, // 14
-  1.5, 3.5, 2.5, // 15
-  1.7, 3.7, 2.7, // 16
-  1.9, 3.9, 2.9, // 17
-  41.4, 3.4, 2.4, // 18
-  41.6, 3.6, 2.6, // 19
-  41.8, 3.8, 2.8, // 20
-  41.0, 3.0, 2.0, // 21
+  0.5, 3.3, 2.3, // 14
+  0.6, 3.5, 2.5, // 15
+  0.7, 3.7, 2.7, // 16
+  0.8, 3.9, 2.9, // 17
+  12.266666666667,  3.6, 4.6, // 18
+  12.066666666667,  5.4, 2.4, // 19
+  16.866666666667,  2.2, 8.2, // 20
+  17.666666666667, 10.0, 2.0, // 21
 };
 
-// No change in fieldIncr
-// Zero slip
+// No slip
+const PylithScalar pylith::faults::CohesiveDynDataHex8::_slipStickE[] = {
+  -0.8,  0.8,  0.0,
+  -0.9,  0.9,  0.0,
+  -1.0,  1.0,  0.0,
+  -1.1,  1.1,  0.0,
+};
 
 // ----------------------------------------------------------------------
 // Slip case
@@ -1285,6 +1290,7 @@
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
+  slipStickE = const_cast<PylithScalar*>(_slipStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataHex8.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -68,6 +68,7 @@
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
+  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
   static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
   static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
   static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -302,14 +302,17 @@
   1.4, 2.4, // 5
   1.5, 2.5,
   1.6, 2.6,
-  1.7, 2.7, // 8
-  1.9, 2.9, // 9
-  21.8, 2.8, // 10
-  21.0, 2.0, // 11
+  1.3, 2.7, // 8
+  1.4, 2.9, // 9
+  11.2, 2.20, // 10
+  16.0, 5.40, // 11
 };
 
-// No change in fieldIncr
-// Zero slip
+// No change in slip
+const PylithScalar pylith::faults::CohesiveDynDataQuad4::_slipStickE[] = {
+ -0.4,  0.0,
+ -0.5,  0.0,
+};
 
 // ----------------------------------------------------------------------
 // Slip case
@@ -411,6 +414,7 @@
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
+  slipStickE = const_cast<PylithScalar*>(_slipStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataQuad4.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -68,6 +68,7 @@
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
+  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
   static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
   static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
   static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -506,16 +506,20 @@
   1.3, 2.3, 3.3, // 4
   1.4, 2.4, 3.4, // 5
   1.5, 2.5, 3.5,
-  1.6, 2.6, 3.6, // 7
-  1.8, 2.8, 3.8, // 8
-  1.0, 2.0, 3.0, // 9
+  1.2, 2.2, 3.2, // 7
+  1.3, 2.3, 3.3, // 8
+  1.4, 2.4, 3.4, // 9
   41.7, 2.7, 3.7, // 10
   41.9, 2.9, 3.9, // 11
   41.1, 2.1, 3.1, // 12
 };
 
-// No change in fieldIncr
-// Zero slip
+// No slip
+const PylithScalar pylith::faults::CohesiveDynDataTet4::_slipStickE[] = {
+  0.0,  0.0,  0.0,
+  0.0,  0.0,  0.0,
+  0.0,  0.0,  0.0,
+};
 
 // ----------------------------------------------------------------------
 // Slip case
@@ -623,6 +627,7 @@
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
+  slipStickE = const_cast<PylithScalar*>(_slipStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTet4.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -68,6 +68,7 @@
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
+  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
   static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
   static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
   static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -276,8 +276,11 @@
   21.8, 2.8, // 9
 };
 
-// No change in fieldIncr
-// Zero slip
+// No slip
+const PylithScalar pylith::faults::CohesiveDynDataTri3::_slipStickE[] = {
+ 0.0,  0.0,
+ 0.0,  0.0,
+};
 
 // ----------------------------------------------------------------------
 // Slip case
@@ -371,6 +374,7 @@
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
+  slipStickE = const_cast<PylithScalar*>(_slipStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -68,6 +68,7 @@
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
+  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
   static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
   static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
   static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.cc	2011-11-08 20:20:46 UTC (rev 19162)
@@ -454,16 +454,20 @@
   1.4, 2.4,
   1.5, 2.5, // 8
   1.6, 2.6,
-  1.7, 2.7, // 10
-  1.9, 2.9, // 11
-  2.1, 2.1, // 12
+  1.2, 2.2, // 10
+  1.3, 2.3, // 11
+  1.5, 2.5, // 12
   21.8, 22.8, // 13
   21.0, 2.0, // 14
   2.2, 22.2, // 15
 };
 
-// No change in fieldIncr
-// Zero slip
+// No slip
+const PylithScalar pylith::faults::CohesiveDynDataTri3d::_slipStickE[] = {
+ 0.0,  0.0,
+ 0.0,  0.0,
+ 0.0,  0.0,
+};
 
 // ----------------------------------------------------------------------
 // Slip case
@@ -575,6 +579,7 @@
 
   // Stick
   fieldIncrStick = const_cast<PylithScalar*>(_fieldIncrStick);
+  slipStickE = const_cast<PylithScalar*>(_slipStickE);
 
   // Slip
   fieldIncrSlip = const_cast<PylithScalar*>(_fieldIncrSlip);

Modified: short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh
===================================================================
--- short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh	2011-11-08 20:18:21 UTC (rev 19161)
+++ short/3D/PyLith/trunk/unittests/libtests/faults/data/CohesiveDynDataTri3d.hh	2011-11-08 20:20:46 UTC (rev 19162)
@@ -68,6 +68,7 @@
   static const PylithScalar _orientation[]; ///< Expected values for fault orientation.
   static const PylithScalar _area[]; ///< Expected values for fault area.
   static const PylithScalar _initialTractions[]; ///< Expected values for initial tractions.
+  static const PylithScalar _slipStickE[]; ///< Expected values for slip for stick case.
   static const PylithScalar _fieldIncrSlipE[]; ///< Expected values for solution increment for slip case.
   static const PylithScalar _slipSlipE[]; ///< Expected values for slip for slip case.
   static const PylithScalar _fieldIncrOpenE[]; ///< Expected values for solution increment for opening case.



More information about the CIG-COMMITS mailing list