[cig-commits] r21332 - short/3D/PyLith/trunk/libsrc/pylith/faults
knepley at geodynamics.org
knepley at geodynamics.org
Mon Feb 4 18:42:40 PST 2013
Author: knepley
Date: 2013-02-04 18:42:39 -0800 (Mon, 04 Feb 2013)
New Revision: 21332
Modified:
short/3D/PyLith/trunk/libsrc/pylith/faults/CohesiveTopology.cc
Log:
Fix creation of new subpointMap
Modified: short/3D/PyLith/trunk/libsrc/pylith/faults/CohesiveTopology.cc
===================================================================
--- short/3D/PyLith/trunk/libsrc/pylith/faults/CohesiveTopology.cc 2013-02-05 02:41:37 UTC (rev 21331)
+++ short/3D/PyLith/trunk/libsrc/pylith/faults/CohesiveTopology.cc 2013-02-05 02:42:39 UTC (rev 21332)
@@ -149,7 +149,7 @@
DM dm;
DMLabel subpointMap;
PetscInt *renum;
- PetscInt pStart, pEnd;
+ PetscInt pStart, pEnd, cStart, cEnd, vStart, vEnd;
PetscErrorCode err;
SieveSubMesh::renumbering_type renumbering;
@@ -168,7 +168,12 @@
for(PetscInt p = 1; p < pEnd-pStart; ++p) {
assert(renum[p] > renum[p-1]);
}
- for(PetscInt p = 0; p < pEnd-pStart; ++p) {
+ err = DMPlexGetHeightStratum(dm, 0, &cStart, &cEnd);CHECK_PETSC_ERROR(err);
+ for(PetscInt p = cStart; p < cEnd; ++p) {
+ err = DMLabelSetValue(subpointMap, renum[p], mesh.dimension());CHECK_PETSC_ERROR(err);
+ }
+ err = DMPlexGetDepthStratum(dm, 0, &vStart, &vEnd);CHECK_PETSC_ERROR(err);
+ for(PetscInt p = vStart; p < vEnd; ++p) {
err = DMLabelSetValue(subpointMap, renum[p], 0);CHECK_PETSC_ERROR(err);
}
err = PetscFree(renum);CHECK_PETSC_ERROR(err);
@@ -1200,11 +1205,12 @@
// Have to make subpointMap here: renumbering[original] = fault
DMLabel subpointMap;
PetscInt *renum;
- PetscInt pStart, pEnd;
+ PetscInt pStart, pEnd, fcStart, fcEnd;
err = DMLabelCreate("subpoint_map", &subpointMap);CHECK_PETSC_ERROR(err);
err = DMPlexGetChart(dmFaultMesh, &pStart, &pEnd);CHECK_PETSC_ERROR(err);
err = DMPlexGetDepthStratum(dmFaultMesh, 0, &fvStart, &fvEnd);CHECK_PETSC_ERROR(err);
+ err = DMPlexGetHeightStratum(dmFaultMesh, 0, &fcStart, &fcEnd);CHECK_PETSC_ERROR(err);
assert(convertRenumbering.size() == pEnd-pStart);
err = PetscMalloc((pEnd-pStart) * sizeof(PetscInt), &renum);CHECK_PETSC_ERROR(err);
std::cout << std::endl;
@@ -1225,7 +1231,10 @@
if (renum[p-1] == -1) continue;
assert(renum[p] > renum[p-1]);
}
- for(PetscInt p = 0; p < pEnd-pStart; ++p) {
+ for(PetscInt p = fcStart; p < fcEnd; ++p) {
+ err = DMLabelSetValue(subpointMap, renum[p], mesh.dimension());CHECK_PETSC_ERROR(err);
+ }
+ for(PetscInt p = fvStart; p < fvEnd; ++p) {
err = DMLabelSetValue(subpointMap, renum[p], 0);CHECK_PETSC_ERROR(err);
}
err = PetscFree(renum);CHECK_PETSC_ERROR(err);
More information about the CIG-COMMITS
mailing list