[cig-commits] r22571 - short/3D/PyLith/trunk/libsrc/pylith/faults
knepley at geodynamics.org
knepley at geodynamics.org
Thu Jul 11 17:33:16 PDT 2013
Author: knepley
Date: 2013-07-11 17:33:16 -0700 (Thu, 11 Jul 2013)
New Revision: 22571
Modified:
short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc
Log:
Turned on interpolated cohesive construction
Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc 2013-07-12 00:32:43 UTC (rev 22570)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/FaultCohesive.cc 2013-07-12 00:33:16 UTC (rev 22571)
@@ -127,9 +127,10 @@
if (!_useFaultMesh) {
const char* charlabel = label();
- PetscDMLabel groupField;
- PetscBool hasLabel;
- PetscMPIInt rank;
+ PetscDMLabel groupField;
+ PetscBool hasLabel;
+ PetscInt depth, dim;
+ PetscMPIInt rank;
PetscErrorCode err;
// We do not have labels on all ranks until after distribution
err = MPI_Comm_rank(PetscObjectComm((PetscObject) dmMesh), &rank);PYLITH_CHECK_ERROR(err);
@@ -140,10 +141,16 @@
<< "' for fault interface condition.";
throw std::runtime_error(msg.str());
} // if
+ err = DMPlexGetDimension(dmMesh, &dim);PYLITH_CHECK_ERROR(err);
+ err = DMPlexGetDepth(dmMesh, &depth);PYLITH_CHECK_ERROR(err);
err = DMPlexGetLabel(dmMesh, charlabel, &groupField);PYLITH_CHECK_ERROR(err);
CohesiveTopology::createFault(&faultMesh, faultBoundary, *mesh, groupField, flipFault);
-
- CohesiveTopology::create(mesh, faultMesh, faultBoundary, groupField, id(), *firstFaultVertex, *firstLagrangeVertex, *firstFaultCell, useLagrangeConstraints());
+
+ if (dim > 1 && dim == depth) {
+ CohesiveTopology::createInterpolated(mesh, faultMesh, faultBoundary, groupField, id(), *firstFaultVertex, *firstLagrangeVertex, *firstFaultCell, useLagrangeConstraints());
+ } else {
+ CohesiveTopology::create(mesh, faultMesh, faultBoundary, groupField, id(), *firstFaultVertex, *firstLagrangeVertex, *firstFaultCell, useLagrangeConstraints());
+ }
err = DMDestroy(&faultBoundary);PYLITH_CHECK_ERROR(err);
} else {
const int faultDim = 2;
More information about the CIG-COMMITS
mailing list