From 0ace34f62e4a26e4cd44edfd699e1023f634b9b9 Mon Sep 17 00:00:00 2001 From: mattijs Date: Fri, 5 Oct 2012 11:13:35 +0100 Subject: [PATCH] ENH: snappyHexMesh: additional parameter for layer truncation --- .../mesh/generation/snappyHexMesh/snappyHexMeshDict | 4 ++++ .../autoHexMesh/autoHexMeshDriver/autoLayerDriver.C | 2 +- .../autoHexMeshDriver/layerParameters/layerParameters.C | 6 ++++++ .../autoHexMeshDriver/layerParameters/layerParameters.H | 9 +++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict index ef479dbbbb..b3be8fe96f 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict @@ -310,6 +310,10 @@ addLayersControls // make straight angle. featureAngle 60; + //- At non-patched sides allow mesh to slip if extrusion direction makes + // angle larger than slipFeatureAngle. + slipFeatureAngle 30; + //- Maximum number of snapping relaxation iterations. Should stop // before upon reaching a correct mesh. nRelaxIter 5; diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C index 464fdd2b8f..5fb2d150e6 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C @@ -2800,7 +2800,7 @@ void Foam::autoLayerDriver::addLayers layerParams.nSmoothNormals(), layerParams.nSmoothSurfaceNormals(), layerParams.minMedianAxisAngleCos(), - layerParams.featureAngle(), + layerParams.slipFeatureAngle(), dispVec, medialRatio, diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.C index cc466df4be..cfc9b3703c 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.C @@ -61,6 +61,12 @@ Foam::layerParameters::layerParameters readScalar(dict.lookup("minThickness")) ), featureAngle_(readScalar(dict.lookup("featureAngle"))), + slipFeatureAngle_ + ( + dict.found("slipFeatureAngle") + ? readScalar(dict.lookup("slipFeatureAngle")) + : 0.5*featureAngle_ + ), concaveAngle_ ( dict.lookupOrDefault("concaveAngle", defaultConcaveAngle) diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.H b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.H index 4a48784ee9..5298006b04 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.H +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/layerParameters/layerParameters.H @@ -79,6 +79,8 @@ class layerParameters scalar featureAngle_; + scalar slipFeatureAngle_; + scalar concaveAngle_; label nGrow_; @@ -178,6 +180,13 @@ public: return featureAngle_; } + //- At non-patched sides allow mesh to slip if extrusion + // direction makes angle larger than slipFeatureAngle. + scalar slipFeatureAngle() const + { + return slipFeatureAngle_; + } + scalar concaveAngle() const { return concaveAngle_;