[cig-commits] r18923 - in short/3D/PyLith/branches/v1.6-revisedfault: libsrc/pylith/faults libsrc/pylith/friction libsrc/pylith/problems unittests/libtests/faults

brad at geodynamics.org brad at geodynamics.org
Fri Sep 16 12:13:46 PDT 2011


Author: brad
Date: 2011-09-16 12:13:45 -0700 (Fri, 16 Sep 2011)
New Revision: 18923

Modified:
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.cc
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.hh
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveLagrange.cc
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.cc
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.hh
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.cc
   short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.hh
   short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveDyn.cc
   short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveKin.cc
Log:
Merge from stable.

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -131,7 +131,7 @@
   assert(0 != _faultMesh);
   assert(0 != _fields);
   _friction->normalizer(*_normalizer);
-  _friction->initialize(*_faultMesh, _quadrature, _fields->get("area"));
+  _friction->initialize(*_faultMesh, _quadrature);
 
   const spatialdata::geocoords::CoordSys* cs = mesh.coordsys();
   assert(0 != cs);
@@ -258,9 +258,6 @@
       _fields->get("slip rate").section();
   assert(!slipRateSection.isNull());
 
-  const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
-  assert(!areaSection.isNull());
-
   double_array lagrangeTVertex(spaceDim);
   const ALE::Obj<RealSection>& dispTSection = fields->get("disp(t)").section();
   assert(!dispTSection.isNull());
@@ -284,11 +281,6 @@
     slipRateSection->restrictPoint(v_fault, &slipRateVertex[0],
       slipRateVertex.size());
 
-    // Get total fault area asssociated with vertex (assembled over all cells)
-    const double* areaVertex = areaSection->restrictPoint(v_fault);
-    assert(0 != areaVertex);
-    assert(1 == areaSection->getFiberDimension(v_fault));
-
     // Get Lagrange multiplier values from disp(t), and dispIncr(t->t+dt)
     dispTSection->restrictPoint(v_lagrange, &lagrangeTVertex[0],
       lagrangeTVertex.size());
@@ -298,12 +290,10 @@
     // Compute Lagrange multiplier at time t+dt
     lagrangeTpdtVertex = lagrangeTVertex + lagrangeTIncrVertex;
 
-    // :KLUDGE: Solution at Lagrange constraint vertices is the
+    // :TODO: FIX THIS
+    // Solution at Lagrange constraint vertices is the
     // Lagrange multiplier value, which is currently the force.
     // Compute traction by dividing force by area
-    assert(*areaVertex > 0);
-    tractionTVertex = lagrangeTVertex / (*areaVertex);
-    tractionTpdtVertex = lagrangeTpdtVertex / (*areaVertex);
 
     // Get friction properties and state variables.
     _friction->retrievePropsStateVars(v_fault);
@@ -356,8 +346,7 @@
     (double_array*,
      const double_array&,
      const double_array&,
-     const double_array&,
-     const double);
+     const double_array&);
 
   assert(0 != fields);
   assert(0 != _quadrature);
@@ -389,9 +378,6 @@
       _fields->get("slip rate").section();
   assert(!slipRateSection.isNull());
 
-  const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
-  assert(!areaSection.isNull());
-
   double_array orientationVertex(spaceDim * spaceDim);
   const ALE::Obj<RealSection>& orientationSection =
       _fields->get("orientation").section();
@@ -439,7 +425,6 @@
 #if 0 // DEBUGGING
   slipSection->view("SLIP");
   slipRateSection->view("SLIP RATE");
-  //areaSection->view("AREA");
   //dispTSection->view("DISP (t)");
   //dispTIncrSection->view("DISP INCR (t->t+dt)");
 #endif
@@ -456,11 +441,6 @@
     slipRateSection->restrictPoint(v_fault, &slipRateVertex[0],
       slipRateVertex.size());
 
-    // Get total fault area asssociated with vertex (assembled over all cells)
-    const double* areaVertex = areaSection->restrictPoint(v_fault);
-    assert(0 != areaVertex);
-    assert(1 == areaSection->getFiberDimension(v_fault));
-
     // Get Lagrange multiplier values from disp(t), and dispIncr(t->t+dt)
     dispTSection->restrictPoint(v_lagrange, &lagrangeTVertex[0],
       lagrangeTVertex.size());
@@ -471,12 +451,10 @@
     lagrangeTpdtVertex = lagrangeTVertex + lagrangeTIncrVertex;
     dLagrangeTpdtVertex = 0.0;
 
+    // :TODO: FIX THIS
     // :KLUDGE: Solution at Lagrange constraint vertices is the
     // Lagrange multiplier value, which is currently the force.
     // Compute traction by dividing force by area
-    assert(*areaVertex > 0);
-    tractionTVertex = lagrangeTVertex / (*areaVertex);
-    tractionTpdtVertex = lagrangeTpdtVertex / (*areaVertex);
 
     // Get friction properties and state variables.
     _friction->retrievePropsStateVars(v_fault);
@@ -486,7 +464,7 @@
     CALL_MEMBER_FN(*this,
 		   constrainSolnSpaceFn)(&dLagrangeTpdtVertex,
 					 slipVertex, slipRateVertex,
-					 tractionTpdtVertex, *areaVertex);
+					 tractionTpdtVertex);
 
     assert(dLagrangeTpdtVertex.size() ==
         dLagrangeTpdtSection->getFiberDimension(v_fault));
@@ -616,8 +594,7 @@
     (double_array*,
      const double_array&,
      const double_array&,
-     const double_array&,
-     const double);
+     const double_array&);
 
   /// Member prototype for _sensitivitySolveLumpedXD()
   typedef void (pylith::faults::FaultCohesiveDyn::*sensitivitySolveLumped_fn_type)
@@ -684,9 +661,6 @@
       _fields->get("slip rate").section();
   assert(!slipRateSection.isNull());
 
-  const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
-  assert(!areaSection.isNull());
-
   double_array orientationVertex(orientationSize);
   const ALE::Obj<RealSection>& orientationSection =
       _fields->get("orientation").section();
@@ -784,11 +758,6 @@
     slipRateSection->restrictPoint(v_fault, &slipRateVertex[0],
 				   slipRateVertex.size());
     
-    // Get total fault area asssociated with vertex (assembled over all cells)
-    const double* areaVertex = areaSection->restrictPoint(v_fault);
-    assert(0 != areaVertex);
-    assert(1 == areaSection->getFiberDimension(v_fault));
-    
     // Get fault orientation
     orientationSection->restrictPoint(v_fault, &orientationVertex[0],
 				      orientationVertex.size());
@@ -841,12 +810,15 @@
     lagrangeTpdtVertex = lagrangeTVertex + lagrangeTIncrVertex;
     dLagrangeTpdtVertex = 0.0;
     
+    // :TODO: FIX THIS
     // :KLUDGE: Solution at Lagrange constraint vertices is the
     // Lagrange multiplier value, which is currently the force.
     // Compute traction by dividing force by area
+#if 0
     assert(*areaVertex > 0);
     tractionTVertex = lagrangeTVertex / (*areaVertex);
     tractionTpdtVertex = lagrangeTpdtVertex / (*areaVertex);
+#endif
     
     // Get friction properties and state variables.
     _friction->retrievePropsStateVars(v_fault);
@@ -854,7 +826,7 @@
     CALL_MEMBER_FN(*this,
 		   constrainSolnSpaceFn)(&dLagrangeTpdtVertex,
 					 slipVertex, slipRateVertex,
-					 tractionTpdtVertex, *areaVertex);
+					 tractionTpdtVertex);
     CALL_MEMBER_FN(*this,
        sensitivitySolveLumpedFn)(&slipVertex,
            dLagrangeTpdtVertex, jacobianVertexN, jacobianVertexP);
@@ -1308,8 +1280,6 @@
   double_array tractionsVertex(fiberDim);
 
   // Get sections.
-  const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
-  assert(!areaSection.isNull());
   const ALE::Obj<RealSection>& dispTSection = dispT.section();
   assert(!dispTSection.isNull());
 
@@ -1336,15 +1306,14 @@
 
     assert(fiberDim == dispTSection->getFiberDimension(v_lagrange));
     assert(fiberDim == tractionsSection->getFiberDimension(v_fault));
-    assert(1 == areaSection->getFiberDimension(v_fault));
 
     const double* dispTVertex = dispTSection->restrictPoint(v_lagrange);
     assert(0 != dispTVertex);
-    const double* areaVertex = areaSection->restrictPoint(v_fault);
-    assert(0 != areaVertex);
 
+#if 0 // :TODO: FIX THIS
     for (int i=0; i < fiberDim; ++i)
       tractionsVertex[i] = dispTVertex[i] / areaVertex[0];
+#endif
 
     assert(tractionsVertex.size() == 
 	   tractionsSection->getFiberDimension(v_fault));
@@ -1376,8 +1345,6 @@
   double_array tractionsVertexFault(spaceDim);
 
   // Get sections.
-  const ALE::Obj<RealSection>& areaSection = _fields->get("area").section();
-  assert(!areaSection.isNull());
   const ALE::Obj<RealSection>& orientationSection = 
     _fields->get("orientation").section();
   assert(!orientationSection.isNull());
@@ -1407,19 +1374,18 @@
 
     assert(spaceDim == forcesInitialSection->getFiberDimension(v_fault));
     assert(spaceDim == tractionsSection->getFiberDimension(v_fault));
-    assert(1 == areaSection->getFiberDimension(v_fault));
 
     const double* forcesInitialVertex = 
       forcesInitialSection->restrictPoint(v_fault);
     assert(0 != forcesInitialVertex);
-    const double* areaVertex = areaSection->restrictPoint(v_fault);
-    assert(0 != areaVertex);
     const double* orientationVertex = 
       orientationSection->restrictPoint(v_fault);
     assert(0 != orientationVertex);
 
+#if 0 // :TODO: FIX THIS
     for (int i = 0; i < spaceDim; ++i)
       tractionsVertexGlobal[i] = forcesInitialVertex[i] / areaVertex[0];
+#endif
 
     // Rotate from global coordinate system to local coordinate system
     tractionsVertexFault = 0.0;
@@ -1930,8 +1896,7 @@
 pylith::faults::FaultCohesiveDyn::_constrainSolnSpace1D(double_array* dLagrangeTpdt,
          const double_array& slip,
          const double_array& sliprate,
-         const double_array& tractionTpdt,
-         const double area)
+         const double_array& tractionTpdt)
 { // _constrainSolnSpace1D
   assert(0 != dLagrangeTpdt);
 
@@ -1940,7 +1905,11 @@
     } else {
       // if tension, then traction is zero.
 
+#if 0 // :TODO: FIX THIS
       const double dlp = -tractionTpdt[0] * area;
+#else
+      const double dlp = -tractionTpdt[0];
+#endif // 
       (*dLagrangeTpdt)[0] = dlp;
     } // else
 
@@ -1953,8 +1922,7 @@
 pylith::faults::FaultCohesiveDyn::_constrainSolnSpace2D(double_array* dLagrangeTpdt,
          const double_array& slip,
          const double_array& slipRate,
-         const double_array& tractionTpdt,
-         const double area)
+         const double_array& tractionTpdt)
 { // _constrainSolnSpace2D
   assert(0 != dLagrangeTpdt);
 
@@ -1975,7 +1943,7 @@
       if (tractionShearMag > 0.0) {
 	// Update traction increment based on value required to stick
 	// versus friction
-	const double dlp = -(tractionShearMag - frictionStress) * area *
+	const double dlp = -(tractionShearMag - frictionStress) *
 	  tractionTpdt[0] / tractionShearMag;
 	(*dLagrangeTpdt)[0] = dlp;
 	(*dLagrangeTpdt)[1] = 0.0;
@@ -1990,8 +1958,8 @@
     } // if/else
   } else {
     // if in tension, then traction is zero.
-    (*dLagrangeTpdt)[0] = -tractionTpdt[0] * area;
-    (*dLagrangeTpdt)[1] = -tractionTpdt[1] * area;
+    (*dLagrangeTpdt)[0] = -tractionTpdt[0];
+    (*dLagrangeTpdt)[1] = -tractionTpdt[1];
   } // else
 
   PetscLogFlops(8);
@@ -2003,8 +1971,7 @@
 pylith::faults::FaultCohesiveDyn::_constrainSolnSpace3D(double_array* dLagrangeTpdt,
          const double_array& slip,
          const double_array& slipRate,
-         const double_array& tractionTpdt,
-         const double area)
+         const double_array& tractionTpdt)
 { // _constrainSolnSpace3D
   assert(0 != dLagrangeTpdt);
 
@@ -2029,9 +1996,9 @@
       if (tractionShearMag > 0.0) {
 	// Update traction increment based on value required to stick
 	// versus friction
-	const double dlp = -(tractionShearMag - frictionStress) * area *
+	const double dlp = -(tractionShearMag - frictionStress) * 
 	  tractionTpdt[0] / tractionShearMag;
-	const double dlq = -(tractionShearMag - frictionStress) * area *
+	const double dlq = -(tractionShearMag - frictionStress) * 
 	  tractionTpdt[1] / tractionShearMag;
 	
 	(*dLagrangeTpdt)[0] = dlp;
@@ -2050,9 +2017,9 @@
     } // if/else
   } else {
     // if in tension, then traction is zero.
-    (*dLagrangeTpdt)[0] = -tractionTpdt[0] * area;
-    (*dLagrangeTpdt)[1] = -tractionTpdt[1] * area;
-    (*dLagrangeTpdt)[2] = -tractionTpdt[2] * area;
+    (*dLagrangeTpdt)[0] = -tractionTpdt[0];
+    (*dLagrangeTpdt)[1] = -tractionTpdt[1];
+    (*dLagrangeTpdt)[2] = -tractionTpdt[2];
   } // else
 
   PetscLogFlops(22);

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.hh
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.hh	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveDyn.hh	2011-09-16 19:13:45 UTC (rev 18923)
@@ -240,13 +240,11 @@
    * @param slip Slip assoc. w/Lagrange multiplier vertex.
    * @param slipRate Slip rate assoc. w/Lagrange multiplier vertex.
    * @param tractionTpdt Fault traction assoc. w/Lagrange multiplier vertex.
-   * @param area Fault area associated w/Lagrange multiplier vertex.
    */
   void _constrainSolnSpace1D(double_array* dLagrangeTpdt,
            const double_array& slip,
            const double_array& slipRate,
-           const double_array& tractionTpdt,
-           const double area);
+           const double_array& tractionTpdt);
 
   /** Constrain solution space with lumped Jacobian in 2-D.
    *
@@ -254,13 +252,11 @@
    * @param slip Slip assoc. w/Lagrange multiplier vertex.
    * @param slipRate Slip rate assoc. w/Lagrange multiplier vertex.
    * @param tractionTpdt Fault traction assoc. w/Lagrange multiplier vertex.
-   * @param area Fault area associated w/Lagrange multiplier vertex.
    */
   void _constrainSolnSpace2D(double_array* dLagrangeTpdt,
            const double_array& slip,
            const double_array& slipRate,
-           const double_array& tractionTpdt,
-           const double area);
+           const double_array& tractionTpdt);
 
   /** Constrain solution space with lumped Jacobian in 3-D.
    *
@@ -268,13 +264,11 @@
    * @param slip Slip assoc. w/Lagrange multiplier vertex.
    * @param slipRate Slip rate assoc. w/Lagrange multiplier vertex.
    * @param tractionTpdt Fault traction assoc. w/Lagrange multiplier vertex.
-   * @param area Fault area associated w/Lagrange multiplier vertex.
    */
   void _constrainSolnSpace3D(double_array* dLagrangeTpdt,
            const double_array& slip,
            const double_array& slipRate,
-           const double_array& tractionTpdt,
-           const double area);
+           const double_array& tractionTpdt);
 
   // PRIVATE MEMBERS ////////////////////////////////////////////////////
 private :

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveLagrange.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/faults/FaultCohesiveLagrange.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -141,7 +141,7 @@
   for (SieveSubMesh::label_sequence::iterator c_iter = cellsBegin; c_iter
       != cellsEnd; ++c_iter) {
     distSection->updatePoint(*c_iter, &rank);
-  }
+  } // for
 
   // Compute orientation at vertices in fault mesh.
   _calcOrientation(upDir);
@@ -219,10 +219,7 @@
   const int spaceDim = _quadrature->spaceDim();
   const int cellDim = _quadrature->cellDim();
   const int orientationSize = spaceDim * spaceDim;
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
+  assert(cellDim == spaceDim-1);
 
   // Get cohesive cell information
   const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
@@ -433,10 +430,7 @@
   const int numBasis = _quadrature->numBasis();
   const int spaceDim = _quadrature->spaceDim();
   const int cellDim = _quadrature->cellDim();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
+  assert (cellDim == spaceDim-1);
 
   // Get cohesive cell information
   const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
@@ -598,10 +592,7 @@
   const int numBasis = _quadrature->numBasis();
   const int spaceDim = _quadrature->spaceDim();
   const int cellDim = _quadrature->cellDim();
-  if (cellDim != spaceDim)
-    throw std::logic_error("Integration for cells with spatial dimensions "
-			   "different than the spatial dimension of the "
-			   "domain not implemented yet.");
+  assert (cellDim == spaceDim-1);
 
   // Get cohesive cell information
   const ALE::Obj<SieveMesh>& sieveMesh = fields->mesh().sieveMesh();
@@ -2031,8 +2022,15 @@
   assert(0 != _faultMesh);
   _fields->add("buffer (scalar)", "buffer");
   topology::Field<topology::SubMesh>& buffer = _fields->get("buffer (scalar)");
-  const topology::Field<topology::SubMesh>& area = _fields->get("area");
-  buffer.cloneSection(area);
+  const ALE::Obj<SieveSubMesh>& faultSieveMesh = _faultMesh->sieveMesh();
+  assert(!faultSieveMesh.isNull());
+  const ALE::Obj<SieveSubMesh::label_sequence>& vertices =
+      faultSieveMesh->depthStratum(0);
+  assert(!vertices.isNull());
+  buffer.newSection(vertices, 1);
+  buffer.allocate();
+  buffer.vectorFieldType(topology::FieldBase::SCALAR);
+  buffer.scale(1.0);
   buffer.zero();
   assert(buffer.vectorFieldType() == topology::FieldBase::SCALAR);
 

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -97,8 +97,7 @@
 void
 pylith::friction::FrictionModel::initialize(
 			const topology::SubMesh& faultMesh,
-			feassemble::Quadrature<topology::SubMesh>* quadrature,
-			const topology::Field<topology::SubMesh>& area)
+			feassemble::Quadrature<topology::SubMesh>* quadrature)
 { // initialize
   assert(0 != _dbProperties);
 

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.hh
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.hh	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/friction/FrictionModel.hh	2011-09-16 19:13:45 UTC (rev 18923)
@@ -116,12 +116,10 @@
    *
    * @param mesh Finite-element mesh of subdomain.
    * @param quadrature Quadrature for finite-element integration
-   * @param area Area at vertices of subdomain.
    */
   virtual
   void initialize(const topology::SubMesh& mesh,
-		  feassemble::Quadrature<topology::SubMesh>* quadrature,
-		  const topology::Field<topology::SubMesh>& area);
+		  feassemble::Quadrature<topology::SubMesh>* quadrature);
   
   /** Check whether friction model has a field as a property or state
    * variable.

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -44,8 +44,11 @@
   namespace problems {
     namespace _SolverNonlinear {
 
+      // From PETSc header file src/snes/impls/ls/lsimpl.h
+      // This file is buried in the source directory so we don't have
+      // access to it using pre-processor flags (i.e., -I$DIR).
       typedef struct {
-	PetscErrorCode           (*LineSearch)(PetscSNES,void*,PetscVec,PetscVec,PetscVec,PetscVec,PetscVec,PetscReal,PetscReal,PetscReal*,PetscReal*,PetscBool *);
+	PetscErrorCode           (*LineSearch)(PetscSNES,void*,PetscVec,PetscVec,PetscVec,PetscReal,PetscReal,PetscVec,PetscVec,PetscReal*,PetscReal*,PetscBool *);
 	void                     *lsP;                              /* user-defined line-search context (optional) */
 	/* --------------- Parameters used by line search method ----------------- */
 	PetscReal                alpha;                                                                  /* used to determine sufficient reduction */
@@ -56,6 +59,7 @@
 	PetscErrorCode           (*postcheckstep)(PetscSNES,PetscVec,PetscVec,PetscVec,void*,PetscBool *,PetscBool *); /* step-checking routine (optional) */
 	void                     *postcheck;                                                       /* user-defined step-checking context (optional) */
 	PetscViewer  monitor;
+	PetscReal damping;
       } SNES_LS;
     } // _SolverNonlinear
   } // problems
@@ -248,11 +252,11 @@
 					      void *lsctx,
 					      PetscVec x,
 					      PetscVec f,
-					      PetscVec g,
 					      PetscVec y,
-					      PetscVec w,
 					      PetscReal fnorm,
 					      PetscReal xnorm,
+					      PetscVec g,
+					      PetscVec w,
 					      PetscReal *ynorm,
 					      PetscReal *gnorm,
 					      PetscBool *flag)

Modified: short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.hh
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.hh	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/libsrc/pylith/problems/SolverNonlinear.hh	2011-09-16 19:13:45 UTC (rev 18923)
@@ -132,11 +132,11 @@
 			    void *lsctx,
 			    PetscVec x,
 			    PetscVec f,
-			    PetscVec g,
 			    PetscVec y,
-			    PetscVec w,
 			    PetscReal fnorm,
 			    PetscReal xnorm,
+			    PetscVec g,
+			    PetscVec w,
 			    PetscReal *ynorm,
 			    PetscReal *gnorm,
 			    PetscBool *flag);

Modified: short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveDyn.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveDyn.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -155,24 +155,6 @@
     } // for
   } // for
 
-  // Check area
-  const ALE::Obj<RealSection>& areaSection =
-    fault._fields->get("area").section();
-  CPPUNIT_ASSERT(!areaSection.isNull());
-  iVertex = 0;
-  for (SieveSubMesh::label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter, ++iVertex) {
-    const int fiberDim = areaSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(1, fiberDim);
-    const double* areaVertex = areaSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != areaVertex);
-
-    const double tolerance = 1.0e-06;
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->area[iVertex], areaVertex[0],
-				 tolerance);
-  } // for
-
   // Initial forces/tractions
   if (0 != fault._dbInitialTract) {
     //fault._fields->get("initial forces").view("INITIAL FORCES"); // DEBUGGING

Modified: short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveKin.cc	2011-09-16 19:11:39 UTC (rev 18922)
+++ short/3D/PyLith/branches/v1.6-revisedfault/unittests/libtests/faults/TestFaultCohesiveKin.cc	2011-09-16 19:13:45 UTC (rev 18923)
@@ -224,23 +224,6 @@
     } // for
   } // for
 
-  // Check area
-  const ALE::Obj<RealSection>& areaSection =
-    fault._fields->get("area").section();
-  CPPUNIT_ASSERT(!areaSection.isNull());
-  iVertex = 0;
-  for (SieveSubMesh::label_sequence::iterator v_iter=verticesBegin;
-       v_iter != verticesEnd;
-       ++v_iter, ++iVertex) {
-    const int fiberDim = areaSection->getFiberDimension(*v_iter);
-    CPPUNIT_ASSERT_EQUAL(1, fiberDim);
-    const double* areaVertex = areaSection->restrictPoint(*v_iter);
-    CPPUNIT_ASSERT(0 != areaVertex);
-
-    const double tolerance = 1.0e-06;
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(_data->area[iVertex], areaVertex[0],
-				 tolerance);
-  } // for
 } // testInitialize
 
 // ----------------------------------------------------------------------



More information about the CIG-COMMITS mailing list