[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