From 7b7967de76e0360eb4af016aa364b19365e3aab9 Mon Sep 17 00:00:00 2001 From: mattijs Date: Wed, 14 Oct 2015 14:49:37 +0100 Subject: [PATCH] ENH: snappyHexMesh: various improvements. See below or the default snappyHexMeshDict. Refinement: ----------- // Optionally avoid patch merging - keeps hexahedral cells // (to be used with automatic refinement/unrefinement) //mergePatchFaces off; // Optional multiple locationsInMesh with corresponding optional cellZone // (automatically generates faceZones inbetween) locationsInMesh ( ((-0.09 -0.039 -0.049) bottomAir) // cellZone bottomAir ((-0.09 0.009 -0.049) topAir) // cellZone topAir ); // Optional faceType and patchType specification for these faceZones faceZoneControls { bottomAir_to_topAir { faceType baffle; } } / Optional checking of 'bleeding' of mesh through a specifying a locations // outside the mesh locationsOutsideMesh ((0 0 0)(12.3 101.17 3.98)); // Improved refinement: refine all cells with all (or all but one) sides refined // Improved refinement: refine all cells with opposing faces with different // refinement level. These cells can happen on multiply curved surfaces. // Default on, can be switched off with //interfaceRefine false; Snapping -------- // Optional smoothing of points at refinement interfaces. This will reduce // the non-orthogonality at refinement interfaces. //nSmoothInternal $nSmoothPatch; Layering -------- // Layers can be added to patches or to any side of a faceZone. // (Any faceZone internally gets represented as two patches) // The angle to merge patch faces can be set independently of the // featureAngle. This is especially useful for large feature angles // Default is the same as the featureAngle. //mergePatchFacesAngle 45; // Optional mesh shrinking type 'displacementMotionSolver'. It uses any // displacementMotionSolver, e.g. displacementSBRStress // (default is the medial-axis algorithm, 'displacementMedialAxis') //meshShrinker displacementMotionSolver; --- .../extrude/extrudeMesh/extrudeMesh.C | 26 +- .../generation/snappyHexMesh/snappyHexMesh.C | 162 +- .../snappyHexMesh/snappyHexMeshDict | 128 +- .../polyTopoChange/addPatchCellLayer.C | 551 +++- .../polyTopoChange/addPatchCellLayer.H | 79 +- .../polyTopoChange/polyTopoChange/hexRef8.C | 6 +- .../polyTopoChange/polyTopoChange/hexRef8.H | 4 +- src/mesh/autoMesh/Make/files | 5 +- src/mesh/autoMesh/Make/options | 1 + .../autoHexMeshDriver/autoLayerDriver.C | 1719 +++++++--- .../autoHexMeshDriver/autoLayerDriver.H | 36 +- .../autoHexMeshDriver/autoRefineDriver.C | 598 +++- .../autoHexMeshDriver/autoRefineDriver.H | 32 +- .../autoHexMeshDriver/autoSnapDriver.C | 1650 +++++----- .../autoHexMeshDriver/autoSnapDriver.H | 212 +- .../autoHexMeshDriver/autoSnapDriverFeature.C | 1274 ++++++-- .../autoSnapDriverTemplates.C | 65 + .../layerParameters/layerParameters.C | 10 +- .../layerParameters/layerParameters.H | 9 +- .../refinementParameters.C | 167 +- .../refinementParameters.H | 71 +- .../refinementParameters/wordPairHashTable.H | 56 + .../snapParameters/snapParameters.C | 22 +- .../snapParameters/snapParameters.H | 139 +- .../displacementMeshMoverMotionSolver.C | 5 +- .../displacementMeshMoverMotionSolver.H | 6 +- .../displacementMotionSolverMeshMover.C | 316 ++ .../displacementMotionSolverMeshMover.H | 158 + .../externalDisplacementMeshMover.C | 81 +- .../externalDisplacementMeshMover.H | 16 +- .../fieldSmoother/fieldSmoother.C | 299 ++ .../fieldSmoother/fieldSmoother.H | 141 + .../fieldSmoother/fieldSmootherTemplates.C | 103 + .../medialAxisMeshMover.C | 593 +--- .../medialAxisMeshMover.H | 60 +- .../meshRefinement/meshRefinement.C | 1407 ++++---- .../meshRefinement/meshRefinement.H | 250 +- .../meshRefinement/meshRefinementBaffles.C | 2881 ++++++++++++----- .../meshRefinement/meshRefinementMerge.C | 217 +- .../meshRefinementProblemCells.C | 9 +- .../meshRefinement/meshRefinementRefine.C | 3 +- .../refinementSurfaces/refinementSurfaces.C | 395 ++- .../refinementSurfaces/refinementSurfaces.H | 50 +- .../refinementSurfaces/surfaceZonesInfo.C | 123 +- .../refinementSurfaces/surfaceZonesInfo.H | 20 +- tutorials/mesh/snappyHexMesh/Allrun | 5 + 46 files changed, 9814 insertions(+), 4346 deletions(-) create mode 100644 src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/autoSnapDriverTemplates.C create mode 100644 src/mesh/autoMesh/autoHexMesh/autoHexMeshDriver/refinementParameters/wordPairHashTable.H create mode 100644 src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/displacementMotionSolverMeshMover.C create mode 100644 src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/displacementMotionSolverMeshMover.H create mode 100644 src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/fieldSmoother/fieldSmoother.C create mode 100644 src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/fieldSmoother/fieldSmoother.H create mode 100644 src/mesh/autoMesh/autoHexMesh/externalDisplacementMeshMover/fieldSmoother/fieldSmootherTemplates.C diff --git a/applications/utilities/mesh/generation/extrude/extrudeMesh/extrudeMesh.C b/applications/utilities/mesh/generation/extrude/extrudeMesh/extrudeMesh.C index a7ec45eef4..573f2926e2 100644 --- a/applications/utilities/mesh/generation/extrude/extrudeMesh/extrudeMesh.C +++ b/applications/utilities/mesh/generation/extrude/extrudeMesh/extrudeMesh.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -493,21 +493,30 @@ int main(int argc, char *argv[]) // new patchID to neighbour processor) // - number of new patches (nPatches) - labelList sidePatchID; + labelList edgePatchID; + labelList edgeZoneID; + boolList edgeFlip; + labelList inflateFaceID; label nPatches; Map