fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / tutorials / heatTransfer / buoyantBoussinesqSimpleFoam / iglooWithFridges / system / snappyHexMeshDict
blob5c55f7573c28cc63c94f3aa880c81bdfa0458886
1 /*--------------------------------*- C++ -*----------------------------------*\
2 | =========                 |                                                 |
3 | \\      /  F ield         | OpenFOAM Extend Project: Open Source CFD        |
4 |  \\    /   O peration     | Version:  1.6-ext                               |
5 |   \\  /    A nd           | Web:      www.extend-project.de                 |
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;
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     igloo
31     {
32         type searchableSphere;
33         centre (3 3 0);
34         radius 4;
35     }
37     box1
38     {
39         type searchableBox;
40         min (0 0 0);
41         max (1 1 1);
42     }
44     fridgeFreezer
45     {
46         type searchableSurfaceCollection;
48         mergeSubRegions true;
50         freezer
51         {
52             surface box1;
53             scale (1 1 1);
54             transform
55             {
56                 type    cartesian;
57                 origin  (0 0 0);
58                 e1      (1 0 0);
59                 e3      (0 0 1);
60             }
61         }
62         fridge
63         {
64             surface box1;
65             scale (1 1 1.1);
66             transform
67             {
68                 type    cartesian;
69                 origin  (0 0 1);
70                 e1      (1 0 0);
71                 e3      (0 0 1);
72             }
73         }
74     }
76     twoFridgeFreezers
77     {
78         type searchableSurfaceCollection;
80         mergeSubRegions true;
82         seal
83         {
84             surface box1;
85             scale (1.0 1.0 2.1);
86             transform
87             {
88                 type    cartesian;
89                 origin  (2 2 0);
90                 e1      (1 0 0);
91                 e3      (0 0 1);
92             }
93         }
94         herring
95         {
96             surface box1;
97             scale (1.0 1.0 2.1);
98             transform
99             {
100                 type    cartesian;
101                 origin  (3.5 3 0);
102                 e1      (1 0 0);
103                 e3      (0 0 1);
104             }
105         }
106     }
109 // Settings for the castellatedMesh generation.
110 castellatedMeshControls
113     // Refinement parameters
114     // ~~~~~~~~~~~~~~~~~~~~~
116     // If local number of cells is >= maxLocalCells on any processor
117     // switches from from refinement followed by balancing
118     // (current method) to (weighted) balancing before refinement.
119     maxLocalCells 1000000;
121     // Overall cell limit (approximately). Refinement will stop immediately
122     // upon reaching this number so a refinement level might not complete.
123     // Note that this is the number of cells before removing the part which
124     // is not 'visible' from the keepPoint. The final number of cells might
125     // actually be a lot less.
126     maxGlobalCells 2000000;
128     // The surface refinement loop might spend lots of iterations refining just a
129     // few cells. This setting will cause refinement to stop if <= minimumRefine
130     // are selected for refinement. Note: it will at least do one iteration
131     // (unless the number of cells to refine is 0)
132     minRefinementCells 100;
134     // Number of buffer layers between different levels.
135     // 1 means normal 2:1 refinement restriction, larger means slower
136     // refinement.
137     nCellsBetweenLevels 1;
139     // Explicit feature edge refinement
140     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
142     // Specifies a level for any cell intersected by its edges.
143     // This is a featureEdgeMesh, read from constant/triSurface for now.
144     features
145     (
146         {
147             file "fridgeA.eMesh";
148             level 3;
149         }
150     );
152     // Surface based refinement
153     // ~~~~~~~~~~~~~~~~~~~~~~~~
155     // Specifies two levels for every surface. The first is the minimum level,
156     // every cell intersecting a surface gets refined up to the minimum level.
157     // The second level is the maximum level. Cells that 'see' multiple
158     // intersections where the intersections make an
159     // angle > resolveFeatureAngle get refined up to the maximum level.
161     refinementSurfaces
162     {
163         twoFridgeFreezers
164         {
165             // Surface-wise min and max refinement level
166             level (2 2);
168             regions
169             {
170                 // Region-wise override
171                 "cook.*"
172                 {
173                     level (3 3);
174                 }
175             }
176         }
178         "iglo.*"
179         {
180             // Surface-wise min and max refinement level
181             level (1 1);
182         }
183     }
185     // Resolve sharp angles on fridges
186     resolveFeatureAngle 60;
188     // Region-wise refinement
189     // ~~~~~~~~~~~~~~~~~~~~~~
191     // Specifies refinement level for cells in relation to a surface. One of
192     // three modes
193     // - distance. 'levels' specifies per distance to the surface the
194     //   wanted refinement level. The distances need to be specified in
195     //   descending order.
196     // - inside. 'levels' is only one entry and only the level is used. All
197     //   cells inside the surface get refined up to the level. The surface
198     //   needs to be closed for this to be possible.
199     // - outside. Same but cells outside.
201     refinementRegions
202     {
203     }
205     // Mesh selection
206     // ~~~~~~~~~~~~~~
208     // After refinement patches get added for all refinementSurfaces and
209     // all cells intersecting the surfaces get put into these patches. The
210     // section reachable from the locationInMesh is kept.
211     // NOTE: This point should never be on a face, always inside a cell, even
212     // after refinement.
213     locationInMesh (3 0.28 0.43);
216 // Settings for the snapping.
217 snapControls
219     //- Number of patch smoothing iterations before finding correspondence
220     //  to surface
221     nSmoothPatch 3;
223     //- Relative distance for points to be attracted by surface feature point
224     //  or edge. True distance is this factor times local
225     //  maximum edge length.
226     tolerance 4.0;
228     //- Number of mesh displacement relaxation iterations.
229     nSolveIter 30;
231     //- Maximum number of snapping relaxation iterations. Should stop
232     //  before upon reaching a correct mesh.
233     nRelaxIter 5;
236 // Settings for the layer addition.
237 addLayersControls
239     // Are the thickness parameters below relative to the undistorted
240     // size of the refined cell outside layer (true) or absolute sizes (false).
241     relativeSizes true;
243     // Per final patch (so not geometry!) the layer information
244     layers
245     {
246         "two.*"
247         {
248             nSurfaceLayers 3;
249         }
250         "igloo_.*"
251         {
252             nSurfaceLayers 1;
253         }
254     }
256     // Expansion factor for layer mesh
257     expansionRatio 1.0;
259     //- Wanted thickness of final added cell layer. If multiple layers
260     //  is the thickness of the layer furthest away from the wall.
261     //  See relativeSizes parameter.
262     finalLayerThickness 0.5;
264     //- Minimum thickness of cell layer. If for any reason layer
265     //  cannot be above minThickness do not add layer.
266     //  See relativeSizes parameter.
267     minThickness 0.25;
269     //- If points get not extruded do nGrow layers of connected faces that are
270     //  also not grown. This helps convergence of the layer addition process
271     //  close to features.
272     nGrow 0;
274     // Advanced settings
276     //- When not to extrude surface. 0 is flat surface, 90 is when two faces
277     //  make straight angle.
278     featureAngle 60;
280     //- Maximum number of snapping relaxation iterations. Should stop
281     //  before upon reaching a correct mesh.
282     nRelaxIter 5;
284     // Number of smoothing iterations of surface normals
285     nSmoothSurfaceNormals 1;
287     // Number of smoothing iterations of interior mesh movement direction
288     nSmoothNormals 3;
290     // Smooth layer thickness over surface patches
291     nSmoothThickness 10;
293     // Stop layer growth on highly warped cells
294     maxFaceThicknessRatio 0.5;
296     // Reduce layer growth where ratio thickness to medial
297     // distance is large
298     maxThicknessToMedialRatio 0.3;
300     // Angle used to pick up medial axis points
301     minMedianAxisAngle 130;
303     // Create buffer region for new layer terminations
304     nBufferCellsNoExtrude 0;
306     // Overall max number of layer addition iterations. The mesher will exit
307     // if it reaches this number of iterations; possibly with an illegal
308     // mesh.
309     nLayerIter 50;
312 // Generic mesh quality settings. At any undoable phase these determine
313 // where to undo.
314 meshQualityControls
316     //- Maximum non-orthogonality allowed. Set to 180 to disable.
317     maxNonOrtho 65;
319     //- Max skewness allowed. Set to <0 to disable.
320     maxBoundarySkewness 20;
321     maxInternalSkewness 4;
323     //- Max concaveness allowed. Is angle (in degrees) below which concavity
324     //  is allowed. 0 is straight face, <0 would be convex face.
325     //  Set to 180 to disable.
326     maxConcave 80;
328     //- Minimum projected area v.s. actual area. Set to -1 to disable.
329     minFlatness 0.5;
331     //- Minimum pyramid volume. Is absolute volume of cell pyramid.
332     //  Set to a sensible fraction of the smallest cell volume expected.
333     //  Set to very negative number (e.g. -1E30) to disable.
334     minVol 1e-13;
336     //- Minimum face area. Set to <0 to disable.
337     minArea -1;
339     //- Minimum face twist. Set to <-1 to disable. dot product of face normal
340     //- and face centre triangles normal
341     minTwist 0.05;
343     //- minimum normalised cell determinant
344     //- 1 = hex, <= 0 = folded or flattened illegal cell
345     minDeterminant 0.001;
347     //- minFaceWeight (0 -> 0.5)
348     minFaceWeight 0.05;
350     //- minVolRatio (0 -> 1)
351     minVolRatio 0.01;
353     //must be >0 for Fluent compatibility
354     minTriangleTwist -1;
356     // Advanced
358     //- Number of error distribution iterations
359     nSmoothScale 4;
360     //- amount to scale back displacement at error points
361     errorReduction 0.75;
364 // Advanced
366 // Flags for optional output
367 // 0 : only write final meshes
368 // 1 : write intermediate meshes
369 // 2 : write volScalarField with cellLevel for postprocessing
370 // 4 : write current intersections as .obj files
371 debug 0;
373 // Merge tolerance. Is fraction of overall bounding box of initial mesh.
374 // Note: the write tolerance needs to be higher than this.
375 mergeTolerance 1E-6;
377 // ************************************************************************* //