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) 2013-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 #define makeMomentumTransportModelTypes( \
27  Alpha, Rho, baseModel, BaseModel, Transport) \
28  \
29  namespace Foam \
30  { \
31  typedef BaseModel<Transport> Transport##BaseModel; \
32  typedef laminarModel<Transport##BaseModel> \
33  laminar##Transport##BaseModel; \
34  typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
35  typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
36  }
37 
38 
39 #define makeBaseMomentumTransportModel( \
40  Alpha, Rho, baseModel, BaseModel, Transport) \
41  \
42  namespace Foam \
43  { \
44  typedef MomentumTransportModel \
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 makeTemplatedMomentumTransportModel(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 makeMomentumTransportModel(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 // ************************************************************************* //