[cig-commits] r14879 - in short/3D/PyLith/trunk: . libsrc/bc libsrc/faults libsrc/feassemble libsrc/materials libsrc/meshio libsrc/topology

brad at geodynamics.org brad at geodynamics.org
Tue May 5 17:55:59 PDT 2009


Author: brad
Date: 2009-05-05 17:55:58 -0700 (Tue, 05 May 2009)
New Revision: 14879

Modified:
   short/3D/PyLith/trunk/TODO
   short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
   short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc
   short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
   short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
   short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc
   short/3D/PyLith/trunk/libsrc/faults/TopologyOps.cc
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
   short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
   short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
   short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
   short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
   short/3D/PyLith/trunk/libsrc/materials/Material.cc
   short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc
   short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc
   short/3D/PyLith/trunk/libsrc/topology/MeshOps.cc
Log:
Cleaned up use of label_sequence iterators (cache begin() and end()).

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/TODO	2009-05-06 00:55:58 UTC (rev 14879)
@@ -43,9 +43,6 @@
 
     Add simple stableTimeStep() for elastic materials.
 
-    Check use of label_sequence.  label_sequence - iterators are
-    cached, so use sequence or cache begin/end to maintain access
-
     Cleanup logging. Constraints and Integrators should log at the C++
     level using the C++ EventLogger. Add finer grain logging at C++
     level as in ElasticityImplicit.

Modified: short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/bc/AbsorbingDampers.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -87,11 +87,12 @@
   const ALE::Obj<SieveSubMesh::label_sequence>& cells = 
     submesh->heightStratum(1);
   assert(!cells.isNull());
+  const SieveSubMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveSubMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Make sure surface cells are compatible with quadrature.
   const int boundaryDepth = submesh->depth()-1; // depth of bndry cells
-  for (SieveSubMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveSubMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     const int cellNumCorners = 
@@ -171,7 +172,7 @@
   // Compute quadrature information
   _quadrature->computeGeometry(*_boundaryMesh, cells);
 
-  for(SieveSubMesh::label_sequence::iterator c_iter = cells->begin();
+  for(SieveSubMesh::label_sequence::iterator c_iter = cellsBegin;
       c_iter != cellsEnd;
       ++c_iter) {
     _quadrature->retrieveGeometry(*c_iter);
@@ -270,6 +271,7 @@
   const ALE::Obj<SieveSubMesh::label_sequence>& cells = 
     submesh->heightStratum(1);
   assert(!cells.isNull());
+  const SieveSubMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveSubMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -298,7 +300,7 @@
   const double dt = _dt;
   assert(dt > 0);
 
-  for (SieveSubMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveSubMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Get geometry information for current cell
@@ -376,6 +378,7 @@
   const ALE::Obj<SieveSubMesh::label_sequence>& cells = 
     submesh->heightStratum(1);
   assert(!cells.isNull());
+  const SieveSubMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveSubMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -405,7 +408,7 @@
   // Allocate matrix for cell values.
   _initCellMatrix();
 
-  for (SieveSubMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveSubMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Get geometry information for current cell

Modified: short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/bc/DirichletBoundary.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -78,7 +78,6 @@
   const ALE::Obj<SieveMesh::label_sequence>& vertices = 
     sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
-  const SieveMesh::label_sequence::iterator verticesEnd = vertices->end();
 
   const spatialdata::geocoords::CoordSys* cs = _boundaryMesh->coordsys();
   assert(0 != cs);
@@ -95,10 +94,6 @@
     _tmpField->allocate();
   } // if
 
-  // ERROR: NEED TO TRANSLATE LABELS FROM MESH INTO SUBMESH
-  std::cerr << "TODO: Translate labels from mesh into submesh." << std::endl;
-  assert(0);
-
   if (0 == strcasecmp(name, "initial")) {
     _tmpField->label("displacement");
     _tmpField->vectorFieldType(topology::Field<topology::SubMesh>::VECTOR);

Modified: short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/BruneSlipFn.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -77,6 +77,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   delete _parameters; _parameters = new topology::Fields<topology::Field<topology::SubMesh> >(faultMesh);
@@ -148,7 +149,7 @@
 
   _slipVertex.resize(spaceDim);
   double_array vCoordsGlobal(spaceDim);
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     coordinates->restrictPoint(*v_iter, 
@@ -220,6 +221,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -239,7 +241,7 @@
   assert(!slipSection.isNull());
 
   const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],
@@ -280,6 +282,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -299,7 +302,7 @@
   assert(!slipSection.isNull());
 
   const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],

Modified: short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/CohesiveTopology.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -154,6 +154,10 @@
   // Add new shadow vertices and possibly Lagrange multipler vertices
   const ALE::Obj<SieveSubMesh::label_sequence>& fVertices       = faultSieveMesh->depthStratum(0);
   assert(!fVertices.isNull());
+  const SieveSubMesh::label_sequence::const_iterator fVerticesBegin = 
+    fVertices->begin();
+  const SieveSubMesh::label_sequence::const_iterator fVerticesEnd = 
+    fVertices->end();
   const ALE::Obj<SieveMesh::label_sequence>& vertices = 
     sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
@@ -165,9 +169,7 @@
   std::map<point_type,point_type> vertexRenumber;
   std::map<point_type,point_type> cellRenumber;
 
-  const SieveSubMesh::label_sequence::const_iterator fVerticesEnd = 
-    fVertices->end();
-  for(SieveSubMesh::label_sequence::iterator v_iter = fVertices->begin();
+  for(SieveSubMesh::label_sequence::iterator v_iter = fVerticesBegin;
       v_iter != fVerticesEnd;
       ++v_iter, ++newPoint) {
     vertexRenumber[*v_iter] = newPoint;
@@ -201,7 +203,7 @@
     sieveMesh->reallocate(sieveMesh->getIntSection(*name));
   } // for
 #if 0 // TEST OF OPTIMIZATION?? [MATT: WHY IS THIS COMMENTED OUT?]
-  for(SieveSubMesh::label_sequence::iterator v_iter = fVertices->begin();
+  for(SieveSubMesh::label_sequence::iterator v_iter = fVerticesBegin;
       v_iter != fVerticesEnd;
       ++v_iter, ++newPoint) {
     vertexRenumber[*v_iter] = newPoint;
@@ -222,6 +224,8 @@
   const ALE::Obj<SieveSubMesh::label_sequence>& faces =
     faultSieveMesh->heightStratum(1);
   assert(!faces.isNull());
+  const SieveSubMesh::label_sequence::const_iterator facesBegin = faces->begin();
+  const SieveSubMesh::label_sequence::const_iterator facesEnd = faces->end();
   const ALE::Obj<Mesh::label_type>& material = 
     sieveMesh->getLabel("material-id");
   assert(!material.isNull());
@@ -233,8 +237,7 @@
   ALE::ISieveVisitor::NConeRetriever<SieveMesh::sieve_type> cV2(*ifaultSieve, (size_t) pow(std::max(1, ifaultSieve->getMaxConeSize()), faultSieveMesh->depth()));
   std::set<Mesh::point_type> faceSet;
 
-  const SieveSubMesh::label_sequence::const_iterator facesEnd = faces->end();
-  for(SieveSubMesh::label_sequence::iterator f_iter = faces->begin();
+  for(SieveSubMesh::label_sequence::iterator f_iter = facesBegin;
       f_iter != facesEnd;
       ++f_iter, ++newPoint) {
     const point_type face = *f_iter;
@@ -595,12 +598,14 @@
   const ALE::Obj<SieveSubMesh::label_sequence>& fVertices2 =
     faultSieveMesh->depthStratum(0);
   assert(!fVertices2.isNull());
+  SieveSubMesh::label_sequence::const_iterator fVertices2Begin = 
+    fVertices2->begin();
+  SieveSubMesh::label_sequence::const_iterator fVertices2End = 
+    fVertices2->end();
 
   if (debug)
     coordinates->view("Coordinates without shadow vertices");
-  SieveSubMesh::label_sequence::const_iterator fVertices2End = 
-    fVertices2->end();
-  for (SieveSubMesh::label_sequence::iterator v_iter = fVertices2->begin();
+  for (SieveSubMesh::label_sequence::iterator v_iter = fVertices2Begin;
       v_iter != fVertices2End;
       ++v_iter) {
     coordinates->addPoint(vertexRenumber[*v_iter],
@@ -611,7 +616,7 @@
   } // for
   sieveMesh->reallocate(coordinates);
   fVertices2End = fVertices2->end();
-  for (SieveSubMesh::label_sequence::iterator v_iter = fVertices2->begin();
+  for (SieveSubMesh::label_sequence::iterator v_iter = fVertices2Begin;
       v_iter != fVertices2End;
       ++v_iter) {
     coordinates->updatePoint(vertexRenumber[*v_iter], 

Modified: short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/ConstRateSlipFn.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -75,6 +75,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   delete _parameters; _parameters = new topology::Fields<topology::Field<topology::SubMesh> >(faultMesh);
@@ -132,7 +133,7 @@
 
   _slipRateVertex.resize(spaceDim);
   double_array vCoordsGlobal(spaceDim);
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     coordinates->restrictPoint(*v_iter, 
@@ -190,6 +191,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -204,7 +206,7 @@
   const ALE::Obj<RealSection>& slipSection = slip->section();
   assert(!slipSection.isNull());
 
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     slipRateSection->restrictPoint(*v_iter, &_slipRateVertex[0],
@@ -238,6 +240,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -252,7 +255,7 @@
   const ALE::Obj<RealSection>& slipSection = slip->section();
   assert(!slipSection.isNull());
 
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     slipRateSection->restrictPoint(*v_iter, &_slipRateVertex[0],

Modified: short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/FaultCohesiveKin.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -482,7 +482,9 @@
   Mesh::renumbering_type& fRenumbering = _faultMesh->getRenumbering();
   const int rank = mesh->commRank();
 
-  for (Mesh::label_sequence::iterator c_iter = cellsCohesiveBegin; c_iter != cellsCohesiveEnd; ++c_iter) {
+  for (Mesh::label_sequence::iterator c_iter = cellsCohesiveBegin;
+       c_iter != cellsCohesiveEnd;
+       ++c_iter) {
     mesh->getSieve()->cone(*c_iter, cV);
     const int               coneSize  = cV.getSize();
     const Mesh::point_type *cone      = cV.getPoints();
@@ -630,8 +632,9 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", id());
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     const int cellNumCorners = sieveMesh->getNumCellCorners(*c_iter);
@@ -1140,7 +1143,9 @@
   const ALE::Obj<RealSection>& coordinates  = mesh->getRealSection("coordinates");
   const ALE::Obj<RealSection>& fCoordinates = _faultMesh->getRealSection("coordinates");
 
-  for (Mesh::label_sequence::iterator v_iter = vertices->begin(); v_iter != verticesEnd; ++v_iter) {
+  for (Mesh::label_sequence::iterator v_iter = verticesBegin;
+       v_iter != verticesEnd;
+       ++v_iter) {
     if (renumbering.find(*v_iter) != renumberingEnd) {
       const int     v    = *v_iter;
       const int     dim  = coordinates->getFiberDimension(*v_iter);

Modified: short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/LiuCosSlipFn.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -77,6 +77,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   delete _parameters; _parameters = new topology::Fields<topology::Field<topology::SubMesh> >(faultMesh);
@@ -148,7 +149,7 @@
 
   _slipVertex.resize(spaceDim);
   double_array vCoordsGlobal(spaceDim);
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     coordinates->restrictPoint(*v_iter, 
@@ -220,6 +221,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -239,7 +241,7 @@
   assert(!slipSection.isNull());
 
   const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],
@@ -279,6 +281,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -298,7 +301,7 @@
   assert(!slipSection.isNull());
 
   const int spaceDim = _slipVertex.size();
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0],

Modified: short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/StepSlipFn.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -73,6 +73,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   delete _parameters; _parameters = new topology::Fields<topology::Field<topology::SubMesh> >(faultMesh);
@@ -130,7 +131,7 @@
 
   _slipVertex.resize(spaceDim);
   double_array vCoordsGlobal(spaceDim);  
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     coordinates->restrictPoint(*v_iter, 
@@ -188,6 +189,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -202,7 +204,7 @@
   const ALE::Obj<RealSection>& slipSection = slip->section();
   assert(!slipSection.isNull());
 
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0], _slipVertex.size());
@@ -234,6 +236,7 @@
   assert(!sieveMesh.isNull());
   const ALE::Obj<label_sequence>& vertices = sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const label_sequence::iterator verticesBegin = vertices->begin();
   const label_sequence::iterator verticesEnd = vertices->end();
 
   // Get sections
@@ -248,7 +251,7 @@
   const ALE::Obj<RealSection>& slipSection = slip->section();
   assert(!slipSection.isNull());
 
-  for (label_sequence::iterator v_iter=vertices->begin();
+  for (label_sequence::iterator v_iter=verticesBegin;
        v_iter != verticesEnd;
        ++v_iter) {
     finalSlipSection->restrictPoint(*v_iter, &_slipVertex[0], _slipVertex.size());

Modified: short/3D/PyLith/trunk/libsrc/faults/TopologyOps.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/faults/TopologyOps.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/faults/TopologyOps.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -461,7 +461,9 @@
     }
   }
   flippedCells.clear();
-  for(ALE::Mesh::label_sequence::iterator e_iter = fFaces->begin(); e_iter != fFaces->end(); ++e_iter) {
+  const ALE::Mesh::label_sequence::iterator fFacesBegin = fFaces->begin();
+  const ALE::Mesh::label_sequence::iterator fFacesEnd = fFaces->end();
+  for(ALE::Mesh::label_sequence::iterator e_iter = fFacesBegin; e_iter != fFacesEnd; ++e_iter) {
     if (debug) std::cout << "  Checking orientation of fault face " << *e_iter << std::endl;
     // for each face get the support (2 fault cells)
     const ALE::Obj<ALE::Mesh::sieve_type::traits::supportSequence>& support = faultSieve->support(*e_iter);

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityExplicit.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -161,6 +161,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -193,7 +194,7 @@
   _logger->eventEnd(setupEvent);
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell
@@ -306,6 +307,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -333,7 +335,7 @@
   _logger->eventEnd(setupEvent);
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell

Modified: short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/feassemble/ElasticityImplicit.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -162,6 +162,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -184,7 +185,7 @@
   _logger->eventEnd(setupEvent);
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell
@@ -344,6 +345,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get sections
@@ -375,7 +377,7 @@
   _logger->eventEnd(setupEvent);
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell

Modified: short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/feassemble/IntegratorElasticity.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -195,6 +195,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get fields
@@ -205,7 +206,7 @@
 					      dispCell.size(), &dispCell[0]);
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Retrieve geometry information for current cell
@@ -266,8 +267,9 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", _material->id());
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     const int cellNumCorners = sieveMesh->getNumCellCorners(*c_iter);
@@ -403,6 +405,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get field
@@ -416,7 +419,7 @@
   assert(!fieldSection.isNull());
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Retrieve geometry information for current cell
@@ -477,6 +480,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", materialId);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
   // Get field
@@ -484,7 +488,7 @@
   assert(!fieldSection.isNull());
 
   // Loop over cells
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     fieldSection->restrictPoint(*c_iter, &strainCell[0], strainCell.size());

Modified: short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/feassemble/Quadrature.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -141,6 +141,8 @@
     << std::endl;
 #endif
 
+  assert(!cells.isNull());
+  const typename label_sequence::iterator cellsBegin = cells->begin();
   const typename label_sequence::iterator cellsEnd = cells->end();
   assert(0 != _geometry);
   const int numBasis = _numBasis;
@@ -161,7 +163,7 @@
   const double_array& jacobianDet = _engine->jacobianDet();
   const double_array& basisDeriv = _engine->basisDeriv();
 
-  for(typename label_sequence::iterator c_iter = cells->begin();
+  for(typename label_sequence::iterator c_iter = cellsBegin;
       c_iter != cellsEnd;
       ++c_iter) {
     coordsVisitor.clear();

Modified: short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/materials/ElasticMaterial.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -255,7 +255,7 @@
   const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     retrievePropsAndVars(*c_iter);
@@ -347,6 +347,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", id());
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   const spatialdata::geocoords::CoordSys* cs = mesh.coordsys();
 
@@ -403,7 +404,7 @@
   const ALE::Obj<RealSection>& stressSection = _initialStress->section();
   assert(!stressSection.isNull());
     
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell
@@ -472,6 +473,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", id());
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   const spatialdata::geocoords::CoordSys* cs = mesh.coordsys();
 
@@ -528,7 +530,7 @@
   const ALE::Obj<RealSection>& strainSection = _initialStrain->section();
   assert(!strainSection.isNull());
     
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell

Modified: short/3D/PyLith/trunk/libsrc/materials/Material.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/materials/Material.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/materials/Material.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -112,6 +112,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", _id);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   const spatialdata::geocoords::CoordSys* cs = mesh.coordsys();
   assert(0 != cs);
@@ -175,7 +176,7 @@
   assert(0 != _normalizer);
   const double lengthScale = _normalizer->lengthScale();
     
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     // Compute geometry information for current cell
@@ -259,6 +260,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->getLabelStratum("material-id", _id);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   
   if (propertyIndex >= 0) { // If field is a property
@@ -298,7 +300,7 @@
     double_array propertiesCell(numQuadPts*numPropsQuadPt);
 
     // Loop over cells
-    for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+    for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
 	 c_iter != cellsEnd;
 	 ++c_iter) {
       propertiesSection->restrictPoint(*c_iter, 
@@ -353,7 +355,7 @@
     double_array stateVarsCell(numQuadPts*numVarsQuadPt);
     
     // Loop over cells
-    for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+    for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
 	 c_iter != cellsEnd;
 	 ++c_iter) {
       stateVarsSection->restrictPoint(*c_iter, 

Modified: short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/meshio/CellFilterAvg.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -76,12 +76,13 @@
     sieveMesh->heightStratum(0) :
     sieveMesh->getLabelStratum(label, labelId);
   assert(!cells.isNull());
+  const typename label_sequence::iterator cellsBegin = cells->begin();
   const typename label_sequence::iterator cellsEnd = cells->end();
 
   // Only processors with cells for output get the correct fiber dimension.
   const ALE::Obj<RealSection>& sectionIn = fieldIn.section();
   assert(!sectionIn.isNull());
-  const int totalFiberDim = sectionIn->getFiberDimension(*cells->begin());
+  const int totalFiberDim = sectionIn->getFiberDimension(*cellsBegin);
   const int fiberDim = totalFiberDim / numQuadPts;
   assert(fiberDim * numQuadPts == totalFiberDim);
 
@@ -125,7 +126,7 @@
     scalar += wts[iQuad];
 
   // Loop over cells
-  for (typename label_sequence::iterator c_iter=cells->begin();
+  for (typename label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     const double* values = sectionIn->restrictPoint(*c_iter);

Modified: short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/meshio/MeshIO.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -110,6 +110,10 @@
   const ALE::Obj<SieveMesh::label_sequence>& vertices = 
     sieveMesh->depthStratum(0);
   assert(!vertices.isNull());
+  const SieveMesh::label_sequence::iterator verticesBegin = 
+    vertices->begin();
+  const SieveMesh::label_sequence::iterator verticesEnd = 
+    vertices->end();
   const ALE::Obj<RealSection>& coordsField =
     sieveMesh->getRealSection("coordinates");
   assert(!coordsField.isNull());
@@ -122,10 +126,8 @@
   const int size = (*numVertices) * (*spaceDim);
   coordinates->resize(size);
 
-  const SieveMesh::label_sequence::iterator verticesEnd = 
-    vertices->end();
   int i = 0;
-  for(SieveMesh::label_sequence::iterator v_iter=vertices->begin();
+  for(SieveMesh::label_sequence::iterator v_iter=verticesBegin;
       v_iter != verticesEnd;
       ++v_iter) {
     const RealSection::value_type *vertexCoords = 
@@ -162,6 +164,10 @@
   const ALE::Obj<SieveMesh::label_sequence>& meshCells = 
     sieveMesh->heightStratum(0);
   assert(!meshCells.isNull());
+  const SieveMesh::label_sequence::iterator meshCellsBegin = 
+    meshCells->begin();
+  const SieveMesh::label_sequence::iterator meshCellsEnd = 
+    meshCells->end();
 
   *meshDim = _mesh->dimension();
   *numCells = meshCells->size();
@@ -176,8 +182,8 @@
   ALE::ISieveVisitor::PointRetriever<SieveMesh::sieve_type> 
     pV(sieve->getMaxConeSize());
   int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter = meshCells->begin();
-      e_iter != meshCells->end();
+  for(SieveMesh::label_sequence::iterator e_iter = meshCellsBegin;
+      e_iter != meshCellsEnd;
       ++e_iter) {
     sieve->cone(*e_iter, pV);
     const SieveMesh::point_type *cone = pV.getPoints();
@@ -206,6 +212,10 @@
     const ALE::Obj<SieveMesh::label_sequence>& cells = 
       sieveMesh->heightStratum(0);
     assert(!cells.isNull());
+    const SieveMesh::label_sequence::iterator cellsBegin = 
+      cells->begin();
+    const SieveMesh::label_sequence::iterator cellsEnd = 
+      cells->end();
 
     const int numCells = materialIds.size();
     if (cells->size() != numCells) {
@@ -216,11 +226,10 @@
       throw std::runtime_error(msg.str());
     } // if
     int i = 0;
-    const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
 
 #ifdef IMESH_NEW_LABELS
     labelMaterials->setChart(sieveMesh->getSieve()->getChart());
-    for(SieveMesh::label_sequence::iterator e_iter = cells->begin();
+    for(SieveMesh::label_sequence::iterator e_iter = cellsBegin;
 	e_iter != cellsEnd;
 	++e_iter) {
       labelMaterials->setConeSize(*e_iter, 1);
@@ -228,7 +237,7 @@
     if (cells->size()) {labelMaterials->setSupportSize(0, cells->size());}
     labelMaterials->allocate();
 #endif
-    for(SieveMesh::label_sequence::iterator e_iter = cells->begin();
+    for(SieveMesh::label_sequence::iterator e_iter = cellsBegin;
 	e_iter != cellsEnd;
 	++e_iter) {
       sieveMesh->setValue(labelMaterials, *e_iter, materialIds[i++]);
@@ -268,6 +277,8 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->heightStratum(0);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
+  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   const int numCells = cells->size();
 
   const int size = numCells;
@@ -277,9 +288,8 @@
     sieveMesh->getLabel("material-id");
   const int idDefault = 0;
   
-  const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   int i = 0;
-  for(SieveMesh::label_sequence::iterator e_iter = cells->begin();
+  for(SieveMesh::label_sequence::iterator e_iter = cellsBegin;
       e_iter != cellsEnd;
       ++e_iter)
     (*materialIds)[i++] = 

Modified: short/3D/PyLith/trunk/libsrc/topology/MeshOps.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/topology/MeshOps.cc	2009-05-05 22:12:17 UTC (rev 14878)
+++ short/3D/PyLith/trunk/libsrc/topology/MeshOps.cc	2009-05-06 00:55:58 UTC (rev 14879)
@@ -48,6 +48,7 @@
   const ALE::Obj<SieveMesh::label_sequence>& cells = 
     sieveMesh->heightStratum(0);
   assert(!cells.isNull());
+  const SieveMesh::label_sequence::iterator cellsBegin = cells->begin();
   const SieveMesh::label_sequence::iterator cellsEnd = cells->end();
   const ALE::Obj<SieveMesh::label_type>& materialsLabel = 
     sieveMesh->getLabel("material-id");
@@ -56,7 +57,7 @@
   int* matEnd = materialIds + numMaterials;
   std::sort(matBegin, matEnd);
 
-  for (SieveMesh::label_sequence::iterator c_iter=cells->begin();
+  for (SieveMesh::label_sequence::iterator c_iter=cellsBegin;
        c_iter != cellsEnd;
        ++c_iter) {
     const int cellId = sieveMesh->getValue(materialsLabel, *c_iter);



More information about the CIG-COMMITS mailing list