Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / tutorials / incompressible / simpleFoam / motorBike / system / snappyHexMeshDict
blob847ef4a729f18f5379a20b8fff17070971286c1a
1 /*--------------------------------*- C++ -*----------------------------------*\
2 | =========                 |                                                 |
3 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
4 |  \\    /   O peration     | Version:  2.0.0                                 |
5 |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
6 |    \\/     M anipulation  |                                                 |
7 \*---------------------------------------------------------------------------*/
8 FoamFile
10     version     2.0;
11     format      ascii;
12     class       dictionary;
13     object      snappyHexMeshDict;
15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
17 // Which of the steps to run
18 castellatedMesh true;
19 snap            true;
20 addLayers       true;
23 // Geometry. Definition of all surfaces. All surfaces are of class
24 // searchableSurface.
25 // Surfaces are used
26 // - to specify refinement for any mesh cell intersecting it
27 // - to specify refinement for any mesh cell inside/outside/near
28 // - to 'snap' the mesh boundary to the surface
29 geometry
31     motorBike.stl
32     {
33         type triSurfaceMesh;
34         name motorBike;
35     }
37     refinementBox
38     {
39         type searchableBox;
40         min (-1.0 -0.7 0.0);
41         max ( 8.0  0.7 2.5);
42     }
47 // Settings for the castellatedMesh generation.
48 castellatedMeshControls
51     // Refinement parameters
52     // ~~~~~~~~~~~~~~~~~~~~~
54     // If local number of cells is >= maxLocalCells on any processor
55     // switches from from refinement followed by balancing
56     // (current method) to (weighted) balancing before refinement.
57     maxLocalCells 1000000;
59     // Overall cell limit (approximately). Refinement will stop immediately
60     // upon reaching this number so a refinement level might not complete.
61     // Note that this is the number of cells before removing the part which
62     // is not 'visible' from the keepPoint. The final number of cells might
63     // actually be a lot less.
64     maxGlobalCells 2000000;
66     // The surface refinement loop might spend lots of iterations refining just a
67     // few cells. This setting will cause refinement to stop if <= minimumRefine
68     // are selected for refinement. Note: it will at least do one iteration
69     // (unless the number of cells to refine is 0)
70     minRefinementCells 10;
72     // Allow a certain level of imbalance during refining
73     // (since balancing is quite expensive)
74     // Expressed as fraction of perfect balance (= overall number of cells /
75     // nProcs). 0=balance always.
76     maxLoadUnbalance 0.10;
79     // Number of buffer layers between different levels.
80     // 1 means normal 2:1 refinement restriction, larger means slower
81     // refinement.
82     nCellsBetweenLevels 3;
86     // Explicit feature edge refinement
87     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89     // Specifies a level for any cell intersected by its edges.
90     // This is a featureEdgeMesh, read from constant/triSurface for now.
91     features
92     (
93         //{
94         //    file "someLine.eMesh";
95         //    level 2;
96         //}
97     );
101     // Surface based refinement
102     // ~~~~~~~~~~~~~~~~~~~~~~~~
104     // Specifies two levels for every surface. The first is the minimum level,
105     // every cell intersecting a surface gets refined up to the minimum level.
106     // The second level is the maximum level. Cells that 'see' multiple
107     // intersections where the intersections make an
108     // angle > resolveFeatureAngle get refined up to the maximum level.
110     refinementSurfaces
111     {
112         motorBike
113         {
114             // Surface-wise min and max refinement level
115             level (5 6);
116         }
117     }
119     // Resolve sharp angles
120     resolveFeatureAngle 30;
123     // Region-wise refinement
124     // ~~~~~~~~~~~~~~~~~~~~~~
126     // Specifies refinement level for cells in relation to a surface. One of
127     // three modes
128     // - distance. 'levels' specifies per distance to the surface the
129     //   wanted refinement level. The distances need to be specified in
130     //   descending order.
131     // - inside. 'levels' is only one entry and only the level is used. All
132     //   cells inside the surface get refined up to the level. The surface
133     //   needs to be closed for this to be possible.
134     // - outside. Same but cells outside.
136     refinementRegions
137     {
138         refinementBox
139         {
140             mode inside;
141             levels ((1E15 4));
142         }
143     }
146     // Mesh selection
147     // ~~~~~~~~~~~~~~
149     // After refinement patches get added for all refinementSurfaces and
150     // all cells intersecting the surfaces get put into these patches. The
151     // section reachable from the locationInMesh is kept.
152     // NOTE: This point should never be on a face, always inside a cell, even
153     // after refinement.
154     locationInMesh (3 3 0.43);
157     // Whether any faceZones (as specified in the refinementSurfaces)
158     // are only on the boundary of corresponding cellZones or also allow
159     // free-standing zone faces. Not used if there are no faceZones.
160     allowFreeStandingZoneFaces true;
165 // Settings for the snapping.
166 snapControls
168     //- Number of patch smoothing iterations before finding correspondence
169     //  to surface
170     nSmoothPatch 3;
172     //- Relative distance for points to be attracted by surface feature point
173     //  or edge. True distance is this factor times local
174     //  maximum edge length.
175     tolerance 4.0;
177     //- Number of mesh displacement relaxation iterations.
178     nSolveIter 0;
180     //- Maximum number of snapping relaxation iterations. Should stop
181     //  before upon reaching a correct mesh.
182     nRelaxIter 5;
184     //- Highly experimental and wip: number of feature edge snapping
185     //  iterations. Leave out altogether to disable.
186     //  Do not use here since mesh resolution too low and baffles present
187     //nFeatureSnapIter 10;
192 // Settings for the layer addition.
193 addLayersControls
195     // Are the thickness parameters below relative to the undistorted
196     // size of the refined cell outside layer (true) or absolute sizes (false).
197     relativeSizes true;
199     // Per final patch (so not geometry!) the layer information
200     layers
201     {
202         "(lowerWall|motorBike).*"
203         {
204             nSurfaceLayers 1;
205         }
206     }
208     // Expansion factor for layer mesh
209     expansionRatio 1.0;
211     //- Wanted thickness of final added cell layer. If multiple layers
212     //  is the
213     //  thickness of the layer furthest away from the wall.
214     //  Relative to undistorted size of cell outside layer.
215     //  is the thickness of the layer furthest away from the wall.
216     //  See relativeSizes parameter.
217     finalLayerThickness 0.3;
219     //- Minimum thickness of cell layer. If for any reason layer
220     //  cannot be above minThickness do not add layer.
221     //  Relative to undistorted size of cell outside layer.
222     minThickness 0.1;
224     //- If points get not extruded do nGrow layers of connected faces that are
225     //  also not grown. This helps convergence of the layer addition process
226     //  close to features.
227     // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
228     nGrow 0;
230     // Advanced settings
232     //- When not to extrude surface. 0 is flat surface, 90 is when two faces
233     //  make straight angle.
234     featureAngle 30;
236     //- Maximum number of snapping relaxation iterations. Should stop
237     //  before upon reaching a correct mesh.
238     nRelaxIter 3;
240     // Number of smoothing iterations of surface normals
241     nSmoothSurfaceNormals 1;
243     // Number of smoothing iterations of interior mesh movement direction
244     nSmoothNormals 3;
246     // Smooth layer thickness over surface patches
247     nSmoothThickness 10;
249     // Stop layer growth on highly warped cells
250     maxFaceThicknessRatio 0.5;
252     // Reduce layer growth where ratio thickness to medial
253     // distance is large
254     maxThicknessToMedialRatio 0.3;
256     // Angle used to pick up medial axis points
257     // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
258     minMedianAxisAngle 90;
261     // Create buffer region for new layer terminations
262     nBufferCellsNoExtrude 0;
265     // Overall max number of layer addition iterations. The mesher will exit
266     // if it reaches this number of iterations; possibly with an illegal
267     // mesh.
268     nLayerIter 50;
273 // Generic mesh quality settings. At any undoable phase these determine
274 // where to undo.
275 meshQualityControls
277     //- Maximum non-orthogonality allowed. Set to 180 to disable.
278     maxNonOrtho 65;
280     //- Max skewness allowed. Set to <0 to disable.
281     maxBoundarySkewness 20;
282     maxInternalSkewness 4;
284     //- Max concaveness allowed. Is angle (in degrees) below which concavity
285     //  is allowed. 0 is straight face, <0 would be convex face.
286     //  Set to 180 to disable.
287     maxConcave 80;
289     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
290     //  Set to a sensible fraction of the smallest cell volume expected.
291     //  Set to very negative number (e.g. -1E30) to disable.
292     minVol 1e-13;
294     //- Minimum quality of the tet formed by the face-centre
295     //  and variable base point minimum decomposition triangles and
296     //  the cell centre. This has to be a positive number for tracking
297     //  to work. Set to very negative number (e.g. -1E30) to
298     //  disable.
299     //     <0 = inside out tet,
300     //      0 = flat tet
301     //      1 = regular tet
302     minTetQuality 1e-30;
304     //- Minimum face area. Set to <0 to disable.
305     minArea -1;
307     //- Minimum face twist. Set to <-1 to disable. dot product of face normal
308     //- and face centre triangles normal
309     minTwist 0.02;
311     //- minimum normalised cell determinant
312     //- 1 = hex, <= 0 = folded or flattened illegal cell
313     minDeterminant 0.001;
315     //- minFaceWeight (0 -> 0.5)
316     minFaceWeight 0.02;
318     //- minVolRatio (0 -> 1)
319     minVolRatio 0.01;
321     //must be >0 for Fluent compatibility
322     minTriangleTwist -1;
325     // Advanced
327     //- Number of error distribution iterations
328     nSmoothScale 4;
329     //- amount to scale back displacement at error points
330     errorReduction 0.75;
334 // Advanced
336 // Flags for optional output
337 // 0 : only write final meshes
338 // 1 : write intermediate meshes
339 // 2 : write volScalarField with cellLevel for postprocessing
340 // 4 : write current intersections as .obj files
341 debug 0;
344 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
345 // Note: the write tolerance needs to be higher than this.
346 mergeTolerance 1e-6;
349 // ************************************************************************* //