Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / tutorials / incompressible / pimpleDyMFoam / wingMotion / wingMotion_snappyHexMesh / system / snappyHexMeshDict
blobc6dd2fd126fd7a2898461b9ae240e2adc9e7da7f
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     wing_5degrees.obj
32     {
33         type triSurfaceMesh;
34     }
36     refinementBox
37     {
38         type searchableBox;
39         min (-1 -1 -1);
40         max ( 5  1  1);
41     }
46 // Settings for the castellatedMesh generation.
47 castellatedMeshControls
50     // Refinement parameters
51     // ~~~~~~~~~~~~~~~~~~~~~
53     // If local number of cells is >= maxLocalCells on any processor
54     // switches from from refinement followed by balancing
55     // (current method) to (weighted) balancing before refinement.
56     maxLocalCells 1000000;
58     // Overall cell limit (approximately). Refinement will stop immediately
59     // upon reaching this number so a refinement level might not complete.
60     // Note that this is the number of cells before removing the part which
61     // is not 'visible' from the keepPoint. The final number of cells might
62     // actually be a lot less.
63     maxGlobalCells 2000000;
65     // The surface refinement loop might spend lots of iterations refining just
66     // a few cells. This setting will cause refinement to stop if <=
67     // minimumRefine are selected for refinement. Note: it will at least do one
68     // iteration (unless the number of cells to refine is 0)
69     minRefinementCells 100;
71     // Number of buffer layers between different levels.
72     // 1 means normal 2:1 refinement restriction, larger means slower
73     // refinement.
74     nCellsBetweenLevels 6;
78     // Explicit feature edge refinement
79     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81     // Specifies a level for any cell intersected by its edges.
82     // This is a featureEdgeMesh, read from constant/triSurface for now.
83     features ();
87     // Surface based refinement
88     // ~~~~~~~~~~~~~~~~~~~~~~~~
90     // Specifies two levels for every surface. The first is the minimum level,
91     // every cell intersecting a surface gets refined up to the minimum level.
92     // The second level is the maximum level. Cells that 'see' multiple
93     // intersections where the intersections make an
94     // angle > resolveFeatureAngle get refined up to the maximum level.
96     refinementSurfaces
97     {
98         wing_5degrees.obj
99         {
100             // Surface-wise min and max refinement level
101             level (5 5);
102         }
103     }
105     // Resolve sharp angles on fridges
106     resolveFeatureAngle 30;
109     // Region-wise refinement
110     // ~~~~~~~~~~~~~~~~~~~~~~
112     // Specifies refinement level for cells in relation to a surface. One of
113     // three modes
114     // - distance. 'levels' specifies per distance to the surface the
115     //   wanted refinement level. The distances need to be specified in
116     //   descending order.
117     // - inside. 'levels' is only one entry and only the level is used. All
118     //   cells inside the surface get refined up to the level. The surface
119     //   needs to be closed for this to be possible.
120     // - outside. Same but cells outside.
122     refinementRegions
123     {
124         refinementBox
125         {
126             mode inside;
127             levels ((1e15 2));
128         }
129     }
132     // Mesh selection
133     // ~~~~~~~~~~~~~~
135     // After refinement patches get added for all refinementSurfaces and
136     // all cells intersecting the surfaces get put into these patches. The
137     // section reachable from the locationInMesh is kept.
138     // NOTE: This point should never be on a face, always inside a cell, even
139     // after refinement.
140     locationInMesh (-0.5 0 0);
143     // Whether any faceZones (as specified in the refinementSurfaces)
144     // are only on the boundary of corresponding cellZones or also allow
145     // free-standing zone faces. Not used if there are no faceZones.
146     allowFreeStandingZoneFaces true;
151 // Settings for the snapping.
152 snapControls
154     //- Number of patch smoothing iterations before finding correspondence
155     //  to surface
156     nSmoothPatch 3;
158     //- Relative distance for points to be attracted by surface feature point
159     //  or edge. True distance is this factor times local
160     //  maximum edge length.
161     tolerance 4.0;
163     //- Number of mesh displacement relaxation iterations.
164     nSolveIter 30;
166     //- Maximum number of snapping relaxation iterations. Should stop
167     //  before upon reaching a correct mesh.
168     nRelaxIter 5;
173 // Settings for the layer addition.
174 addLayersControls
176     // Are the thickness parameters below relative to the undistorted
177     // size of the refined cell outside layer (true) or absolute sizes (false).
178     relativeSizes true;
180     // Per final patch (so not geometry!) the layer information
181     layers
182     {
183         "wing.*"
184         {
185             nSurfaceLayers 3;
186         }
187     }
189     // Expansion factor for layer mesh
190     expansionRatio 1.3;
192     //- Wanted thickness of final added cell layer. If multiple layers
193     //  is the
194     //  thickness of the layer furthest away from the wall.
195     //  Relative to undistorted size of cell outside layer.
196     //  is the thickness of the layer furthest away from the wall.
197     //  See relativeSizes parameter.
198     finalLayerThickness 0.7;
200     //- Minimum thickness of cell layer. If for any reason layer
201     //  cannot be above minThickness do not add layer.
202     //  Relative to undistorted size of cell outside layer.
203     //  See relativeSizes parameter.
204     minThickness 0.25;
206     //- If points get not extruded do nGrow layers of connected faces that are
207     //  also not grown. This helps convergence of the layer addition process
208     //  close to features.
209     // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
210     nGrow 0;
212     // Advanced settings
214     //- When not to extrude surface. 0 is flat surface, 90 is when two faces
215     //  make straight angle.
216     featureAngle 60;
218     //- Maximum number of snapping relaxation iterations. Should stop
219     //  before upon reaching a correct mesh.
220     nRelaxIter 5;
222     // Number of smoothing iterations of surface normals
223     nSmoothSurfaceNormals 1;
225     // Number of smoothing iterations of interior mesh movement direction
226     nSmoothNormals 3;
228     // Smooth layer thickness over surface patches
229     nSmoothThickness 10;
231     // Stop layer growth on highly warped cells
232     maxFaceThicknessRatio 0.5;
234     // Reduce layer growth where ratio thickness to medial
235     // distance is large
236     maxThicknessToMedialRatio 0.3;
238     // Angle used to pick up medial axis points
239     // Note: changed(corrected) w.r.t 16x! 90 degrees corresponds to 130 in 16x.
240     minMedianAxisAngle 90;
242     // Create buffer region for new layer terminations
243     nBufferCellsNoExtrude 0;
246     // Overall max number of layer addition iterations. The mesher will exit
247     // if it reaches this number of iterations; possibly with an illegal
248     // mesh.
249     nLayerIter 50;
254 // Generic mesh quality settings. At any undoable phase these determine
255 // where to undo.
256 meshQualityControls
258     //- Maximum non-orthogonality allowed. Set to 180 to disable.
259     maxNonOrtho 65;
261     //- Max skewness allowed. Set to <0 to disable.
262     maxBoundarySkewness 20;
263     maxInternalSkewness 4;
265     //- Max concaveness allowed. Is angle (in degrees) below which concavity
266     //  is allowed. 0 is straight face, <0 would be convex face.
267     //  Set to 180 to disable.
268     maxConcave 80;
270     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
271     //  Set to a sensible fraction of the smallest cell volume expected.
272     //  Set to very negative number (e.g. -1E30) to disable.
273     minVol 1e-13;
275     //- Minimum quality of the tet formed by the face-centre
276     //  and variable base point minimum decomposition triangles and
277     //  the cell centre.  Set to very negative number (e.g. -1E30) to
278     //  disable.
279     //     <0 = inside out tet,
280     //      0 = flat tet
281     //      1 = regular tet
282     minTetQuality 1e-30;
284     //- Minimum face area. Set to <0 to disable.
285     minArea -1;
287     //- Minimum face twist. Set to <-1 to disable. dot product of face normal
288     //- and face centre triangles normal
289     minTwist 0.05;
291     //- minimum normalised cell determinant
292     //- 1 = hex, <= 0 = folded or flattened illegal cell
293     minDeterminant 0.001;
295     //- minFaceWeight (0 -> 0.5)
296     minFaceWeight 0.05;
298     //- minVolRatio (0 -> 1)
299     minVolRatio 0.01;
301     //must be >0 for Fluent compatibility
302     minTriangleTwist -1;
305     // Advanced
307     //- Number of error distribution iterations
308     nSmoothScale 4;
309     //- amount to scale back displacement at error points
310     errorReduction 0.75;
314 // Advanced
316 // Flags for optional output
317 // 0 : only write final meshes
318 // 1 : write intermediate meshes
319 // 2 : write volScalarField with cellLevel for postprocessing
320 // 4 : write current intersections as .obj files
321 debug 0;
324 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
325 // Note: the write tolerance needs to be higher than this.
326 mergeTolerance 1e-6;
329 // ************************************************************************* //