[cig-commits] r16650 - short/3D/PyLith/trunk/libsrc/topology

brad at geodynamics.org brad at geodynamics.org
Wed May 5 15:47:10 PDT 2010


Author: brad
Date: 2010-05-05 15:47:10 -0700 (Wed, 05 May 2010)
New Revision: 16650

Modified:
   short/3D/PyLith/trunk/libsrc/topology/ReverseCuthillMcKee.cc
Log:
Fixed bug (mesh reordering value only on proc 0).

Modified: short/3D/PyLith/trunk/libsrc/topology/ReverseCuthillMcKee.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/ReverseCuthillMcKee.cc	2010-05-05 22:40:59 UTC (rev 16649)
+++ short/3D/PyLith/trunk/libsrc/topology/ReverseCuthillMcKee.cc	2010-05-05 22:47:10 UTC (rev 16650)
@@ -31,23 +31,28 @@
 
   //logger.stagePush("MeshReordering");
 
-  const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
-  assert(!sieveMesh.isNull());
-  ALE::Obj<ALE::Ordering<>::perm_type> perm = 
-    new ALE::Ordering<>::perm_type(sieveMesh->comm(), sieveMesh->debug());
-  ALE::Obj<ALE::Ordering<>::perm_type> reordering = 
-    new ALE::Ordering<>::perm_type(sieveMesh->comm(), sieveMesh->debug());
+  int rank = 0;
+  MPI_Comm_rank(mesh->comm(), &rank);
 
-  ALE::Ordering<>::calculateMeshReordering(sieveMesh, perm, reordering);
+  if (0 == rank) {
+    const ALE::Obj<SieveMesh>& sieveMesh = mesh->sieveMesh();
+    assert(!sieveMesh.isNull());
+    ALE::Obj<ALE::Ordering<>::perm_type> perm = 
+      new ALE::Ordering<>::perm_type(sieveMesh->comm(), sieveMesh->debug());
+    ALE::Obj<ALE::Ordering<>::perm_type> reordering = 
+      new ALE::Ordering<>::perm_type(sieveMesh->comm(), sieveMesh->debug());
+    
+    ALE::Ordering<>::calculateMeshReordering(sieveMesh, perm, reordering);
+    
+    //perm->view("PERMUTATION");
+    //reordering->view("REORDERING");
+    //sieveMesh->view("MESH BEFORE RELABEL");
+    
+    sieveMesh->relabel(*reordering);
+    //sieveMesh->view("MESH AFTER RELABEL");
+  } // if    
 
-  //perm->view("PERMUTATION");
-  //reordering->view("REORDERING");
-  //sieveMesh->view("MESH BEFORE RELABEL");
-
-  sieveMesh->relabel(*reordering);
-  //sieveMesh->view("MESH AFTER RELABEL");
-
-  //logger.stagePop();
+    //logger.stagePop();
 } // reorder
 
 



More information about the CIG-COMMITS mailing list