[cig-commits] r11632 - short/3D/PyLith/trunk/libsrc/faults

knepley at geodynamics.org knepley at geodynamics.org
Sat Mar 29 10:05:05 PDT 2008


Author: knepley
Date: 2008-03-29 10:05:05 -0700 (Sat, 29 Mar 2008)
New Revision: 11632

Modified:
   short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
Log:
Fixed parallel fault output


Modified: short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc	2008-03-29 02:41:41 UTC (rev 11631)
+++ short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc	2008-03-29 17:05:05 UTC (rev 11632)
@@ -657,10 +657,8 @@
   cohesiveToFault->clear();
 
   const ALE::Obj<sieve_type>& sieve = mesh->getSieve();
-  const ALE::Obj<sieve_type> faultSieve = 
-    new sieve_type(sieve->comm(), sieve->debug());
-  const ALE::Obj<Mesh::label_sequence>& cohesiveCells = 
-    mesh->getLabelStratum("material-id", materialId);
+  const ALE::Obj<sieve_type> faultSieve = new sieve_type(sieve->comm(), sieve->debug());
+  const ALE::Obj<Mesh::label_sequence>& cohesiveCells = mesh->getLabelStratum("material-id", materialId);
   const Mesh::label_sequence::iterator cBegin = cohesiveCells->begin();
   const Mesh::label_sequence::iterator cEnd = cohesiveCells->end();
   const int sieveEnd = sieve->base()->size() + sieve->cap()->size();
@@ -668,37 +666,33 @@
   int globalSieveEnd = 0;
   int globalFaceOffset = 0;
 
-  MPI_Allreduce((void *) &sieveEnd, (void *) &globalSieveEnd, 1, 
-		MPI_INT, MPI_SUM, sieve->comm());
-  MPI_Scan((void *) &numFaces, (void *) &globalFaceOffset, 1, 
-	   MPI_INT, MPI_SUM, sieve->comm());
-  int face = globalSieveEnd + globalFaceOffset;
-  for(Mesh::label_sequence::iterator c_iter = cBegin;
-      c_iter != cEnd;
-      ++c_iter) {
-    const ALE::Obj<sieve_type::traits::coneSequence>& cone =
-      sieve->cone(*c_iter);
-    int color = 0;
-
+  MPI_Allreduce((void *) &sieveEnd, (void *) &globalSieveEnd, 1, MPI_INT, MPI_SUM, sieve->comm());
+  MPI_Scan((void *) &numFaces, (void *) &globalFaceOffset, 1, MPI_INT, MPI_SUM, sieve->comm());
+  int face = globalSieveEnd + globalFaceOffset - numFaces;
+  for(Mesh::label_sequence::iterator c_iter = cBegin; c_iter != cEnd; ++c_iter) {
+    const ALE::Obj<sieve_type::traits::coneSequence>& cone = sieve->cone(*c_iter);
     const int coneSize = cone->size();
+    int       color    = 0;
+
     if (!constraintCell) {
       const int faceSize = coneSize / 2;
       assert(0 == coneSize % faceSize);
 
       // Use first vertices (negative side of the fault) for fault mesh
       sieve_type::traits::coneSequence::iterator v_iter = cone->begin();
-      for(int i=0; i < faceSize; ++i, ++v_iter)
-	faultSieve->addArrow(*v_iter, face, color++);
+      for(int i=0; i < faceSize; ++i, ++v_iter) {
+        faultSieve->addArrow(*v_iter, face, color++);
+      }
     } else {
       const int faceSize = coneSize / 3;
       assert(0 == coneSize % faceSize);
 
       // Use last vertices (contraints) for fault mesh
       sieve_type::traits::coneSequence::iterator v_iter = cone->begin();
-      for(int i=0; i < 2*faceSize; ++i)
-	++v_iter;
-      for(int i=0; i < faceSize; ++i, ++v_iter)
-	faultSieve->addArrow(*v_iter, face, color++);
+      for(int i=0; i < 2*faceSize; ++i) ++v_iter;
+      for(int i=0; i < faceSize; ++i, ++v_iter) {
+        faultSieve->addArrow(*v_iter, face, color++);
+      }
     } // if/else
     (*cohesiveToFault)[*c_iter] = face;
     ++face;
@@ -706,14 +700,11 @@
   (*fault)->setSieve(faultSieve);
   (*fault)->stratify();
 
-  const ALE::Obj<Mesh::label_sequence>& faultCells = 
-    (*fault)->heightStratum(0);
+  const ALE::Obj<Mesh::label_sequence>& faultCells = (*fault)->heightStratum(0);
   assert(!faultCells.isNull());
-  for (Mesh::label_sequence::iterator c_iter=cBegin,
-	 f_iter=faultCells->begin();
-       c_iter != cEnd;
-       ++c_iter, ++f_iter)
+  for(Mesh::label_sequence::iterator c_iter = cBegin, f_iter=faultCells->begin(); c_iter != cEnd; ++c_iter, ++f_iter) {
     (*cohesiveToFault)[*c_iter] = *f_iter;
+  }
     
 #if 1
   (*fault)->setRealSection("coordinates", mesh->getRealSection("coordinates"));



More information about the cig-commits mailing list