Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / tutorials / incompressible / porousSimpleFoam / angledDuctImplicit / constant / polyMesh / blockMeshDict.m4
blob74b3d24ed88094544091599c42925c3fab943cff
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      ;
12     class       dictionary;
13     object      blockMeshDict;
15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
16 // block definition for a porosity with an angled inlet/outlet
17 // the porosity is not aligned with the main axes
19 dnl> -----------------------------------------------------------------
20 dnl> <STANDARD DEFINTIONS>
21 dnl>
22 changecom(//)changequote([,]) dnl>
23 define(calc, [esyscmd(perl -e 'print ($1)')]) dnl>
24 define(VCOUNT, 0)  dnl>
25 define(vlabel, [[// ]pt VCOUNT ($1) define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])  dnl>
26 dnl>
27 define(hex2D, hex ($1b $2b $3b $4b $1f $2f $3f $4f)) dnl>
28 define(quad2D, ($1f $1b $2b $2f))  dnl>
29 define(frontQuad, ($1f $2f $3f $4f)) dnl>
30 define(backQuad, ($4b $3b $2b $1b)) dnl>
31 dnl>
32 dnl> </STANDARD DEFINTIONS>
33 dnl> -----------------------------------------------------------------
34 dnl>
35 define(ncells, 20) dnl>
36 define(ninlet, 15) dnl>
37 define(nporo, 20) dnl>
38 define(noutlet, 20) dnl>
39 dnl>
40 define(x0,0) dnl>
41 define(y0,0) dnl>
42 define(y0,0) dnl>
43 define(Cos,0.7071067812) dnl>   == cos(45)
44 define(Sin,0.7071067812) dnl>   == sin(45)
45 dnl>
46 define(width,50) dnl>
47 define(zBack,calc(-width/2)) dnl>
48 define(zFront,calc(width/2)) dnl>
49 define(leninlet,150)dnl>
50 define(lenporo,100)dnl>
51 define(lenoutlet,100)dnl>
52 dnl>
53 define(xhyp,calc(Sin*width)) dnl>
54 define(yhyp,calc(Cos*width)) dnl>
55 define(xinlet,leninlet)dnl>
56 define(xporo,calc(Cos*lenporo)) dnl>
57 define(yporo,calc(Sin*lenporo)) dnl>
58 define(xoutlet,calc(xporo + Cos*lenoutlet)) dnl>
59 define(youtlet,calc(yporo + Sin*lenoutlet)) dnl>
60 dnl>
62 convertToMeters 0.001;
64 vertices
66     // inlet region
67     ( -xinlet  y0  zBack )  vlabel(in1b)
68     ( -xinlet yhyp  zBack ) vlabel(in2b)
69     ( -xinlet  y0  zFront )  vlabel(in1f)
70     ( -xinlet yhyp  zFront ) vlabel(in2f)
72     // join inlet->outlet
73     (  x0 y0  zBack )    vlabel(join1b)
74     ( -xhyp   yhyp  zBack ) vlabel(join2b)
75     (  x0 y0  zFront )    vlabel(join1f)
76     ( -xhyp   yhyp  zFront ) vlabel(join2f)
78     // porosity ends ->outlet
79     ( xporo yporo  zBack )  vlabel(poro1b)
80     ( calc(xporo - xhyp) calc(yporo + yhyp)  zBack )  vlabel(poro2b)
81     ( xporo yporo  zFront )  vlabel(poro1f)
82     ( calc(xporo - xhyp) calc(yporo + yhyp)  zFront )  vlabel(poro2f)
84     // outlet
85     ( xoutlet youtlet zBack ) vlabel(out1b)
86     ( calc(xoutlet - xhyp) calc(youtlet + yhyp) zBack ) vlabel(out2b)
87     ( xoutlet youtlet zFront ) vlabel(out1f)
88     ( calc(xoutlet - xhyp) calc(youtlet + yhyp) zFront ) vlabel(out2f)
91 blocks
93     // inlet block
94     hex2D(in1, join1, join2, in2)
95     inlet ( ninlet ncells ncells ) simpleGrading (1 1 1)
97     // porosity block
98     hex2D(join1, poro1, poro2, join2)
99     porosity ( nporo ncells ncells ) simpleGrading (1 1 1)
101     // outlet block
102     hex2D(poro1, out1, out2, poro2)
103     outlet ( noutlet ncells ncells )  simpleGrading (1 1 1)
106 edges
110 boundary
112     // is there no way of defining all my 'defaultFaces' to be 'wall'?
113     front
114     {
115         type wall;
116         faces
117         (
118             // inlet block
119             frontQuad(in1, join1, join2, in2)
120             // outlet block
121             frontQuad(poro1, out1, out2, poro2)
122         );
123     }
125     back
126     {
127         type wall;
128         faces
129         (
130             // inlet block
131             backQuad(in1, join1, join2, in2)
132             // outlet block
133             backQuad(poro1, out1, out2, poro2)
134         );
135     }
137     wall
138     {
139         type wall;
140         faces
141         (
142             // inlet block
143             quad2D(in1, join1)
144             quad2D(join2, in2)
145             // outlet block
146             quad2D(poro1, out1)
147             quad2D(out2, poro2)
148         );
149     }
151     porosityWall
152     {
153         type wall;
154         faces
155         (
156             // porosity block
157             frontQuad(join1, poro1, poro2, join2)
158             // porosity block
159             backQuad(join1, poro1, poro2, join2)
160             // porosity block
161             quad2D(join1, poro1)
162             quad2D(poro2, join2)
163         );
164     }
166     inlet
167     {
168         type patch;
169         faces
170         (
171             quad2D(in2, in1)
172         );
173     }
175     outlet
176     {
177         type patch;
178         faces
179         (
180             quad2D(out2, out1)
181         );
182     }
185 mergePatchPairs
189 // ************************************************************************* //