[cig-commits] r17145 - short/3D/PyLith/branches/v1.5-stable/libsrc/faults

brad at geodynamics.org brad at geodynamics.org
Mon Aug 30 08:49:03 PDT 2010


Author: brad
Date: 2010-08-30 08:49:03 -0700 (Mon, 30 Aug 2010)
New Revision: 17145

Modified:
   short/3D/PyLith/branches/v1.5-stable/libsrc/faults/FaultCohesiveLagrange.cc
   short/3D/PyLith/branches/v1.5-stable/libsrc/faults/TopologyOps.cc
Log:
Fixes for adjusting topology with quadratic cells.

Modified: short/3D/PyLith/branches/v1.5-stable/libsrc/faults/FaultCohesiveLagrange.cc
===================================================================
--- short/3D/PyLith/branches/v1.5-stable/libsrc/faults/FaultCohesiveLagrange.cc	2010-08-30 15:48:10 UTC (rev 17144)
+++ short/3D/PyLith/branches/v1.5-stable/libsrc/faults/FaultCohesiveLagrange.cc	2010-08-30 15:49:03 UTC (rev 17145)
@@ -1359,7 +1359,7 @@
   } // if
 
   // Check quadrature against mesh
-  const int numCorners = _quadrature->refGeometry().numCorners();
+  const int numCorners = _quadrature->numBasis();
   const ALE::Obj<SieveMesh::label_sequence>& cells =
       sieveMesh->getLabelStratum("material-id", id());
   assert(!cells.isNull());

Modified: short/3D/PyLith/branches/v1.5-stable/libsrc/faults/TopologyOps.cc
===================================================================
--- short/3D/PyLith/branches/v1.5-stable/libsrc/faults/TopologyOps.cc	2010-08-30 15:48:10 UTC (rev 17144)
+++ short/3D/PyLith/branches/v1.5-stable/libsrc/faults/TopologyOps.cc	2010-08-30 15:49:03 UTC (rev 17145)
@@ -155,6 +155,7 @@
   PointArray                     origVertices;
   PointArray                     faceVertices;
 
+  faultSieve->setDebug(2);
   if (!faultSieve->commRank()) {
     numCorners = mesh->getNumCellCorners();
     faceSize   = selection::numFaceVertices(mesh);
@@ -226,12 +227,26 @@
           if (dim == 0) {
             f = *faceVertices.begin();
           }
-          if (faceSize != dim+1) {
+
+	  std::cout << "dim: " << dim << ", faceSize: " << faceSize << ", numCorners: " << numCorners << std::endl;
+
+          if (2 == dim && 4 == faceSize){
             if (debug) std::cout << "  Adding hex face " << f << std::endl;
-            ALE::SieveBuilder<ALE::Mesh>::buildHexFaces(faultSieve, orientation, dim, curElement, bdVertices, oFaultFaces, f, o);
+            ALE::SieveBuilder<ALE::Mesh>::buildHexFaces(
+		     faultSieve, orientation, dim, curElement, 
+		     bdVertices, oFaultFaces, f, o);
+          } else if ((1 == dim && 3 == faceSize) ||
+		     (2 == dim && 9 == faceSize)){
+            if (debug) std::cout << "  Adding quadratic hex face " << f
+				 << std::endl;
+            ALE::SieveBuilder<ALE::Mesh>::buildQuadraticHexFaces(
+		     faultSieve, orientation, dim, curElement, 
+		     bdVertices, oFaultFaces, f, o);
           } else {
             if (debug) std::cout << "  Adding simplicial face " << f << std::endl;
-            ALE::SieveBuilder<ALE::Mesh>::buildFaces(faultSieve, orientation, dim, curElement, bdVertices, oFaultFaces, f, o);
+            ALE::SieveBuilder<ALE::Mesh>::buildFaces(
+		     faultSieve, orientation, dim, curElement,
+		     bdVertices, oFaultFaces, f, o);
           }
           faultSieve->addArrow(f, support[s]);
           //faultSieve->view("");



More information about the CIG-COMMITS mailing list