diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C index 14bf0ee9eb9d5eec0442060b3ca8a308f2bd1e74..f177e7de8187f4d9deda4e71de7e77f4246a2b0c 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMesh.C @@ -247,7 +247,8 @@ int main(int argc, char *argv[]) refinementSurfaces surfaces ( allGeometry, - refineDict.subDict("refinementSurfaces") + refineDict.subDict("refinementSurfaces"), + refineDict.lookupOrDefault("gapLevelIncrement", 0) ); Info<< "Read refinement surfaces in = " << mesh.time().cpuTimeIncrement() << " s" << nl << endl; @@ -551,6 +552,13 @@ int main(int argc, char *argv[]) const Switch wantSnap(meshDict.lookup("snap")); const Switch wantLayers(meshDict.lookup("addLayers")); + // Refinement parameters + const refinementParameters refineParams(refineDict); + + // Snap parameters + const snapParameters snapParams(snapDict); + + if (wantRefine) { cpuTime timer; @@ -564,15 +572,20 @@ int main(int argc, char *argv[]) globalToSlavePatch ); - // Refinement parameters - refinementParameters refineParams(refineDict); if (!overwrite && !debug) { const_cast<Time&>(mesh.time())++; } - refineDriver.doRefine(refineDict, refineParams, wantSnap, motionDict); + refineDriver.doRefine + ( + refineDict, + refineParams, + snapParams, + wantSnap, + motionDict + ); writeMesh ( @@ -596,20 +609,14 @@ int main(int argc, char *argv[]) globalToSlavePatch ); - // Snap parameters - snapParameters snapParams(snapDict); - // Temporary hack to get access to resolveFeatureAngle - scalar curvature; - { - refinementParameters refineParams(refineDict); - curvature = refineParams.curvature(); - } - if (!overwrite && !debug) { const_cast<Time&>(mesh.time())++; } + // Use the resolveFeatureAngle from the refinement parameters + scalar curvature = refineParams.curvature(); + snapDriver.doSnap(snapDict, motionDict, curvature, snapParams); writeMesh @@ -637,17 +644,12 @@ int main(int argc, char *argv[]) // Layer addition parameters layerParameters layerParams(layerDict, mesh.boundaryMesh()); - //!!! Temporary hack to get access to maxLocalCells - bool preBalance; - { - refinementParameters refineParams(refineDict); - - preBalance = returnReduce - ( - (mesh.nCells() >= refineParams.maxLocalCells()), - orOp<bool>() - ); - } + // Use the maxLocalCells from the refinement parameters + bool preBalance = returnReduce + ( + (mesh.nCells() >= refineParams.maxLocalCells()), + orOp<bool>() + ); if (!overwrite && !debug) diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict index 7d1ad76db3007982d4977face4a0b095f9697d57..ba16b1c4aadcbbcc05b83075b4cc7b447aca471f 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict @@ -153,7 +153,7 @@ castellatedMeshControls } - //- Optional increment (on top of max level) in small gaps. + //- Optional increment (on top of max level) in small gaps //gapLevelIncrement 2; //- Optional angle to detect small-large cell situation @@ -184,14 +184,17 @@ castellatedMeshControls // - used if feature snapping (see snapControls below) is used resolveFeatureAngle 30; + //- Optional increment (on top of max level) in small gaps + //gapLevelIncrement 2; + // Planar angle: // - used to determine if surface normals - // are roughly the same or opposite. Used e.g. in gap refinement + // are roughly the same or opposite. Used e.g. in proximity refinement // and to decide when to merge free-standing baffles // // If not specified same as resolveFeatureAngle - planarAngle 15; + planarAngle 30; // Region-wise refinement @@ -235,6 +238,9 @@ castellatedMeshControls // are only on the boundary of corresponding cellZones or also allow // free-standing zone faces. Not used if there are no faceZones. allowFreeStandingZoneFaces true; + + // + //useTopologicalSnapDetection false; } // Settings for the snapping.