Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*--------------------------------*- C++ -*----------------------------------*\
- ========= |
- \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
- \\ / O peration | Website: https://openfoam.org
- \\ / A nd | Version: 7
- \\/ M anipulation |
- \*---------------------------------------------------------------------------*/
- FoamFile
- {
- version 2.0;
- format ascii;
- class dictionary;
- object snappyHexMeshDict;
- }
- // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
- // Which of the steps to run
- castellatedMesh true;
- snap true;
- addLayers true;
- // 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
- {
- foil
- {
- type triSurfaceMesh;
- file "foilj_10deg.stl";
- regions
- {
- main
- {
- name foil_main;
- }
- slat
- {
- name foil_slat;
- }
- flap
- {
- name foil_flap;
- }
- }
- }
- wakeregion
- {
- type searchableBox;
- min (-0.3 -0.2 0);
- max (3 0.2 1.75);
- }
- airfoilregion
- {
- type searchableCylinder;
- point1 (0.2 0 0);
- point2 (0.2 0 1.55);
- radius 0.35;
- }
- };
- // 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 10;
- // 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
- (
- {
- file "foilj_10deg.eMesh";
- level 4;
- }
- );
- // 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
- {
- foil
- {
- // Surface-wise min and max refinement level
- level (5 5);
- }
- }
- // Resolve sharp angles on fridges
- resolveFeatureAngle 10;
- // 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
- {
- wakeregion
- {
- mode inside;
- levels ((1e15 3));
- }
- foil
- {
- mode distance;
- levels ((0.007 5) (0.04 4)); //(0.07 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 (0.5 -1 0.5);
- // 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 true;
- }
- // Settings for the snapping.
- snapControls
- {
- //- Number of patch smoothing iterations before finding correspondence
- // to surface
- nSmoothPatch 4;
- //- 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 40;
- //- 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 20;
- //- Detect (geometric only) features by sampling the surface
- // (default=false).
- implicitFeatureSnap false;
- //- Use castellatedMeshControls::features (default = true)
- explicitFeatureSnap true;
- //- Detect points on multiple surfaces (only for explicitFeatureSnap)
- multiRegionFeatureSnap 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 false;
- // Per final patch (so not geometry!) the layer information
- layers
- {
- foil_main
- {
- nSurfaceLayers 6;
- }
- foil_slat
- {
- nSurfaceLayers 6;
- }
- foil_flap
- {
- nSurfaceLayers 6;
- }
- }
- // Expansion factor for layer mesh
- expansionRatio 1.1;
- // 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.
- // See relativeSizes parameter.
- firstLayerThickness 0.0003;
- // 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.000001;
- // 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 179;
- // Maximum number of snapping relaxation iterations. Should stop
- // before upon reaching a correct mesh.
- nRelaxIter 10;
- // 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 5; //was 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
- {
- //- Maximum non-orthogonality allowed. Set to 180 to disable.
- maxNonOrtho 65;
- //- Max skewness allowed. Set to <0 to disable.
- maxBoundarySkewness 20;
- maxInternalSkewness 4;
- //- Max concaveness allowed. Is angle (in degrees) below which concavity
- // is allowed. 0 is straight face, <0 would be convex face.
- // Set to 180 to disable.
- maxConcave 80;
- //- Minimum pyramid volume. Is absolute volume of cell pyramid.
- // Set to a sensible fraction of the smallest cell volume expected.
- // Set to very negative number (e.g. -1E30) to disable.
- minVol 1e-13;
- //- Minimum quality of the tet formed by the face-centre
- // and variable base point minimum decomposition triangles and
- // the cell centre. Set to very negative number (e.g. -1E30) to
- // disable.
- // <0 = inside out tet,
- // 0 = flat tet
- // 1 = regular tet
- minTetQuality 1e-30;
- //- Minimum face area. Set to <0 to disable.
- minArea -1;
- //- Minimum face twist. Set to <-1 to disable. dot product of face normal
- // and face centre triangles normal
- minTwist 0.05;
- //- Minimum normalised cell determinant
- // 1 = hex, <= 0 = folded or flattened illegal cell
- minDeterminant 0.001;
- //- minFaceWeight (0 -> 0.5)
- minFaceWeight 0.05;
- //- minVolRatio (0 -> 1)
- minVolRatio 0.01;
- // must be >0 for Fluent compatibility
- minTriangleTwist -1;
- // 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;
- // ************************************************************************* //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement