makeThermophysicalTransportModel.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) 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 makeThermophysicalTransportModelTypes( \
29  BaseModel, MomentumTransportModel, ThermoModel) \
30  \
31  namespace Foam \
32  { \
33  typedef BaseModel<MomentumTransportModel, ThermoModel> \
34  ThermoModel##MomentumTransportModel##BaseModel; \
35  \
36  typedef laminarThermophysicalTransportModel \
37  < \
38  ThermoModel##MomentumTransportModel##BaseModel \
39  > laminar##ThermoModel##MomentumTransportModel##BaseModel; \
40  \
41  typedef RASThermophysicalTransportModel \
42  < \
43  ThermoModel##MomentumTransportModel##BaseModel \
44  > RAS##ThermoModel##MomentumTransportModel##BaseModel; \
45  \
46  typedef LESThermophysicalTransportModel \
47  < \
48  ThermoModel##MomentumTransportModel##BaseModel \
49  > LES##ThermoModel##MomentumTransportModel##BaseModel; \
50  }
51 
52 
53 #define makeThermophysicalTransportModels( \
54  BaseModel, MomentumTransportModel, ThermoModel) \
55  \
56  namespace Foam \
57  { \
58  typedef ThermophysicalTransportModel \
59  < \
60  MomentumTransportModel, \
61  ThermoModel \
62  > ThermophysicalTransportModel##MomentumTransportModel; \
63  \
64  defineTemplateRunTimeSelectionTable \
65  ( \
66  ThermophysicalTransportModel##MomentumTransportModel, \
67  dictionary \
68  ); \
69  \
70  \
71  defineNamedTemplateTypeNameAndDebug \
72  ( \
73  laminar##ThermoModel##MomentumTransportModel##BaseModel, \
74  0 \
75  ); \
76  \
77  defineTemplateRunTimeSelectionTable \
78  ( \
79  laminar##ThermoModel##MomentumTransportModel##BaseModel, \
80  dictionary \
81  ); \
82  \
83  addToRunTimeSelectionTable \
84  ( \
85  ThermophysicalTransportModel##MomentumTransportModel, \
86  laminar##ThermoModel##MomentumTransportModel##BaseModel, \
87  dictionary \
88  ); \
89  \
90  \
91  defineNamedTemplateTypeNameAndDebug \
92  ( \
93  RAS##ThermoModel##MomentumTransportModel##BaseModel, \
94  0 \
95  ); \
96  \
97  defineTemplateRunTimeSelectionTable \
98  ( \
99  RAS##ThermoModel##MomentumTransportModel##BaseModel, \
100  dictionary \
101  ); \
102  \
103  addToRunTimeSelectionTable \
104  ( \
105  ThermophysicalTransportModel##MomentumTransportModel, \
106  RAS##ThermoModel##MomentumTransportModel##BaseModel, \
107  dictionary \
108  ); \
109  \
110  \
111  defineNamedTemplateTypeNameAndDebug \
112  ( \
113  LES##ThermoModel##MomentumTransportModel##BaseModel, \
114  0 \
115  ); \
116  \
117  defineTemplateRunTimeSelectionTable \
118  ( \
119  LES##ThermoModel##MomentumTransportModel##BaseModel, \
120  dictionary \
121  ); \
122  \
123  addToRunTimeSelectionTable \
124  ( \
125  ThermophysicalTransportModel##MomentumTransportModel, \
126  LES##ThermoModel##MomentumTransportModel##BaseModel, \
127  dictionary \
128  ); \
129  }
130 
131 
132 #define makeThermophysicalTransportModel( \
133  BaseModel, MomentumTransportModel, ThermoModel, SType, Type) \
134  \
135  typedef Foam::SType##ThermophysicalTransportModels::Type \
136  < \
137  Foam::BaseModel<Foam::MomentumTransportModel, Foam::ThermoModel> \
138  > Type##SType##ThermoModel##ThermoModel##MomentumTransportModel##BaseModel;\
139  \
140  defineNamedTemplateTypeNameAndDebug \
141  ( \
142  Type##SType##ThermoModel##ThermoModel \
143  ##MomentumTransportModel##BaseModel, \
144  0 \
145  ); \
146  \
147  namespace Foam \
148  { \
149  namespace SType##ThermophysicalTransportModels \
150  { \
151  typedef Type<BaseModel<MomentumTransportModel, ThermoModel>> \
152  Type##SType##ThermoModel##ThermoModel \
153  ##MomentumTransportModel##BaseModel; \
154  \
155  addToRunTimeSelectionTable \
156  ( \
157  SType##ThermoModel##MomentumTransportModel##BaseModel, \
158  Type##SType##ThermoModel##ThermoModel \
159  ##MomentumTransportModel##BaseModel, \
160  dictionary \
161  ); \
162  } \
163  }
164 
165 
166 #define makeTurbulenceThermophysicalTransportModel( \
167  BaseModel, MomentumTransportModel, ThermoModel, SType, Type) \
168  \
169  typedef Foam::turbulenceThermophysicalTransportModels::Type \
170  < \
171  Foam::SType##ThermophysicalTransportModel \
172  < \
173  Foam::BaseModel<Foam::MomentumTransportModel, Foam::ThermoModel> \
174  > \
175  > Type##SType##ThermoModel##ThermoModel##MomentumTransportModel##BaseModel;\
176  \
177  defineNamedTemplateTypeNameAndDebug \
178  ( \
179  Type##SType##ThermoModel##ThermoModel \
180  ##MomentumTransportModel##BaseModel, \
181  0 \
182  ); \
183  \
184  namespace Foam \
185  { \
186  namespace turbulenceThermophysicalTransportModels \
187  { \
188  typedef Type \
189  < \
190  SType##ThermophysicalTransportModel \
191  < \
192  BaseModel<MomentumTransportModel, ThermoModel> \
193  > \
194  > Type##SType##ThermoModel##MomentumTransportModel##BaseModel; \
195  \
196  addToRunTimeSelectionTable \
197  ( \
198  SType##ThermoModel##MomentumTransportModel##BaseModel, \
199  Type##SType##ThermoModel##MomentumTransportModel##BaseModel, \
200  dictionary \
201  ); \
202  } \
203  }
204 
205 
206 // ************************************************************************* //