[cig-commits] [commit] knepley/fix-faults-parallel: Ignore clamped vertices when setting slip. (1169098)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri Apr 18 13:33:46 PDT 2014


Repository : ssh://geoshell/pylith

On branch  : knepley/fix-faults-parallel
Link       : https://github.com/geodynamics/pylith/compare/1cbca9cbd832376cceca629383ad3c8e3db090f0...1169098c7387a0574706ddb12645c08f3401a304

>---------------------------------------------------------------

commit 1169098c7387a0574706ddb12645c08f3401a304
Author: Brad Aagaard <baagaard at usgs.gov>
Date:   Fri Apr 18 13:33:25 2014 -0700

    Ignore clamped vertices when setting slip.


>---------------------------------------------------------------

1169098c7387a0574706ddb12645c08f3401a304
 libsrc/pylith/faults/BruneSlipFn.cc       | 25 +++++++++++++------------
 libsrc/pylith/faults/ConstRateSlipFn.cc   |  9 +++++++++
 libsrc/pylith/faults/LiuCosSlipFn.cc      |  9 +++++++++
 libsrc/pylith/faults/StepSlipFn.cc        |  9 +++++++++
 libsrc/pylith/faults/TimeHistorySlipFn.cc |  9 +++++++++
 5 files changed, 49 insertions(+), 12 deletions(-)

diff --git a/libsrc/pylith/faults/BruneSlipFn.cc b/libsrc/pylith/faults/BruneSlipFn.cc
index 185642c..6413f28 100644
--- a/libsrc/pylith/faults/BruneSlipFn.cc
+++ b/libsrc/pylith/faults/BruneSlipFn.cc
@@ -26,6 +26,7 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/faults/FaultCohesiveLagrange.hh" // USES isClampedVertex()
 
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
@@ -160,17 +161,17 @@ pylith::faults::BruneSlipFn::initialize(const topology::Mesh& faultMesh,
   scalar_array vCoordsGlobal(spaceDim);
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsArray = coordsVisitor.localArray();
+
   PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
-  DMLabel clamped;
-  PetscErrorCode err;
+  PetscDMLabel clamped = NULL;
+  PetscErrorCode err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
 
-  err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
   _slipVertex.resize(spaceDim);
-  for(PetscInt v = vStart; v < vEnd; ++v) {
-    PetscInt value = -1;
+  for (PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
       
-    if (clamped) {err = DMLabelGetValue(clamped, v, &value);PYLITH_CHECK_ERROR(err);}
-    if (value >= 0) continue;
     // Dimensionalize coordinates
     const PetscInt coff = coordsVisitor.sectionOffset(v);
     assert(spaceDim == coordsVisitor.sectionDof(v));
@@ -270,16 +271,16 @@ pylith::faults::BruneSlipFn::slip(topology::Field* slip,
 
   topology::VecVisitorMesh slipVisitor(*slip);
   PetscScalar* slipArray = slipVisitor.localArray();
-  DMLabel clamped;
+  DMLabel clamped = NULL;
   PetscErrorCode err;
 
   err = DMPlexGetLabel(dmMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
   const int spaceDim = _slipVertex.size();
-  for(PetscInt v = vStart; v < vEnd; ++v) {
-    PetscInt value = -1;
+  for (PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
 
-    if (clamped) {err = DMLabelGetValue(clamped, v, &value);PYLITH_CHECK_ERROR(err);}
-    if (value >= 0) continue;
     const PetscInt fsoff = finalSlipVisitor.sectionOffset(v);
     const PetscInt stoff = slipTimeVisitor.sectionOffset(v);
     const PetscInt rtoff = riseTimeVisitor.sectionOffset(v);
diff --git a/libsrc/pylith/faults/ConstRateSlipFn.cc b/libsrc/pylith/faults/ConstRateSlipFn.cc
index e21cac2..cd92c3a 100644
--- a/libsrc/pylith/faults/ConstRateSlipFn.cc
+++ b/libsrc/pylith/faults/ConstRateSlipFn.cc
@@ -26,6 +26,7 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/faults/FaultCohesiveLagrange.hh" // USES isClampedVertex()
 
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
@@ -146,8 +147,16 @@ pylith::faults::ConstRateSlipFn::initialize(const topology::Mesh& faultMesh,
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsArray = coordsVisitor.localArray();
 
+  PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
+  PetscDMLabel clamped = NULL;
+  PetscErrorCode err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
+
   _slipRateVertex.resize(spaceDim);
   for(PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
+      
     // Dimensionalize coordinates
     const PetscInt coff = coordsVisitor.sectionOffset(v);
     assert(spaceDim == coordsVisitor.sectionDof(v));
diff --git a/libsrc/pylith/faults/LiuCosSlipFn.cc b/libsrc/pylith/faults/LiuCosSlipFn.cc
index c35a088..6b37aec 100644
--- a/libsrc/pylith/faults/LiuCosSlipFn.cc
+++ b/libsrc/pylith/faults/LiuCosSlipFn.cc
@@ -26,6 +26,7 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/faults/FaultCohesiveLagrange.hh" // USES isClampedVertex()
 
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
@@ -162,8 +163,16 @@ pylith::faults::LiuCosSlipFn::initialize(const topology::Mesh& faultMesh,
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsArray = coordsVisitor.localArray();
 
+  PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
+  PetscDMLabel clamped = NULL;
+  PetscErrorCode err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
+
   _slipVertex.resize(spaceDim);
   for(PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
+      
     // Dimensionalize coordinates
     const PetscInt coff = coordsVisitor.sectionOffset(v);
     assert(spaceDim == coordsVisitor.sectionDof(v));
diff --git a/libsrc/pylith/faults/StepSlipFn.cc b/libsrc/pylith/faults/StepSlipFn.cc
index 1d69b0f..0315855 100644
--- a/libsrc/pylith/faults/StepSlipFn.cc
+++ b/libsrc/pylith/faults/StepSlipFn.cc
@@ -26,6 +26,7 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/faults/FaultCohesiveLagrange.hh" // USES isClampedVertex()
 
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/geocoords/CoordSys.hh" // USES CoordSys
@@ -145,8 +146,16 @@ pylith::faults::StepSlipFn::initialize(const topology::Mesh& faultMesh,
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsArray = coordsVisitor.localArray();
 
+  PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
+  PetscDMLabel clamped = NULL;
+  PetscErrorCode err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
+
   _slipVertex.resize(spaceDim);
   for(PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
+      
     // Dimensionalize coordinates
     const PetscInt coff = coordsVisitor.sectionOffset(v);
     assert(spaceDim == coordsVisitor.sectionDof(v));
diff --git a/libsrc/pylith/faults/TimeHistorySlipFn.cc b/libsrc/pylith/faults/TimeHistorySlipFn.cc
index da419b3..ba21583 100644
--- a/libsrc/pylith/faults/TimeHistorySlipFn.cc
+++ b/libsrc/pylith/faults/TimeHistorySlipFn.cc
@@ -26,6 +26,7 @@
 #include "pylith/topology/CoordsVisitor.hh" // USES CoordsVisitor
 #include "pylith/topology/VisitorMesh.hh" // USES VecVisitorMesh
 #include "pylith/topology/Stratum.hh" // USES Stratum
+#include "pylith/faults/FaultCohesiveLagrange.hh" // USES isClampedVertex()
 
 #include "spatialdata/spatialdb/SpatialDB.hh" // USES SpatialDB
 #include "spatialdata/spatialdb/TimeHistory.hh" // USES TimeHistory
@@ -151,8 +152,16 @@ pylith::faults::TimeHistorySlipFn::initialize(const topology::Mesh& faultMesh,
   topology::CoordsVisitor coordsVisitor(dmMesh);
   PetscScalar* coordsArray = coordsVisitor.localArray();
 
+  PetscDM faultDMMesh = faultMesh.dmMesh();assert(faultDMMesh);
+  PetscDMLabel clamped = NULL;
+  PetscErrorCode err = DMPlexGetLabel(faultDMMesh, "clamped", &clamped);PYLITH_CHECK_ERROR(err);
+
   _slipVertex.resize(spaceDim);
   for(PetscInt v = vStart; v < vEnd; ++v) {
+    if (FaultCohesiveLagrange::isClampedVertex(clamped, v)) {
+      continue;
+    } // if
+      
     // Dimensionalize coordinates
     const PetscInt coff = coordsVisitor.sectionOffset(v);
     assert(spaceDim == coordsVisitor.sectionDof(v));



More information about the CIG-COMMITS mailing list