diff --git a/tutorials/mesh/snappyHexMesh/Allrun b/tutorials/mesh/snappyHexMesh/Allrun index 8a3d913278cbb98637af49bd5e408f273ca0b9a0..b92f5fbb01cd0b05b55d3223ddc23579378558cc 100755 --- a/tutorials/mesh/snappyHexMesh/Allrun +++ b/tutorials/mesh/snappyHexMesh/Allrun @@ -5,6 +5,7 @@ cd ${0%/*} || exit 1 # Run from this directory ( cd addLayersToFaceZone && ./Allrun ) ( cd gap_detection && ./Allrun ) ( cd aerofoilNACA0012_directionalRefinement && ./Allrun ) +( cd iglooWithFridgesDirectionalRefinement && ./Allrun ) exit 0 diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/Allclean b/tutorials/mesh/snappyHexMesh/directionalRefinement/Allclean deleted file mode 100755 index 6b45f82a41b0f9a0739a80a41a680be892e55243..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/Allclean +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Source tutorial clean functions -. $WM_PROJECT_DIR/bin/tools/CleanFunctions - -cleanCase - -#------------------------------------------------------------------------------ diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/Allrun b/tutorials/mesh/snappyHexMesh/directionalRefinement/Allrun deleted file mode 100755 index fb62f26883d416529919b7c306c5b57a04092236..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/Allrun +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # Run from this directory - -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -runApplication blockMesh - -runApplication decomposePar - -runParallel snappyHexMesh -overwrite - -runApplication reconstructParMesh -constant - -#------------------------------------------------------------------------------ diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/README.txt b/tutorials/mesh/snappyHexMesh/directionalRefinement/README.txt deleted file mode 100644 index c0effe76b80df80c4d02cecd12faa0b484bc0749..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -Testcase for directional and automatic gap refinement. The geometry -is two nested boxes -with a single small pipe between them. - -- 1 cell initial mesh -- consistent normal orientation of surface so - specify a 'gapMode' to limit refinement only to - gaps on the 'outside' of the surface -- directional refinement diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/constant/triSurface/mech_test.obj b/tutorials/mesh/snappyHexMesh/directionalRefinement/constant/triSurface/mech_test.obj deleted file mode 100644 index d078954dc0439efcb6123cbf11bfbdf0593c49d9..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/constant/triSurface/mech_test.obj +++ /dev/null @@ -1,124 +0,0 @@ -# Wavefront OBJ file -# Regions: -# 0 patch0 -# -# points : 40 -# triangles : 76 -# -v 80 20 -20 -v -80 20 -20 -v 100 0 0 -v -100 0 0 -v 80 20 -280 -v -80 20 -280 -v 80 280 -100 -v -80 280 -100 -v 100 0 -300 -v -100 0 -300 -v 100 300 -120 -v -100 300 -120 -v 80 280 -280 -v -80 280 -280 -v 100 300 -300 -v -100 300 -300 -v 0 445 0 -v 0 445 -20 -v 3.53538 446.464 0 -v -3.53538 446.464 0 -v -3.53538 446.464 -20 -v 3.53538 446.464 -20 -v 5 450 0 -v -5 450 0 -v -5 450 -20 -v 5 450 -20 -v -3.53538 453.536 0 -v 3.53538 453.536 0 -v -3.53538 453.536 -20 -v 3.53538 453.536 -20 -v 0 455 0 -v 0 455 -20 -v 80 580 -20 -v -80 580 -20 -v 80 580 -100 -v -80 580 -100 -v 100 600 0 -v -100 600 0 -v 100 600 -120 -v -100 600 -120 -g patch0 -f 39 37 3 -f 4 3 37 -f 11 39 3 -f 15 11 3 -f 9 15 3 -f 10 9 3 -f 10 3 4 -f 40 37 39 -f 19 4 37 -f 38 37 40 -f 27 37 38 -f 23 19 37 -f 28 23 37 -f 31 28 37 -f 27 31 37 -f 40 39 11 -f 16 11 15 -f 12 11 16 -f 40 11 12 -f 16 15 9 -f 16 9 10 -f 12 10 4 -f 38 12 4 -f 24 38 4 -f 20 24 4 -f 17 20 4 -f 19 17 4 -f 12 16 10 -f 38 40 12 -f 27 38 24 -f 25 24 20 -f 29 27 24 -f 29 24 25 -f 21 20 17 -f 21 25 20 -f 18 17 19 -f 21 17 18 -f 22 19 23 -f 18 19 22 -f 26 23 28 -f 22 23 26 -f 30 28 31 -f 26 28 30 -f 32 31 27 -f 30 31 32 -f 32 27 29 -f 7 5 1 -f 2 1 5 -f 33 7 1 -f 26 33 1 -f 34 1 2 -f 21 1 34 -f 22 26 1 -f 18 22 1 -f 21 18 1 -f 7 13 5 -f 6 5 13 -f 6 2 5 -f 14 13 7 -f 6 13 14 -f 33 35 7 -f 8 7 35 -f 14 7 8 -f 34 35 33 -f 36 35 34 -f 8 35 36 -f 30 34 33 -f 26 30 33 -f 36 34 2 -f 8 36 2 -f 14 8 2 -f 6 14 2 -f 29 25 34 -f 21 34 25 -f 32 29 34 -f 30 32 34 diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/blockMeshDict b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/blockMeshDict deleted file mode 100644 index db9ee702e1cf89873d8c068288abfd13358eae9a..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/blockMeshDict +++ /dev/null @@ -1,102 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -scale 1; - -vertices -( - (-400 -100 -400) - ( 400 -100 -400) - ( 400 700 -400) - (-400 700 -400) - (-400 -100 400) - ( 400 -100 400) - ( 400 700 400) - (-400 700 400) -); - -blocks -( - hex (0 1 2 3 4 5 6 7) (1 1 1) simpleGrading (1 1 1) -); - -edges -( -); - -boundary -( - maxY - { - type patch; - faces - ( - (3 7 6 2) - ); - } - - minX - { - type patch; - faces - ( - (0 4 7 3) - ); - } - - maxX - { - type patch; - faces - ( - (2 6 5 1) - ); - } - - minY - { - type patch; - faces - ( - (1 5 4 0) - ); - } - - ground - { - type patch; - faces - ( - (0 3 2 1) - ); - } - - maxZ - { - type patch; - faces - ( - (4 5 6 7) - ); - } -); - -mergePatchPairs -( -); - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/controlDict b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/controlDict deleted file mode 100644 index 02cd153dbfdc2326046a1e9680fe1b9d879a2753..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/controlDict +++ /dev/null @@ -1,49 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus s | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object controlDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -application snappyHexMesh; - -startFrom startTime; - -startTime 0; - -stopAt endTime; - -endTime 2000; - -deltaT 1; - -writeControl timeStep; - -writeInterval 100; - -purgeWrite 0; - -writeFormat binary; - -writePrecision 6; - -writeCompression off; - -timeFormat general; - -timePrecision 6; - -runTimeModifiable true; - - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/decomposeParDict b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/decomposeParDict deleted file mode 100644 index d1a1efb7ca245b5b453870d0dbff6ed651763cc4..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/decomposeParDict +++ /dev/null @@ -1,23 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object decomposeParDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -numberOfSubdomains 8; - -method scotch; - - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSchemes b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSchemes deleted file mode 100644 index 4e8a70ccda6f868a96626d4254071b129c53fa41..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSchemes +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object fvSchemes; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -ddtSchemes -{ - default steadyState; -} - -gradSchemes -{ - default Gauss linear; -} - -divSchemes -{ - default none; - - div(phi,U) bounded Gauss upwind; - div(phi,T) bounded Gauss upwind; - div(phi,k) bounded Gauss upwind; - div(phi,epsilon) bounded Gauss upwind; - div(phi,R) bounded Gauss upwind; - div(R) Gauss linear; - div((nuEff*dev(T(grad(U))))) Gauss linear; -} - -laplacianSchemes -{ - default Gauss linear limited corrected 0.333; -} - -interpolationSchemes -{ - default linear; -} - -snGradSchemes -{ - default limited corrected 0.333; -} - - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSolution b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSolution deleted file mode 100644 index b636426959fa85d6083426d56f981f29fbcafd42..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/fvSolution +++ /dev/null @@ -1,69 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - location "system"; - object fvSolution; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -solvers -{ - p_rgh - { - solver PCG; - preconditioner DIC; - tolerance 1e-08; - relTol 0.01; - } - - "(U|T|k|epsilon)" - { - solver PBiCGStab; - preconditioner DILU; - tolerance 1e-07; - relTol 0.1; - } -} - -SIMPLE -{ - nNonOrthogonalCorrectors 2; - pRefCell 0; - pRefValue 0; - - residualControl - { - p_rgh 1e-2; - U 1e-4; - T 1e-3; - - // possibly check turbulence fields - "(k|epsilon|omega)" 1e-3; - } -} - -relaxationFactors -{ - fields - { - p_rgh 0.7; - } - equations - { - U 0.2; - T 0.5; - "(k|epsilon)" 0.7; - } -} - - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/meshQualityDict b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/meshQualityDict deleted file mode 100644 index 3d43ee3a28f2fda6476242cc7974f372401d0787..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/meshQualityDict +++ /dev/null @@ -1,21 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object meshQualityDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Include defaults parameters from master dictionary -#includeEtc "caseDicts/meshQualityDict" - - -// ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/snappyHexMeshDict b/tutorials/mesh/snappyHexMesh/directionalRefinement/system/snappyHexMeshDict deleted file mode 100644 index 24c6f106787eae2d34dbf49cfb4735be67dc0af9..0000000000000000000000000000000000000000 --- a/tutorials/mesh/snappyHexMesh/directionalRefinement/system/snappyHexMeshDict +++ /dev/null @@ -1,326 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: plus | -| \\ / A nd | Web: www.OpenFOAM.com | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object snappyHexMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Which of the steps to run -castellatedMesh true; -snap false; -addLayers false; - - -// Geometry. Definition of all surfaces. All surfaces are of class -// searchableSurface. -// Surfaces are used -// - to specify refinement for any mesh cell intersecting it -// - to specify refinement for any mesh cell inside/outside/near -// - to 'snap' the mesh boundary to the surface -geometry -{ - mech_test.obj - { - type triSurfaceMesh; - } - all - { - type searchableBox; - min (-1000 -1000 -1000); - max (1000 1000 1000); - } - - dirRefinement - { - type searchableBox; - min (-75 25 -275); - max ( 75 275 -25); - } -}; - - - -// Settings for the castellatedMesh generation. -castellatedMeshControls -{ - - // Refinement parameters - // ~~~~~~~~~~~~~~~~~~~~~ - - // If local number of cells is >= maxLocalCells on any processor - // switches from from refinement followed by balancing - // (current method) to (weighted) balancing before refinement. - maxLocalCells 100000; - - // Overall cell limit (approximately). Refinement will stop immediately - // upon reaching this number so a refinement level might not complete. - // Note that this is the number of cells before removing the part which - // is not 'visible' from the keepPoint. The final number of cells might - // actually be a lot less. - maxGlobalCells 2000000; - - // The surface refinement loop might spend lots of iterations refining just a - // few cells. This setting will cause refinement to stop if <= minimumRefine - // are selected for refinement. Note: it will at least do one iteration - // (unless the number of cells to refine is 0) - minRefinementCells 0; - - // Number of buffer layers between different levels. - // 1 means normal 2:1 refinement restriction, larger means slower - // refinement. - nCellsBetweenLevels 1; - - - - // Explicit feature edge refinement - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - // Specifies a level for any cell intersected by its edges. - // This is a featureEdgeMesh, read from constant/triSurface for now. - features - ( - ); - - - - // Surface based refinement - // ~~~~~~~~~~~~~~~~~~~~~~~~ - - // Specifies two levels for every surface. The first is the minimum level, - // every cell intersecting a surface gets refined up to the minimum level. - // The second level is the maximum level. Cells that 'see' multiple - // intersections where the intersections make an - // angle > resolveFeatureAngle get refined up to the maximum level. - - refinementSurfaces - { - mech_test.obj - { - // Surface-wise min and max refinement level - level (0 0); - } - } - - // Resolve sharp angles - resolveFeatureAngle 60; - - - // Region-wise refinement - // ~~~~~~~~~~~~~~~~~~~~~~ - - // Specifies refinement level for cells in relation to a surface. One of - // three modes - // - distance. 'levels' specifies per distance to the surface the - // wanted refinement level. The distances need to be specified in - // descending order. - // - inside. 'levels' is only one entry and only the level is used. All - // cells inside the surface get refined up to the level. The surface - // needs to be closed for this to be possible. - // - outside. Same but cells outside. - - refinementRegions - { - all - { - mode inside; - - // Dummy base level - levels ((10000 0)); - - // Optional: automatic gap refinement - // If cells - // - have level 0..9 - // - and are in a gap < 3 cell sizes across - // - with the gap on the inside ('inside'), outside ('outside') - // or both ('mixed') of the surface - // refine them. Ignores 'levels' and 'mode' settings - gapLevel (4 0 10); - gapMode outside; - } - - - dirRefinement - { - mode inside; - - // Disable uniform refinement - levels ((10000 0)); - - // Optional: directional refinement - // (after all other refinement). Directional refinement - // for all cells according to 'mode' ('inside' or 'outside'; - // 'distance' not supported) and within certain range. E.g. - // - for all cells with level 2-5 - // - do one split in x direction and three splits in z direction. - // Ignores 'levels' and gap* settings. The resulting mesh is - // no longer compatible with e.g. dynamic refinement/unrefinement. - levelIncrement (2 5 (1 0 3)); - } - } - - - // Mesh selection - // ~~~~~~~~~~~~~~ - - // After refinement patches get added for all refinementSurfaces and - // all cells intersecting the surfaces get put into these patches. The - // section reachable from the locationInMesh is kept. - // NOTE: This point should never be on a face, always inside a cell, even - // after refinement. - locationInMesh (-100 -5 -300); - - - // Whether any faceZones (as specified in the refinementSurfaces) - // are only on the boundary of corresponding cellZones or also allow - // free-standing zone faces. Not used if there are no faceZones. - allowFreeStandingZoneFaces false; -} - - - -// Settings for the snapping. -snapControls -{ - //- Number of patch smoothing iterations before finding correspondence - // to surface - nSmoothPatch 3; - - //- Relative distance for points to be attracted by surface feature point - // or edge. True distance is this factor times local - // maximum edge length. - tolerance 2.0; - - //- Number of mesh displacement relaxation iterations. - nSolveIter 30; - - //- Maximum number of snapping relaxation iterations. Should stop - // before upon reaching a correct mesh. - nRelaxIter 5; - - - // Feature snapping - - //- Number of feature edge snapping iterations. - // Leave out altogether to disable. - nFeatureSnapIter 10; - - //- Detect (geometric) features by sampling the surface (default=false) - implicitFeatureSnap true; - - //- Use castellatedMeshControls::features (default = true) - explicitFeatureSnap false; -} - - - -// Settings for the layer addition. -addLayersControls -{ - // Are the thickness parameters below relative to the undistorted - // size of the refined cell outside layer (true) or absolute sizes (false). - relativeSizes true; - - // Per final patch (so not geometry!) the layer information - layers - { - } - - // Expansion factor for layer mesh - expansionRatio 1.0; - - // Wanted thickness of final added cell layer. If multiple layers - // is the thickness of the layer furthest away from the wall. - // Relative to undistorted size of cell outside layer. - // is the thickness of the layer furthest away from the wall. - // See relativeSizes parameter. - finalLayerThickness 0.5; - - // Minimum thickness of cell layer. If for any reason layer - // cannot be above minThickness do not add layer. - // Relative to undistorted size of cell outside layer. - // See relativeSizes parameter. - minThickness 0.25; - - // If points get not extruded do nGrow layers of connected faces that are - // also not grown. This helps convergence of the layer addition process - // close to features. - // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x) - nGrow 0; - - - // Advanced settings - - // When not to extrude surface. 0 is flat surface, 90 is when two faces - // are perpendicular - featureAngle 60; - - // Maximum number of snapping relaxation iterations. Should stop - // before upon reaching a correct mesh. - nRelaxIter 5; - - // Number of smoothing iterations of surface normals - nSmoothSurfaceNormals 1; - - // Number of smoothing iterations of interior mesh movement direction - nSmoothNormals 3; - - // Smooth layer thickness over surface patches - nSmoothThickness 10; - - // Stop layer growth on highly warped cells - maxFaceThicknessRatio 0.5; - - // Reduce layer growth where ratio thickness to medial - // distance is large - maxThicknessToMedialRatio 0.3; - - // Angle used to pick up medial axis points - // Note: changed(corrected) w.r.t 16x! 90 degrees corresponds to 130 in 16x. - minMedianAxisAngle 90; - - // Create buffer region for new layer terminations - nBufferCellsNoExtrude 0; - - - // Overall max number of layer addition iterations. The mesher will exit - // if it reaches this number of iterations; possibly with an illegal - // mesh. - nLayerIter 50; -} - - - -// Generic mesh quality settings. At any undoable phase these determine -// where to undo. -meshQualityControls -{ - #include "meshQualityDict" - - // Advanced - - //- Number of error distribution iterations - nSmoothScale 4; - //- amount to scale back displacement at error points - errorReduction 0.75; -} - - -// Advanced - -// Merge tolerance. Is fraction of overall bounding box of initial mesh. -// Note: the write tolerance needs to be higher than this. -mergeTolerance 1e-6; - -//debugFlags (mesh); -//writeFlags (scalarLevels); - -// ************************************************************************* //