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