Changed "format" in the headers to support GNU m4 extensions.
[OpenFOAM-1.5.x.git] / tutorials / interDyMFoam / sloshingTank2D3DoF / constant / polyMesh / blockMeshDict.m4
blob5f286a9a6bc642bbb0b92f586a0ecc76fe67bcc8
1 /*--------------------------------*- C++ -*----------------------------------*\
2 | =========                 |                                                 |
3 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
4 |  \\    /   O peration     | Version:  dev                                   |
5 |   \\  /    A nd           | Web:      http://www.OpenFOAM.org               |
6 |    \\/     M anipulation  |                                                 |
7 \*---------------------------------------------------------------------------*/
8 FoamFile
10     version     2.0;
11     `format'      ascii;
12     class       dictionary;
13     object      blockMeshDict;
15 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
16 // General m4 macros
18 changecom(//)changequote([,])
19 define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; print ($1)')])
20 define(VCOUNT, 0)
21 define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
23 define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
24 define(quad2D, (b$1 b$2 f$2 f$1))
25 define(frontQuad, (f$1 f$2 f$3 f$4))
26 define(backQuad, (b$1 b$4 b$3 b$2))
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
29 // User-defined parameters
31 convertToMeters 1;
33 define(l, 1.0)      // Length of tank (x-direction)
34 define(b, 40)       // Breadth of tank (y-direction)
35 define(h, 30)       // Depth of tank (z-direction)
37 define(hlc, 5)      // Depth to the top (height) of lower chamfer
38 define(huc, 10)     // Height of upper chamfer
40 define(thetalc, 45) // Angle of lower chamfer to the horizontal
41 define(thetauc, 45) // Angle of upper chamfer to the horizontal
43 define(CofGy, calc(b/2.0))  // Centre of gravity in y-direction
44 define(CofGz, 10.0)         // Centre of gravity in z-direction
46 define(Nl, 1)       // Number of cells in the length (1 for 2D)
47 define(Nb, 40)      // Number of cells in the breadth
48 define(Nhlc, 6)     // Number of cells in the height of the lower champfer
49 define(Nh, 16)      // Number of cells in the height between the chamfers
50 define(Nhuc, 12)    // Number of cells in the height of the upper champfer
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 // Derived parameters
55 define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
56 define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
58 define(Yl, -CofGy)
59 define(Yllc, calc(Yl + blc))
60 define(Yluc, calc(Yl + buc))
62 define(Yr, calc(Yl + b))
63 define(Yrlc, calc(Yr - blc))
64 define(Yruc, calc(Yr - buc))
66 define(Zb, -CofGz)
67 define(Zlc, calc(Zb + hlc))
68 define(Zt, calc(Zb + h))
69 define(Zuc, calc(Zt - huc))
71 define(Xf, calc(l/2.0))
72 define(Xb, calc(Xf - l))
74 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
75 // Parametric description
77 vertices
79     (Xb Yllc Zb) vlabel(bllcb)
80     (Xb Yl Zlc)  vlabel(bllc)
81     (Xb Yl Zuc)  vlabel(bluc)
82     (Xb Yluc Zt) vlabel(bluct)
83     (Xb Yrlc Zb) vlabel(brlcb)
84     (Xb Yr Zlc)  vlabel(brlc)
85     (Xb Yr Zuc)  vlabel(bruc)
86     (Xb Yruc Zt) vlabel(bruct)
88     (Xf Yllc Zb) vlabel(fllcb)
89     (Xf Yl Zlc)  vlabel(fllc)
90     (Xf Yl Zuc)  vlabel(fluc)
91     (Xf Yluc Zt) vlabel(fluct)
92     (Xf Yrlc Zb) vlabel(frlcb)
93     (Xf Yr Zlc)  vlabel(frlc)
94     (Xf Yr Zuc)  vlabel(fruc)
95     (Xf Yruc Zt) vlabel(fruct)
98 blocks
100     // block0
101     hex2D(llcb, rlcb, rlc, llc)
102     (Nb Nhlc Nl)
103     simpleGrading (1 1 1)
105     // block1
106     hex2D(llc, rlc, ruc, luc)
107     (Nb Nh Nl)
108     simpleGrading (1 1 1)
110     // block2
111     hex2D(luc, ruc, ruct, luct)
112     (Nb Nhuc Nl)
113     simpleGrading (1 1 1)
116 patches
118     patch walls
119     (
120         quad2D(llcb, rlcb)
121         quad2D(rlcb, rlc)
122         quad2D(rlc, ruc)
123         quad2D(ruc, ruct)
124         quad2D(ruct, luct)
125         quad2D(luct, luc)
126         quad2D(luc, llc)
127         quad2D(llc, llcb)
128     )
130     empty front
131     (
132         frontQuad(llcb, rlcb, rlc, llc)
133         frontQuad(llc, rlc, ruc, luc)
134         frontQuad(luc, ruc, ruct, luct)
135     )
137     empty back
138     (
139         backQuad(llcb, rlcb, rlc, llc)
140         backQuad(llc, rlc, ruc, luc)
141         backQuad(luc, ruc, ruct, luct)
142     )
145 // ************************************************************************* //