diff --git a/applications/utilities/surface/surfaceRemoveBaffles/Make/files b/applications/utilities/surface/surfaceRemoveBaffles/Make/files deleted file mode 100644 index 04a5b4c7cf..0000000000 --- a/applications/utilities/surface/surfaceRemoveBaffles/Make/files +++ /dev/null @@ -1,4 +0,0 @@ - -surfaceRemoveBaffles.C - -EXE = $(FOAM_APPBIN)/surfaceRemoveBaffles diff --git a/applications/utilities/surface/surfaceSplitByTopology/Make/files b/applications/utilities/surface/surfaceSplitByTopology/Make/files new file mode 100644 index 0000000000..c4553d9514 --- /dev/null +++ b/applications/utilities/surface/surfaceSplitByTopology/Make/files @@ -0,0 +1,4 @@ + +surfaceSplitByTopology.C + +EXE = $(FOAM_APPBIN)/surfaceSplitByTopology diff --git a/applications/utilities/surface/surfaceRemoveBaffles/Make/options b/applications/utilities/surface/surfaceSplitByTopology/Make/options similarity index 100% rename from applications/utilities/surface/surfaceRemoveBaffles/Make/options rename to applications/utilities/surface/surfaceSplitByTopology/Make/options diff --git a/applications/utilities/surface/surfaceRemoveBaffles/surfaceRemoveBaffles.C b/applications/utilities/surface/surfaceSplitByTopology/surfaceSplitByTopology.C similarity index 80% rename from applications/utilities/surface/surfaceRemoveBaffles/surfaceRemoveBaffles.C rename to applications/utilities/surface/surfaceSplitByTopology/surfaceSplitByTopology.C index 538cf356a2..071bc3da6c 100644 --- a/applications/utilities/surface/surfaceRemoveBaffles/surfaceRemoveBaffles.C +++ b/applications/utilities/surface/surfaceSplitByTopology/surfaceSplitByTopology.C @@ -48,7 +48,6 @@ int main(int argc, char *argv[]) fileName surfFileName(args.additionalArgs()[0]); Info<< "Reading surface from " << surfFileName << endl; - fileName outFileName(args.additionalArgs()[1]); fileName outFileBaseName = outFileName.lessExt(); word outExtension = outFileName.ext(); @@ -61,6 +60,8 @@ int main(int argc, char *argv[]) label iterationNo = 0; label iterationLimit = 10; + Info<< "Splitting off baffle parts " << endl; + do { anyZoneRemoved = false; @@ -151,7 +152,7 @@ int main(int argc, char *argv[]) if (iterationNo == iterationLimit) { - WarningIn("surfaceRemoveBaffles") + WarningIn("surfaceSplitByTopology") << "Iteration limit of " << iterationLimit << "reached" << endl; } @@ -163,6 +164,54 @@ int main(int argc, char *argv[]) surf.write(outFileName); + labelList faceZone; + + const labelListList& edFaces = surf.edgeFaces(); + + boolList multipleEdges(edFaces.size(), false); + + forAll(multipleEdges, i) + { + if (edFaces[i].size() > 2) + { + multipleEdges[i] = true; + } + } + + label nZones = surf.markZones(multipleEdges, faceZone); + + Info<< "Splitting remaining multiply connected parts" << endl; + + for (label z = 0; z < nZones; z++) + { + + boolList include(faceZone.size(), false); + labelList pointMap; + labelList faceMap; + + forAll(faceZone, f) + { + if (faceZone[f] == z) + { + include[f] = true; + } + } + + triSurface zoneSurf = surf.subsetMesh(include, pointMap, faceMap); + + + fileName remainingPartFileName = + outFileBaseName + + "_multiplePart_" + + name(z) + + "." + outExtension; + + Info<< " Writing mulitple part " + << z << " to " << remainingPartFileName << endl; + + zoneSurf.write(remainingPartFileName); + } + Info << "End\n" << endl; return 0;