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

knepley at geodynamics.org knepley at geodynamics.org
Tue Sep 23 08:38:14 PDT 2008


Author: knepley
Date: 2008-09-23 08:38:14 -0700 (Tue, 23 Sep 2008)
New Revision: 12939

Modified:
   short/3D/PyLith/trunk/libsrc/topology/RefineUniform.cc
Log:
Fix for groups


Modified: short/3D/PyLith/trunk/libsrc/topology/RefineUniform.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/RefineUniform.cc	2008-09-23 15:15:27 UTC (rev 12938)
+++ short/3D/PyLith/trunk/libsrc/topology/RefineUniform.cc	2008-09-23 15:38:14 UTC (rev 12939)
@@ -91,41 +91,38 @@
       const Mesh::int_section_type::chart_type& newChart = newGroup->getChart();
       
 
-      // MATT I think this is wrong. The labels of vertices is
-      // different in the refined mesh.
-
       const int chartMax = chart.max();
-      for(int p=chart.min(), pNew=newChart.min(); p < chartMax; ++p, ++pNew) {
-	if (group->getFiberDimension(p))
-	  newGroup->setFiberDimension(pNew, 1);
+      for(int p = chart.min(), pNew = newChart.min(); p < chartMax; ++p, ++pNew) {
+        if (group->getFiberDimension(p))
+          newGroup->setFiberDimension(pNew, 1);
       } // for
       const std::map<edge_type, point_type>::const_iterator edge2VertexEnd =
 	edge2vertex.end();
       for(std::map<edge_type, point_type>::const_iterator e_iter=edge2vertex.begin();
 	  e_iter != edge2VertexEnd;
 	  ++e_iter) {
-	const point_type vertexA = e_iter->first.first;
-	const point_type vertexB = e_iter->first.second;
+        const point_type vertexA = e_iter->first.first;
+        const point_type vertexB = e_iter->first.second;
       
-	if (group->getFiberDimension(vertexA) && group->getFiberDimension(vertexB))
-	  if (group->restrictPoint(vertexA)[0] == group->restrictPoint(vertexB)[0])
-	    newGroup->setFiberDimension(e_iter->second, 1);
+        if (group->getFiberDimension(vertexA) && group->getFiberDimension(vertexB))
+          if (group->restrictPoint(vertexA)[0] == group->restrictPoint(vertexB)[0])
+            newGroup->setFiberDimension(e_iter->second, 1);
       } // for
 
       newGroup->allocatePoint();
-      for(int p = chart.min(); p < chartMax; ++p)
-	if (group->getFiberDimension(p))
-	  newGroup->updatePoint(p, group->restrictPoint(p));
-      
+      for(int p = chart.min(), pNew = newChart.min(); p < chartMax; ++p, ++pNew) {
+        if (group->getFiberDimension(p))
+          newGroup->updatePoint(pNew, group->restrictPoint(p));
+      }
       for(std::map<edge_type, point_type>::const_iterator e_iter=edge2vertex.begin();
 	  e_iter != edge2VertexEnd;
 	  ++e_iter) {
-	const point_type vertexA = e_iter->first.first;
-	const point_type vertexB = e_iter->first.second;
+        const point_type vertexA = e_iter->first.first;
+        const point_type vertexB = e_iter->first.second;
 	
-	if (group->getFiberDimension(vertexA) && group->getFiberDimension(vertexB))
-	  if (group->restrictPoint(vertexA)[0] == group->restrictPoint(vertexB)[0])
-	    newGroup->updatePoint(e_iter->second, group->restrictPoint(vertexA));
+        if (group->getFiberDimension(vertexA) && group->getFiberDimension(vertexB))
+          if (group->restrictPoint(vertexA)[0] == group->restrictPoint(vertexB)[0])
+            newGroup->updatePoint(e_iter->second, group->restrictPoint(vertexA));
       } // for
     } // for
   } else {



More information about the cig-commits mailing list