From 5c9f35339e613e2a465e6ceef61fadc75c7b5a66 Mon Sep 17 00:00:00 2001 From: mattijs <mattijs> Date: Wed, 23 Jul 2014 11:25:11 +0100 Subject: [PATCH] ENH: snappyHexMesh: additional checking for faceZones on processor boundaries --- .../autoHexMeshDriver/autoRefineDriver.C | 6 ++++ .../meshRefinement/meshRefinement.H | 3 ++ .../meshRefinement/meshRefinementBaffles.C | 30 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C index 48fcdbbb064..8c63239f397 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoRefineDriver.C @@ -1248,6 +1248,12 @@ void Foam::autoRefineDriver::doRefine decomposer_, distributor_ ); + + + if (debug) + { + meshRefiner_.checkZoneFaces(); + } } } diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H index 78b7d9a1a11..770b50254ad 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinement.H @@ -870,6 +870,9 @@ public: const labelList& neiPatch ); + //- Debug helper: check faceZones are not on processor patches + void checkZoneFaces() const; + //- Create baffles for faces straddling zoned surfaces. Return // baffles. autoPtr<mapPolyMesh> createZoneBaffles diff --git a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C index 76bb6150efb..6dc77b39493 100644 --- a/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/autoMesh/autoHexMesh/meshRefinement/meshRefinementBaffles.C @@ -531,6 +531,36 @@ Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createBaffles } +void Foam::meshRefinement::checkZoneFaces() const +{ + const faceZoneMesh& fZones = mesh_.faceZones(); + + const polyBoundaryMesh& pbm = mesh_.boundaryMesh(); + + forAll(pbm, patchI) + { + const polyPatch& pp = pbm[patchI]; + + if (isA<processorPolyPatch>(pp)) + { + forAll(pp, i) + { + label faceI = pp.start()+i; + label zoneI = fZones.whichZone(faceI); + + if (zoneI != -1) + { + FatalErrorIn("meshRefinement::checkZoneFaces") + << "face:" << faceI << " on patch " << pp.name() + << " is in zone " << fZones[zoneI].name() + << exit(FatalError); + } + } + } + } +} + + Foam::autoPtr<Foam::mapPolyMesh> Foam::meshRefinement::createZoneBaffles ( const labelList& globalToMasterPatch, -- GitLab