diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C index ee6cea3e121be5c1a516d7424d82107fa9c0bbee..01ab952c165a5997df49085828e556fb41d6d209 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C @@ -2804,6 +2804,22 @@ void Foam::autoLayerDriver::addLayers << "Layer addition iteration " << iteration << nl << "--------------------------" << endl; + + // Unset the extrusion at the pp. + const dictionary& meshQualityDict = + ( + iteration < layerParams.nRelaxedIter() + ? motionDict + : motionDict.subDict("relaxed") + ); + + if (iteration >= layerParams.nRelaxedIter()) + { + Info<< "Switched to relaxed meshQuality constraints." << endl; + } + + + // Make sure displacement is equal on both sides of coupled patches. syncPatchDisplacement ( @@ -2845,6 +2861,7 @@ void Foam::autoLayerDriver::addLayers shrinkMeshMedialDistance ( meshMover, + meshQualityDict, layerParams.nSmoothThickness(), layerParams.maxThicknessToMedialRatio(), @@ -3044,19 +3061,6 @@ void Foam::autoLayerDriver::addLayers layerFacesSet.write(); } - // Unset the extrusion at the pp. - const dictionary& meshQualityDict = - ( - iteration < layerParams.nRelaxedIter() - ? motionDict - : motionDict.subDict("relaxed") - ); - - if (iteration >= layerParams.nRelaxedIter()) - { - Info<< "Switched to relaxed meshQuality constraints." << endl; - } - label nTotChanged = checkAndUnmark ( diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H index 6cdec2004b68cbe8206b3e71c0dabc7387f0cd1d..164fd88ce04e5b06c33ef1c48d8745ea34a8dcc0 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.H @@ -473,6 +473,7 @@ class autoLayerDriver void shrinkMeshMedialDistance ( motionSmoother& meshMover, + const dictionary& meshQualityDict, const label nSmoothThickness, const scalar maxThicknessToMedialRatio, const label nAllowableErrors, diff --git a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C index 615978a308a973f611bf8455a822a81c57cbc392..cc88231b745637041d677b73ae6b6c1d92167b63 100644 --- a/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C +++ b/src/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriverShrink.C @@ -792,7 +792,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo wallInfo, pointWallDist, edgeWallDist, - mesh.nPoints() // max iterations + mesh.globalData().nTotalPoints() // max iterations ); } @@ -897,7 +897,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo pointMedialDist, edgeMedialDist, - mesh.nPoints() // max iterations + mesh.globalData().nTotalPoints() // max iterations ); // Extract medial axis distance as pointScalarField @@ -953,6 +953,7 @@ void Foam::autoLayerDriver::medialAxisSmoothingInfo void Foam::autoLayerDriver::shrinkMeshMedialDistance ( motionSmoother& meshMover, + const dictionary& meshQualityDict, const label nSmoothThickness, const scalar maxThicknessToMedialRatio, const label nAllowableErrors, @@ -1103,7 +1104,7 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance wallInfo, pointWallDist, edgeWallDist, - mesh.nPoints() // max iterations + mesh.globalData().nTotalPoints() // max iterations ); } @@ -1138,7 +1139,18 @@ void Foam::autoLayerDriver::shrinkMeshMedialDistance oldErrorReduction = meshMover.setErrorReduction(0.0); } - if (meshMover.scaleMesh(checkFaces, true, nAllowableErrors)) + if + ( + meshMover.scaleMesh + ( + checkFaces, + List<labelPair>(0), + meshMover.paramDict(), + meshQualityDict, + true, + nAllowableErrors + ) + ) { Info<< "shrinkMeshMedialDistance : Successfully moved mesh" << endl; break; diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.C b/src/dynamicMesh/motionSmoother/motionSmoother.C index 4f40827f4b3a8030217e79098e6716f8db96e018..d780ec79dde3dc9d33c007b0a3ddc73271d72b69 100644 --- a/src/dynamicMesh/motionSmoother/motionSmoother.C +++ b/src/dynamicMesh/motionSmoother/motionSmoother.C @@ -502,6 +502,12 @@ const Foam::labelList& Foam::motionSmoother::adaptPatchIDs() const } +const Foam::dictionary& Foam::motionSmoother::paramDict() const +{ + return paramDict_; +} + + Foam::pointVectorField& Foam::motionSmoother::displacement() { return displacement_; diff --git a/src/dynamicMesh/motionSmoother/motionSmoother.H b/src/dynamicMesh/motionSmoother/motionSmoother.H index e4aeac6f50756ec9a5f27da2602aa80ddad26036..3d853e476d3df0f757339ef8de1e3fee44c1ca66 100644 --- a/src/dynamicMesh/motionSmoother/motionSmoother.H +++ b/src/dynamicMesh/motionSmoother/motionSmoother.H @@ -327,6 +327,8 @@ public: //- Patch labels that are being adapted const labelList& adaptPatchIDs() const; + const dictionary& paramDict() const; + //- Reference to displacement field pointVectorField& displacement();