[cig-commits] [commit] knepley/upgrade-petsc-interface: Topology+Fault: Updated to new DMPlexCreateSubmesh() interface (6b5ddb4)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Thu Oct 10 09:53:40 PDT 2013


Repository : ssh://geoshell/pylith

On branch  : knepley/upgrade-petsc-interface
Link       : https://github.com/geodynamics/pylith/compare/0000000000000000000000000000000000000000...6b5ddb40724b13328c73e9702f6f00ca998a90ed

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

commit 6b5ddb40724b13328c73e9702f6f00ca998a90ed
Author: Matthew G. Knepley <knepley at gmail.com>
Date:   Thu Oct 10 11:55:09 2013 -0500

    Topology+Fault: Updated to new DMPlexCreateSubmesh() interface


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

6b5ddb40724b13328c73e9702f6f00ca998a90ed
 libsrc/pylith/faults/CohesiveTopology.cc | 8 ++++----
 libsrc/pylith/topology/Mesh.cc           | 4 +++-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/libsrc/pylith/faults/CohesiveTopology.cc b/libsrc/pylith/faults/CohesiveTopology.cc
index 104d284..9604650 100644
--- a/libsrc/pylith/faults/CohesiveTopology.cc
+++ b/libsrc/pylith/faults/CohesiveTopology.cc
@@ -54,7 +54,7 @@ pylith::faults::CohesiveTopology::createFault(topology::Mesh* faultMesh,
     const char *groupName = "", *labelName = "boundary";
 
     if (groupField) {err = DMLabelGetName(groupField, &groupName);PYLITH_CHECK_ERROR(err);}
-    err = DMPlexCreateSubmesh(dmMesh, groupName, 1, &subdm);PYLITH_CHECK_ERROR(err);
+    err = DMPlexCreateSubmesh(dmMesh, groupField, 1, &subdm);PYLITH_CHECK_ERROR(err);
     err = DMPlexOrient(subdm);PYLITH_CHECK_ERROR(err);
 
     if (flipFault) {
@@ -101,7 +101,7 @@ pylith::faults::CohesiveTopology::createFault(topology::Mesh* faultMesh,
     err = DMPlexCreateLabel(subdm, labelName);PYLITH_CHECK_ERROR(err);
     err = DMPlexGetLabel(subdm, labelName, &label);PYLITH_CHECK_ERROR(err);
     err = DMPlexMarkBoundaryFaces(subdm, label);PYLITH_CHECK_ERROR(err);
-    err = DMPlexCreateSubmesh(subdm, labelName, 1, &faultBoundary);PYLITH_CHECK_ERROR(err);
+    err = DMPlexCreateSubmesh(subdm, label, 1, &faultBoundary);PYLITH_CHECK_ERROR(err);
     std::string submeshLabel = "fault_" + std::string(groupName);
     faultMesh->dmMesh(subdm, submeshLabel.c_str());
   } else {
@@ -113,7 +113,7 @@ pylith::faults::CohesiveTopology::createFault(topology::Mesh* faultMesh,
     const char *groupName = "";
 
     if (groupField) {err = DMLabelGetName(groupField, &groupName);PYLITH_CHECK_ERROR(err);}
-    err = DMPlexCreateSubmesh(dmMesh, groupName, 1, &faultDMMeshTmp);PYLITH_CHECK_ERROR(err);
+    err = DMPlexCreateSubmesh(dmMesh, groupField, 1, &faultDMMeshTmp);PYLITH_CHECK_ERROR(err);
     err = DMPlexInterpolate(faultDMMeshTmp, &faultDMMesh);PYLITH_CHECK_ERROR(err);
     err = DMPlexGetVTKCellHeight(faultDMMeshTmp, &h);PYLITH_CHECK_ERROR(err);
     err = DMPlexSetVTKCellHeight(faultDMMesh, h);PYLITH_CHECK_ERROR(err);
@@ -182,7 +182,7 @@ pylith::faults::CohesiveTopology::createFault(topology::Mesh* faultMesh,
     err = DMPlexCreateLabel(faultDMMesh, labelName);PYLITH_CHECK_ERROR(err);
     err = DMPlexGetLabel(faultDMMesh, labelName, &label);PYLITH_CHECK_ERROR(err);
     err = DMPlexMarkBoundaryFaces(faultDMMesh, label);PYLITH_CHECK_ERROR(err);
-    err = DMPlexCreateSubmesh(faultDMMesh, labelName, 1, &faultBoundary);PYLITH_CHECK_ERROR(err);
+    err = DMPlexCreateSubmesh(faultDMMesh, label, 1, &faultBoundary);PYLITH_CHECK_ERROR(err);
   }
 
   PYLITH_METHOD_END;
diff --git a/libsrc/pylith/topology/Mesh.cc b/libsrc/pylith/topology/Mesh.cc
index 865fe5e..8e6b018 100644
--- a/libsrc/pylith/topology/Mesh.cc
+++ b/libsrc/pylith/topology/Mesh.cc
@@ -107,7 +107,9 @@ pylith::topology::Mesh::Mesh(const Mesh& mesh,
   } // if
 
   /* TODO: Add creation of pointSF for submesh */
-  err = DMPlexCreateSubmesh(dmMesh, label, 1, &_dmMesh);PYLITH_CHECK_ERROR(err);
+  DMLabel l;
+  err = DMPlexGetLabel(dmMesh, label, &l);PYLITH_CHECK_ERROR(err);
+  err = DMPlexCreateSubmesh(dmMesh, l, 1, &_dmMesh);PYLITH_CHECK_ERROR(err);
 
   PetscInt maxConeSizeLocal = 0, maxConeSize = 0;
   err = DMPlexGetMaxSizes(_dmMesh, &maxConeSizeLocal, NULL);PYLITH_CHECK_ERROR(err);



More information about the CIG-COMMITS mailing list