makeTurbulenceModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2013-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #define makeTurbulenceModelTypes(Alpha, Rho, baseModel, BaseModel, Transport) \
29  \
30  namespace Foam \
31  { \
32  typedef BaseModel<Transport> Transport##BaseModel; \
33  typedef laminarModel<Transport##BaseModel> \
34  laminar##Transport##BaseModel; \
35  typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
36  typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
37  }
38 
39 
40 #define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport) \
41  \
42  namespace Foam \
43  { \
44  typedef TurbulenceModel \
45  < \
46  Alpha, \
47  Rho, \
48  baseModel, \
49  Transport \
50  > Transport##baseModel; \
51  \
52  defineTemplateRunTimeSelectionTable \
53  ( \
54  Transport##baseModel, \
55  dictionary \
56  ); \
57  \
58  \
59  defineNamedTemplateTypeNameAndDebug(laminar##Transport##BaseModel, 0); \
60  \
61  defineTemplateRunTimeSelectionTable \
62  (laminar##Transport##BaseModel, dictionary); \
63  \
64  addToRunTimeSelectionTable \
65  ( \
66  Transport##baseModel, \
67  laminar##Transport##BaseModel, \
68  dictionary \
69  ); \
70  \
71  \
72  defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \
73  \
74  defineTemplateRunTimeSelectionTable \
75  (RAS##Transport##BaseModel, dictionary); \
76  \
77  addToRunTimeSelectionTable \
78  ( \
79  Transport##baseModel, \
80  RAS##Transport##BaseModel, \
81  dictionary \
82  ); \
83  \
84  \
85  defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \
86  \
87  defineTemplateRunTimeSelectionTable \
88  (LES##Transport##BaseModel, dictionary); \
89  \
90  addToRunTimeSelectionTable \
91  ( \
92  Transport##baseModel, \
93  LES##Transport##BaseModel, \
94  dictionary \
95  ); \
96  }
97 
98 
99 #define makeTemplatedTurbulenceModel(BaseModel, SType, Type) \
100  defineNamedTemplateTypeNameAndDebug \
101  (Foam::SType##Models::Type<Foam::BaseModel>, 0); \
102  \
103  namespace Foam \
104  { \
105  namespace SType##Models \
106  { \
107  typedef Type<BaseModel> Type##SType##BaseModel; \
108  \
109  addToRunTimeSelectionTable \
110  ( \
111  SType##BaseModel, \
112  Type##SType##BaseModel, \
113  dictionary \
114  ); \
115  } \
116  }
117 
118 
119 #define makeTurbulenceModel(BaseModel, SType, Type) \
120  namespace Foam \
121  { \
122  namespace SType##Models \
123  { \
124  defineTypeNameAndDebug(Type, 0); \
125  \
126  addToRunTimeSelectionTable \
127  ( \
128  SType##BaseModel, \
129  Type, \
130  dictionary \
131  ); \
132  } \
133  }
134 
135 
136 // ************************************************************************* //