Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / tutorials / heatTransfer / chtMultiRegionFoam / snappyMultiRegionHeater / system / snappyHexMeshDict
blobde2ff86480f1511fe7c2cf6cf82a32caa2cb02fa
1 /*--------------------------------*- C++ -*----------------------------------*\
2 | =========                 |                                                 |
3 | \\      /  F ield         | foam-extend: Open Source CFD                    |
4 |  \\    /   O peration     | Version:     3.2                                |
5 |   \\  /    A nd           | Web:         http://www.foam-extend.org         |
6 |    \\/     M anipulation  |                                                 |
7 \*---------------------------------------------------------------------------*/
8 FoamFile
10     version     2.0;
11     format      ascii;
12     class       dictionary;
13     object      autoHexMeshDict;
15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
17 // Which of the steps to run
18 castellatedMesh true;
19 snap            true;
20 addLayers       false;
22 // Geometry. Definition of all surfaces. All surfaces are of class
23 // searchableSurface.
24 // Surfaces are used
25 // - to specify refinement for any mesh cell intersecting it
26 // - to specify refinement for any mesh cell inside/outside/near
27 // - to 'snap' the mesh boundary to the surface
28 geometry
30     bottomAir.stl
31     {
32         type triSurfaceMesh;
33         name bottomAir;
34     }
36     topAir.stl
37     {
38         type triSurfaceMesh;
39         name topAir;
40     }
42     leftSolid.stl
43     {
44         type triSurfaceMesh;
45         name leftSolid;
46     }
48     rightSolid.stl
49     {
50         type triSurfaceMesh;
51         name rightSolid;
52     }
54     heater.stl
55     {
56         type triSurfaceMesh;
57         name heater;
58     }
60     //refinementBox
61     //{
62     //    type searchableBox;
63     //    min (-0.3 -0.4 -0.1);
64     //    max ( 3.0  0.4  1.4);
65    // }
68 // Settings for the castellatedMesh generation.
69 castellatedMeshControls
72     // Refinement parameters
73     // ~~~~~~~~~~~~~~~~~~~~~
75     // While refining maximum number of cells per processor. This is basically
76     // the number of cells that fit on a processor. If you choose this too small
77     // it will do just more refinement iterations to obtain a similar mesh.
78     maxLocalCells 1000000;
80     // Overall cell limit (approximately). Refinement will stop immediately
81     // upon reaching this number so a refinement level might not complete.
82     // Note that this is the number of cells before removing the part which
83     // is not 'visible' from the keepPoint. The final number of cells might
84     // actually be a lot less.
85     maxGlobalCells 2000000;
87     // The surface refinement loop might spend lots of iterations refining just a
88     // few cells. This setting will cause refinement to stop if <= minimumRefine
89     // are selected for refinement. Note: it will at least do one iteration
90     // (unless the number of cells to refine is 0)
91     minRefinementCells 10;
93     // Number of buffer layers between different levels.
94     // 1 means normal 2:1 refinement restriction, larger means slower
95     // refinement.
96     nCellsBetweenLevels 2;
98     // Explicit feature edge refinement
99     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101     // Specifies a level for any cell intersected by its edges.
102     // This is a featureEdgeMesh, read from constant/triSurface for now.
103     features
104     (
105     );
107     // Surface based refinement
108     // ~~~~~~~~~~~~~~~~~~~~~~~~
110     // Specifies two levels for every surface. The first is the minimum level,
111     // every cell intersecting a surface gets refined up to the minimum level.
112     // The second level is the maximum level. Cells that 'see' multiple
113     // intersections where the intersections make an
114     // angle > resolveFeatureAngle get refined up to the maximum level.
116     refinementSurfaces
117     {
118         bottomAir
119         {
120             // Surface-wise min and max refinement level
121             level (1 1);
123             faceZone bottomAir;
124             cellZone bottomAir;
125             zoneInside true;
126         }
128         topAir
129         {
130             // Surface-wise min and max refinement level
131             level (1 1);
133             faceZone topAir;
134             cellZone topAir;
135             zoneInside true;
136         }
138         heater
139         {
140             // Surface-wise min and max refinement level
141             level (0 0);
143             faceZone heater;
144             cellZone heater;
145             zoneInside true;
146         }
148         leftSolid
149         {
150             // Surface-wise min and max refinement level
151             level (1 1);
153             faceZone leftSolid;
154             cellZone leftSolid;
155             zoneInside true;
156         }
158         rightSolid
159         {
160             // Surface-wise min and max refinement level
161             level (1 1);
163             faceZone rightSolid;
164             cellZone rightSolid;
165             zoneInside true;
166         }
167     }
169     // Resolve sharp angles
170     resolveFeatureAngle 30;
172     // Region-wise refinement
173     // ~~~~~~~~~~~~~~~~~~~~~~
175     // Specifies refinement level for cells in relation to a surface. One of
176     // three modes
177     // - distance. 'levels' specifies per distance to the surface the
178     //   wanted refinement level. The distances need to be specified in
179     //   descending order.
180     // - inside. 'levels' is only one entry and only the level is used. All
181     //   cells inside the surface get refined up to the level. The surface
182     //   needs to be closed for this to be possible.
183     // - outside. Same but cells outside.
185     refinementRegions
186     {
187         //refinementBox
188         //{
189         //    mode inside;
190         //    levels ((1E15 4));
191         //}
192     }
194     // Mesh selection
195     // ~~~~~~~~~~~~~~
197     // After refinement patches get added for all refinementSurfaces and
198     // all cells intersecting the surfaces get put into these patches. The
199     // section reachable from the locationInMesh is kept.
200     // NOTE: This point should never be on a face, always inside a cell, even
201     // after refinement.
202     locationInMesh (0.01 0.01 0.01);
205 // Settings for the snapping.
206 snapControls
208     //- Number of patch smoothing iterations before finding correspondence
209     //  to surface
210     nSmoothPatch 3;
212     //- Relative distance for points to be attracted by surface feature point
213     //  or edge. True distance is this factor times local
214     //  maximum edge length.
215     tolerance 4.0;
217     //- Number of mesh displacement relaxation iterations.
218     nSolveIter 30;
220     //- Maximum number of snapping relaxation iterations. Should stop
221     //  before upon reaching a correct mesh.
222     nRelaxIter 5;
225 // Settings for the layer addition.
226 addLayersControls
228     relativeSizes true;
230     // Per final patch (so not geometry!) the layer information
231     layers
232     {
233         //flowAirDuctReagent_flowAirDuctReagent
234         //{
235         //    nSurfaceLayers 1;
236         //}
237         //flowAirDuctReagent_inlet1
238         //{
239         //    nSurfaceLayers 1;
240         //}
241         //flowAirDuctReagent_inlet2
242         //{
243         //    nSurfaceLayers 1;
244         //}
245     }
247     // Expansion factor for layer mesh
248     expansionRatio 1.0;
250     //- Wanted thickness of final added cell layer. If multiple layers
251     //  is the
252     //  thickness of the layer furthest away from the wall.
253     //  Relative to undistorted size of cell outside layer.
254     finalLayerThickness 0.3;
256     //- Minimum thickness of cell layer. If for any reason layer
257     //  cannot be above minThickness do not add layer.
258     //  Relative to undistorted size of cell outside layer.
259     minThickness 0.1;
261     //- If points get not extruded do nGrow layers of connected faces that are
262     //  also not grown. This helps convergence of the layer addition process
263     //  close to features.
264     nGrow 0;
266     // Advanced settings
268     //- When not to extrude surface. 0 is flat surface, 90 is when two faces
269     //  make straight angle.
270     featureAngle 30;
272     //- Maximum number of snapping relaxation iterations. Should stop
273     //  before upon reaching a correct mesh.
274     nRelaxIter 3;
276     // Number of smoothing iterations of surface normals
277     nSmoothSurfaceNormals 1;
279     // Number of smoothing iterations of interior mesh movement direction
280     nSmoothNormals 3;
282     // Smooth layer thickness over surface patches
283     nSmoothThickness 10;
285     // Stop layer growth on highly warped cells
286     maxFaceThicknessRatio 0.5;
288     // Reduce layer growth where ratio thickness to medial
289     // distance is large
290     maxThicknessToMedialRatio 0.3;
292     // Angle used to pick up medial axis points
293     minMedianAxisAngle 130;
295     // Create buffer region for new layer terminations
296     nBufferCellsNoExtrude 0;
299 // Generic mesh quality settings. At any undoable phase these determine
300 // where to undo.
301 meshQualityControls
303     //- Maximum non-orthogonality allowed. Set to 180 to disable.
304     maxNonOrtho 65;
306     //- Max skewness allowed. Set to <0 to disable.
307     maxBoundarySkewness 20;
308     maxInternalSkewness 4;
310     //- Max concaveness allowed. Is angle (in degrees) below which concavity
311     //  is allowed. 0 is straight face, <0 would be convex face.
312     //  Set to 180 to disable.
313     maxConcave 80;
315     //- Minimum projected area v.s. actual area. Set to -1 to disable.
316     minFlatness 0.5;
318     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
319     //  Set to very negative number (e.g. -1E30) to disable.
320     minVol 0;
322     //- Minimum face area. Set to <0 to disable.
323     minArea -1;
325     //- Minimum face twist. Set to <-1 to disable. dot product of face normal
326     //- and face centre triangles normal
327     minTwist 0.02;
329     //- minimum normalised cell determinant
330     //- 1 = hex, <= 0 = folded or flattened illegal cell
331     minDeterminant 0.001;
333     //- minFaceWeight (0 -> 0.5)
334     minFaceWeight 0.02;
336     //- minVolRatio (0 -> 1)
337     minVolRatio 0.01;
339     //must be >0 for Fluent compatibility
340     minTriangleTwist -1;
342     // Advanced
344     //- Number of error distribution iterations
345     nSmoothScale 4;
346     //- amount to scale back displacement at error points
347     errorReduction 0.75;
350 // Advanced
352 // Flags for optional output
353 // 0 : only write final meshes
354 // 1 : write intermediate meshes
355 // 2 : write volScalarField with cellLevel for postprocessing
356 // 4 : write current intersections as .obj files
357 debug 0;
359 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
360 // Note: the write tolerance needs to be higher than this.
361 mergeTolerance 1E-6;
363 // ************************************************************************* //