From fcc77aae2886676cbbe582b1057c4ece1cb68f83 Mon Sep 17 00:00:00 2001 From: mattijs Date: Mon, 1 Oct 2012 14:13:06 +0100 Subject: [PATCH 01/61] ENH: snappyHexMesh: allow sliding --- .../autoHexMeshDriver/autoLayerDriver.C | 43 +++++- .../autoHexMeshDriver/autoLayerDriver.H | 4 +- .../autoHexMeshDriver/autoLayerDriverShrink.C | 143 +++++++++++++----- 3 files changed, 149 insertions(+), 41 deletions(-) diff --git a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C index 26b4fb0187..464fdd2b8f 100644 --- a/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C +++ b/src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoLayerDriver.C @@ -710,7 +710,8 @@ void Foam::autoLayerDriver::setNumLayers const indirectPrimitivePatch& pp, pointField& patchDisp, labelList& patchNLayers, - List& extrudeStatus + List& extrudeStatus, + label& nAddedCells ) const { const fvMesh& mesh = meshRefiner_.mesh(); @@ -797,6 +798,24 @@ void Foam::autoLayerDriver::setNumLayers } } + + // Calculate number of cells to create + nAddedCells = 0; + forAll(pp.localFaces(), faceI) + { + const face& f = pp.localFaces()[faceI]; + + // Get max of extrusion per point + label nCells = 0; + forAll(f, fp) + { + nCells = max(nCells, patchNLayers[f[fp]]); + } + + nAddedCells += nCells; + } + reduce(nAddedCells, sumOp