Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / tutorials / multiphase / LTSInterFoam / wigleyHull / system / snappyHexMeshDict
blobdc7dcee6ec9376cca07fa16a07861c1290305b95
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      autoHexMeshDict;
16 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
18 // Which of the steps to run
19 castellatedMesh true;
20 snap            true;
21 addLayers       false;
24 // Geometry. Definition of all surfaces. All surfaces are of class
25 // searchableSurface.
26 // Surfaces are used
27 // - to specify refinement for any mesh cell intersecting it
28 // - to specify refinement for any mesh cell inside/outside/near
29 // - to 'snap' the mesh boundary to the surface
30 geometry
32     wigley-scaled-oriented.stl
33     {
34         type triSurfaceMesh;
35         name hull;
37         patchInfo
38         {
39             type wall;
40         }
41     }
43     box1
44     {
45         type searchableBox;
46         min (-1 -0.5 -0.25);
47         max ( 1  0.5  1 );
48     }
50     box2
51     {
52         type searchableBox;
53         min (-1    -0.2  -0.15);
54         max ( 0.75  0.2   1);
55     }
57     box3
58     {
59         type searchableBox;
60         min (-10    -10  -0.03);
61         max ( 10  10   1);
62     }
67 // Settings for the castellatedMesh generation.
68 castellatedMeshControls
71     // Refinement parameters
72     // ~~~~~~~~~~~~~~~~~~~~~
74     // While refining maximum number of cells per processor. This is basically
75     // the number of cells that fit on a processor. If you choose this too small
76     // it will do just more refinement iterations to obtain a similar mesh.
77     maxLocalCells 1000000;
79     // Overall cell limit (approximately). Refinement will stop immediately
80     // upon reaching this number so a refinement level might not complete.
81     // Note that this is the number of cells before removing the part which
82     // is not 'visible' from the keepPoint. The final number of cells might
83     // actually be a lot less.
84     maxGlobalCells 2000000;
86     // The surface refinement loop might spend lots of iterations refining just a
87     // few cells. This setting will cause refinement to stop if <= minimumRefine
88     // are selected for refinement. Note: it will at least do one iteration
89     // (unless the number of cells to refine is 0)
90     minRefinementCells 0;
92     // Number of buffer layers between different levels.
93     // 1 means normal 2:1 refinement restriction, larger means slower
94     // refinement.
95     nCellsBetweenLevels 3;
99     // Explicit feature edge refinement
100     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102     // Specifies a level for any cell intersected by its edges.
103     // This is a featureEdgeMesh, read from constant/triSurface for now.
104     features
105     (
106         // {
107         //     file "wigley-scaled.eMesh";
108         //     level 3;
109         // }
110     );
114     // Surface based refinement
115     // ~~~~~~~~~~~~~~~~~~~~~~~~
117     // Specifies two levels for every surface. The first is the minimum level,
118     // every cell intersecting a surface gets refined up to the minimum level.
119     // The second level is the maximum level. Cells that 'see' multiple
120     // intersections where the intersections make an
121     // angle > resolveFeatureAngle get refined up to the maximum level.
123     refinementSurfaces
124     {
125         hull
126         {
127             // Surface-wise min and max refinement level
128             level (3 3);
129         }
130     }
132     resolveFeatureAngle 45;
135     // Region-wise refinement
136     // ~~~~~~~~~~~~~~~~~~~~~~
138     // Specifies refinement level for cells in relation to a surface. One of
139     // three modes
140     // - distance. 'levels' specifies per distance to the surface the
141     //   wanted refinement level. The distances need to be specified in
142     //   descending order.
143     // - inside. 'levels' is only one entry and only the level is used. All
144     //   cells inside the surface get refined up to the level. The surface
145     //   needs to be closed for this to be possible.
146     // - outside. Same but cells outside.
148     refinementRegions
149     {
150         box1
151         {
152             mode inside;
153             levels ((1e15 1));
154         }
155         box2
156         {
157             mode inside;
158             levels ((1e15 2));
159         }
160         box3
161         {
162             mode inside;
163             levels ((1e15 2));
164         }
165     }
168     // Mesh selection
169     // ~~~~~~~~~~~~~~
171     // After refinement patches get added for all refinementSurfaces and
172     // all cells intersecting the surfaces get put into these patches. The
173     // section reachable from the locationInMesh is kept.
174     // NOTE: This point should never be on a face, always inside a cell, even
175     // after refinement.
176     locationInMesh (-0.7 0 0);
179     // Whether any faceZones (as specified in the refinementSurfaces)
180     // are only on the boundary of corresponding cellZones or also allow
181     // free-standing zone faces. Not used if there are no faceZones.
182     allowFreeStandingZoneFaces true;
187 // Settings for the snapping.
188 snapControls
190     //- Number of patch smoothing iterations before finding correspondence
191     //  to surface
192     nSmoothPatch 3;
194     //- Relative distance for points to be attracted by surface feature point
195     //  or edge. True distance is this factor times local
196     //  maximum edge length.
197 //    tolerance 4.0;
198 tolerance 1.0;
200     //- Number of mesh displacement relaxation iterations.
201     nSolveIter 300;
203     //- Maximum number of snapping relaxation iterations. Should stop
204     //  before upon reaching a correct mesh.
205     nRelaxIter 5;
210 // Settings for the layer addition.
211 addLayersControls
213     // Are the thickness parameters below relative to the undistorted
214     // size of the refined cell outside layer (true) or absolute sizes (false).
215     relativeSizes true;
217     // Per final patch (so not geometry!) the layer information
218     layers
219     {
220         hull
221         {
222             nSurfaceLayers 1;
224         }
225     }
227     // Expansion factor for layer mesh
228     expansionRatio 1.0;
231     //- Wanted thickness of final added cell layer. If multiple layers
232     //  is the thickness of the layer furthest away from the wall.
233     //  See relativeSizes parameter.
234     finalLayerThickness 0.3;
236     //- Minimum thickness of cell layer. If for any reason layer
237     //  cannot be above minThickness do not add layer.
238     //  See relativeSizes parameter.
239     minThickness 0.25;
241     //- If points get not extruded do nGrow layers of connected faces that are
242     //  also not grown. This helps convergence of the layer addition process
243     //  close to features.
244     // Note: changed(corrected) w.r.t 17x! (didn't do anything in 17x)
245     nGrow 0;
248     // Advanced settings
250     //- When not to extrude surface. 0 is flat surface, 90 is when two faces
251     //  make straight angle.
252     featureAngle 60;
254     //- Maximum number of snapping relaxation iterations. Should stop
255     //  before upon reaching a correct mesh.
256     nRelaxIter 5;
258     // Number of smoothing iterations of surface normals
259     nSmoothSurfaceNormals 1;
261     // Number of smoothing iterations of interior mesh movement direction
262     nSmoothNormals 3;
264     // Smooth layer thickness over surface patches
265     nSmoothThickness 10;
267     // Stop layer growth on highly warped cells
268     maxFaceThicknessRatio 0.5;
270     // Reduce layer growth where ratio thickness to medial
271     // distance is large
272     maxThicknessToMedialRatio 0.3;
274     // Angle used to pick up medial axis points
275     // Note: changed(corrected) w.r.t 17x! 90 degrees corresponds to 130 in 17x.
276     minMedianAxisAngle 90;
278     // Create buffer region for new layer terminations
279     nBufferCellsNoExtrude 0;
282     // Overall max number of layer addition iterations. The mesher will exit
283     // if it reaches this number of iterations; possibly with an illegal
284     // mesh.
285     nLayerIter 50;
287     // Max number of iterations after which relaxed meshQuality controls
288     // get used. Up to nRelaxIter it uses the settings in meshQualityControls,
289     // after nRelaxIter it uses the values in meshQualityControls::relaxed.
290     nRelaxedIter 20;
295 // Generic mesh quality settings. At any undoable phase these determine
296 // where to undo.
297 meshQualityControls
299     //- Maximum non-orthogonality allowed. Set to 180 to disable.
300     maxNonOrtho 65;
302     //- Max skewness allowed. Set to <0 to disable.
303     maxBoundarySkewness 20;
304     maxInternalSkewness 4;
306     //- Max concaveness allowed. Is angle (in degrees) below which concavity
307     //  is allowed. 0 is straight face, <0 would be convex face.
308     //  Set to 180 to disable.
309     maxConcave 80;
311     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
312     //  Set to a sensible fraction of the smallest cell volume expected.
313     //  Set to very negative number (e.g. -1E30) to disable.
314     minVol 1e-13;
316     //- Minimum quality of the tet formed by the face-centre
317     //  and variable base point minimum decomposition triangles and
318     //  the cell centre.  Set to very negative number (e.g. -1E30) to
319     //  disable.
320     //     <0 = inside out tet,
321     //      0 = flat tet
322     //      1 = regular tet
323     minTetQuality 1e-30;
325     //- Minimum face area. Set to <0 to disable.
326     minArea -1;
328     //- Minimum face twist. Set to <-1 to disable. dot product of face normal
329     //- and face centre triangles normal
330     minTwist 0.05;
332     //- minimum normalised cell determinant
333     //- 1 = hex, <= 0 = folded or flattened illegal cell
334     minDeterminant 0.001;
336     //- minFaceWeight (0 -> 0.5)
337     minFaceWeight 0.05;
339     //- minVolRatio (0 -> 1)
340     minVolRatio 0.01;
342     //must be >0 for Fluent compatibility
343     minTriangleTwist -1;
345     //- if >0 : preserve single cells with all points on the surface if the
346     //  resulting volume after snapping (by approximation) is larger than
347     //  minVolCollapseRatio times old volume (i.e. not collapsed to flat cell).
348     //  If <0 : delete always.
349     //minVolCollapseRatio 0.5;
352     // Advanced
354     //- Number of error distribution iterations
355     nSmoothScale 4;
356     //- amount to scale back displacement at error points
357     errorReduction 0.75;
361     // Optional : some meshing phases allow usage of relaxed rules.
362     // See e.g. addLayersControls::nRelaxedIter.
363     relaxed
364     {
365         //- Maximum non-orthogonality allowed. Set to 180 to disable.
366         maxNonOrtho 75;
367     }
371 // Advanced
373 // Flags for optional output
374 // 0 : only write final meshes
375 // 1 : write intermediate meshes
376 // 2 : write volScalarField with cellLevel for postprocessing
377 // 4 : write current intersections as .obj files
378 debug 0;
381 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
382 // Note: the write tolerance needs to be higher than this.
383 mergeTolerance 1E-6;
386 // ************************************************************************* //