diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C index 6b8e453a23..cde1f3a3a5 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.C @@ -2514,6 +2514,7 @@ Foam::label Foam::meshRefinement::findRegions const vector& perturbVec, const pointField& locationsInMesh, const pointField& locationsOutsideMesh, + const bool exitIfLeakPath, const writer& leakPathFormatter, const label nRegions, labelList& cellRegion, @@ -2725,13 +2726,25 @@ Foam::label Foam::meshRefinement::findRegions Pstream::scatter(fName); - FatalErrorInFunction - << "Location in mesh " << locationsInMesh[index] - << " is inside same mesh region " << regioni - << " as one of the locations outside mesh " - << locationsOutsideMesh - << nl << " Dumped leak path to " << fName - << exit(FatalError); + if (exitIfLeakPath) + { + FatalErrorInFunction + << "Location in mesh " << locationsInMesh[index] + << " is inside same mesh region " << regioni + << " as one of the locations outside mesh " + << locationsOutsideMesh + << nl << " Dumped leak path to " << fName + << exit(FatalError); + } + else + { + WarningInFunction + << "Location in mesh " << locationsInMesh[index] + << " is inside same mesh region " << regioni + << " as one of the locations outside mesh " + << locationsOutsideMesh + << nl << "Dumped leak path to " << fName << endl; + } } } } @@ -2763,6 +2776,7 @@ Foam::autoPtr Foam::meshRefinement::splitMeshRegions const labelList& globalToSlavePatch, const pointField& locationsInMesh, const pointField& locationsOutsideMesh, + const bool exitIfLeakPath, const writer& leakPathFormatter ) { @@ -2783,6 +2797,7 @@ Foam::autoPtr Foam::meshRefinement::splitMeshRegions mergeDistance_ * vector::one, // perturbVec locationsInMesh, locationsOutsideMesh, + exitIfLeakPath, leakPathFormatter, cellRegion.nRegions(), cellRegion, diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H index 4e7ac25c55..4bf5205315 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinement.H @@ -1439,6 +1439,7 @@ public: const vector& perturbVec, const pointField& locationsInMesh, const pointField& locationsOutsideMesh, + const bool exitIfLeakPath, const writer& leakPathFormatter, const label nRegions, labelList& cellRegion, @@ -1453,6 +1454,7 @@ public: const labelList& globalToSlavePatch, const pointField& locationsInMesh, const pointField& locationsOutsideMesh, + const bool exitIfLeakPath, const writer& leakPathFormatter ); diff --git a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C index 132f55a39d..eaa2e90169 100644 --- a/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C +++ b/src/mesh/snappyHexMesh/meshRefinement/meshRefinementBaffles.C @@ -4258,6 +4258,7 @@ void Foam::meshRefinement::baffleAndSplitMesh globalToSlavePatch, locationsInMesh, locationsOutsideMesh, + true, // Exit if any connection between inside and outside leakPathFormatter ); @@ -4368,6 +4369,7 @@ void Foam::meshRefinement::mergeFreeStandingBaffles globalToSlavePatch, locationsInMesh, locationsOutsideMesh, + true, // Exit if any connection between inside and outside leakPathFormatter ); @@ -4443,6 +4445,7 @@ Foam::autoPtr Foam::meshRefinement::splitMesh mergeDistance_ * vector::one, // perturbVec locationsInMesh, locationsOutsideMesh, + false, // do not exit if outside location found leakPathFormatter, cellRegion.nRegions(), cellRegion, diff --git a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C index f6b3d21cd7..5dd6392ac4 100644 --- a/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C +++ b/src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyRefineDriver.C @@ -2700,6 +2700,7 @@ void Foam::snappyRefineDriver::splitAndMergeBaffles globalToSlavePatch_, refineParams.locationsInMesh(), refineParams.locationsOutsideMesh(), + true, // exit if any path to outside points setFormatter_ ); diff --git a/tutorials/mesh/snappyHexMesh/motorBike_leakDetection/system/snappyHexMeshDict b/tutorials/mesh/snappyHexMesh/motorBike_leakDetection/system/snappyHexMeshDict index fdffc79faa..e8f6279ee3 100644 --- a/tutorials/mesh/snappyHexMesh/motorBike_leakDetection/system/snappyHexMeshDict +++ b/tutorials/mesh/snappyHexMesh/motorBike_leakDetection/system/snappyHexMeshDict @@ -119,7 +119,7 @@ castellatedMeshControls "motorBike.*" { // Surface-wise min and max refinement level - level (5 6); + level (6 6); // Optional specification of patch type (default is wall). No // constraint types (cyclic, symmetry) etc. are allowed.