[cig-commits] r22173 - in short/3D/PyLith/branches/v1.7-trunk: . libsrc/pylith/faults libsrc/pylith/feassemble libsrc/pylith/meshio

brad at geodynamics.org brad at geodynamics.org
Tue Jun 4 19:53:45 PDT 2013


Author: brad
Date: 2013-06-04 19:53:45 -0700 (Tue, 04 Jun 2013)
New Revision: 22173

Modified:
   short/3D/PyLith/branches/v1.7-trunk/configure.ac
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/QuadratureEngine.cc
   short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriter.cc
Log:
Merge from stable.

Modified: short/3D/PyLith/branches/v1.7-trunk/configure.ac
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/configure.ac	2013-06-01 00:22:16 UTC (rev 22172)
+++ short/3D/PyLith/branches/v1.7-trunk/configure.ac	2013-06-05 02:53:45 UTC (rev 22173)
@@ -150,7 +150,7 @@
 #CIT_CHECK_LIB_MPI
 
 # PETSC
-CIT_PATH_PETSC([3.3.0])
+CIT_PATH_PETSC([3.4.0])
 CIT_HEADER_PETSC
 CIT_CHECK_LIB_PETSC
 CIT_CHECK_LIB_PETSC_SIEVE

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc	2013-06-01 00:22:16 UTC (rev 22172)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/faults/FaultCohesiveImpulses.cc	2013-06-05 02:53:45 UTC (rev 22173)
@@ -318,6 +318,10 @@
   const ALE::Obj<SieveSubMesh>& faultSieveMesh = _faultMesh->sieveMesh();
   assert(!faultSieveMesh.isNull());
 
+  assert(!faultSieveMesh.isNull());
+  const ALE::Obj<SieveMesh::numbering_type>& globalNumbering = faultSieveMesh->getFactory()->getNumbering(faultSieveMesh, 0);
+  assert(!globalNumbering.isNull());
+
   scalar_array coordsVertex(spaceDim);
   const ALE::Obj<RealSection>& coordsSection = faultSieveMesh->getRealSection("coordinates");
   assert(!coordsSection.isNull());
@@ -331,8 +335,14 @@
   int count = 0;
   const int numVertices = _cohesiveVertices.size();
   for (int iVertex=0; iVertex < numVertices; ++iVertex) {
+    const int v_lagrange = _cohesiveVertices[iVertex].lagrange;
     const int v_fault = _cohesiveVertices[iVertex].fault;
 
+    // Only create impulses on local vertices
+    if (!globalNumbering->isLocal(v_fault)) {
+      continue;
+    } // if
+
     coordsSection->restrictPoint(v_fault, &coordsVertex[0], coordsVertex.size());
     _normalizer->dimensionalize(&coordsVertex[0], coordsVertex.size(), lengthScale);
 
@@ -367,6 +377,9 @@
 
   //amplitude.view("IMPULSE AMPLITUDE"); // DEBUGGING
 
+  // Deallocate factory.
+  faultSieveMesh->getFactory()->clear();
+
   _setupImpulseOrder(pointOrder);
 } // _setupImpulses
 

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/QuadratureEngine.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/QuadratureEngine.cc	2013-06-01 00:22:16 UTC (rev 22172)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/feassemble/QuadratureEngine.cc	2013-06-05 02:53:45 UTC (rev 22173)
@@ -107,7 +107,10 @@
     std::ostringstream msg;
     msg << "Determinant of Jacobian (" << det << ") for cell " << cell
 	<< " is smaller than minimum permissible value (" << minJacobian
-	<< ")!\n";
+	<< ")!\n"
+	<< "The two most likely causes of this are highly distorted cells "
+	<< "and nondimensionalization with a length scale that is much larger "
+	<< "than the dimensions of the cells.\n";
     throw std::runtime_error(msg.str());
   } // if
 } // _checkJacobianDet

Modified: short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriter.cc
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriter.cc	2013-06-01 00:22:16 UTC (rev 22172)
+++ short/3D/PyLith/branches/v1.7-trunk/libsrc/pylith/meshio/DataWriter.cc	2013-06-05 02:53:45 UTC (rev 22173)
@@ -74,7 +74,7 @@
   const ALE::Obj<typename mesh_type::SieveMesh>& sieveMesh = mesh.sieveMesh();
   assert(!sieveMesh.isNull());
 
-  ostringstream s;
+  std::ostringstream s;
   s << "output_"
     << sieveMesh->getName();
   if (label)



More information about the CIG-COMMITS mailing list