1 /*--------------------------------*- C++ -*----------------------------------*\
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 \*---------------------------------------------------------------------------*/
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>
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>
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>
32 dnl> </STANDARD DEFINTIONS>
33 dnl> -----------------------------------------------------------------
35 define(ncells, 20) dnl>
36 define(ninlet, 15) dnl>
37 define(nporo, 20) dnl>
38 define(noutlet, 20) dnl>
43 define(Cos,0.7071067812) dnl> == cos(45)
44 define(Sin,0.7071067812) dnl> == sin(45)
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>
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>
62 convertToMeters 0.001;
67 ( -xinlet y0 zBack ) vlabel(in1b)
68 ( -xinlet yhyp zBack ) vlabel(in2b)
69 ( -xinlet y0 zFront ) vlabel(in1f)
70 ( -xinlet yhyp zFront ) vlabel(in2f)
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)
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)
94 hex2D(in1, join1, join2, in2)
95 inlet ( ninlet ncells ncells ) simpleGrading (1 1 1)
98 hex2D(join1, poro1, poro2, join2)
99 porosity ( nporo ncells ncells ) simpleGrading (1 1 1)
102 hex2D(poro1, out1, out2, poro2)
103 outlet ( noutlet ncells ncells ) simpleGrading (1 1 1)
112 // is there no way of defining all my 'defaultFaces' to be 'wall'?
119 frontQuad(in1, join1, join2, in2)
121 frontQuad(poro1, out1, out2, poro2)
131 backQuad(in1, join1, join2, in2)
133 backQuad(poro1, out1, out2, poro2)
157 frontQuad(join1, poro1, poro2, join2)
159 backQuad(join1, poro1, poro2, join2)
189 // ************************************************************************* //