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 | Version: 2.1.0 |
- | \\ / A nd | Web: www.OpenFOAM.org |
- | \\/ 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
- {
- GEOM_backFastback.stl
- { type triSurfaceMesh; }
- GEOM_belt.stl
- { type triSurfaceMesh; }
- GEOM_bodySmooth.stl
- { type triSurfaceMesh; }
- GEOM_curvedPipe.stl
- { type triSurfaceMesh; }
- GEOM_frontWheelarm.stl
- { type triSurfaceMesh; }
- GEOM_frontWheel.stl
- { type triSurfaceMesh; }
- GEOM_midPipe.stl
- { type triSurfaceMesh; }
- GEOM_mirrors.stl
- { type triSurfaceMesh; }
- GEOM_mountingRadiator.stl
- { type triSurfaceMesh; }
- GEOM_rearWheelarm.stl
- { type triSurfaceMesh; }
- GEOM_rearWheel.stl
- { type triSurfaceMesh; }
- GEOM_scoopFlap6deg.stl
- { type triSurfaceMesh; }
- GEOM_splitter.stl
- { type triSurfaceMesh; }
- GEOM_windTunnel.stl
- { type triSurfaceMesh; }
- REF_03.stl
- { type triSurfaceMesh; }
- REF_04.stl
- { type triSurfaceMesh; }
- REF_05.stl
- { type triSurfaceMesh; }
- REF_06.stl
- { type triSurfaceMesh; }
- REF_07.stl
- { type triSurfaceMesh; }
- };
- // 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 10000000;
- // 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 200000000;
- // 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;
- // Allow a certain level of imbalance during refining
- // (since balancing is quite expensive)
- // Expressed as fraction of perfect balance (= overall number of cells /
- // nProcs). 0=balance always.
- maxLoadUnbalance 0.10;
- // Number of buffer layers between different levels.
- // 1 means normal 2:1 refinement restriction, larger means slower
- // refinement.
- nCellsBetweenLevels 3;
- // 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
- {
- GEOM_windTunnel.stl
- { level (5 6); }
- "GEOM.*"
- { level (7 8); }
- }
- // Resolve sharp angles
- resolveFeatureAngle 140;
- // 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
- {
- REF_03.stl
- {
- mode inside;
- levels ((0 2));
- }
- REF_04.stl
- {
- mode inside;
- levels ((0 3));
- }
- REF_05.stl
- {
- mode inside;
- levels ((0 4));
- }
- REF_06.stl
- {
- mode inside;
- levels ((0 5));
- }
- REF_07.stl
- {
- mode inside;
- levels ((0 6));
- }
- }
- // 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 (-900 0 200);
- // 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 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 4.0;
- //- Number of mesh displacement relaxation iterations.
- nSolveIter 0;
- //- Maximum number of snapping relaxation iterations. Should stop
- // before upon reaching a correct mesh.
- nRelaxIter 5;
- //- Highly experimental and wip: number of feature edge snapping
- // iterations. Leave out altogether to disable.
- // Do not use here since mesh resolution too low and baffles present
- nFeatureSnapIter 10;
- }
- // 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
- {
- ".*"
- {
- nSurfaceLayers 5;
- }
- }
- // Expansion factor for layer mesh
- expansionRatio 1.4;
- //- 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 1;
- //- 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.
- minThickness 0.1;
- //- 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
- // make straight angle.
- featureAngle 30;
- //- Maximum number of snapping relaxation iterations. Should stop
- // before upon reaching a correct mesh.
- nRelaxIter 3;
- // 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 17x! 90 degrees corresponds to 130 in 17x.
- 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
- {
- //- 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. This has to be a positive number for tracking
- // to work. 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.02;
- //- minimum normalised cell determinant
- //- 1 = hex, <= 0 = folded or flattened illegal cell
- minDeterminant 0.001;
- //- minFaceWeight (0 -> 0.5)
- minFaceWeight 0.02;
- //- 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
- // Flags for optional output
- // 0 : only write final meshes
- // 1 : write intermediate meshes
- // 2 : write volScalarField with cellLevel for postprocessing
- // 4 : write current intersections as .obj files
- debug 0;
- // 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