mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
TurbulenceModels: New macros to instantiate models
This commit is contained in:
@ -26,116 +26,37 @@ License
|
||||
#include "CompressibleTurbulenceModel.H"
|
||||
#include "fluidThermo.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef TurbulenceModel
|
||||
<
|
||||
geometricOneField,
|
||||
volScalarField,
|
||||
compressibleTurbulenceModel,
|
||||
fluidThermo
|
||||
> baseCompressibleFluidThermoTurbulenceModel;
|
||||
|
||||
defineTemplateRunTimeSelectionTable
|
||||
(
|
||||
baseCompressibleFluidThermoTurbulenceModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
|
||||
typedef CompressibleTurbulenceModel<fluidThermo>
|
||||
compressibleFluidThermoTurbulenceModel;
|
||||
}
|
||||
|
||||
#include "makeTurbulenceModel.H"
|
||||
|
||||
#include "laminar.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef laminar<compressibleFluidThermoTurbulenceModel> compressibleLaminar;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(compressibleLaminar, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseCompressibleFluidThermoTurbulenceModel,
|
||||
compressibleLaminar,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
#include "RASModel.H"
|
||||
#include "kEpsilon.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef RASModel<compressibleFluidThermoTurbulenceModel>
|
||||
compressibleRASModel;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(compressibleRASModel, 0);
|
||||
|
||||
defineTemplateRunTimeSelectionTable(compressibleRASModel, dictionary);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseCompressibleFluidThermoTurbulenceModel,
|
||||
compressibleRASModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
namespace RASModels
|
||||
{
|
||||
typedef kEpsilon<compressibleFluidThermoTurbulenceModel>
|
||||
compressibleKEpsilon;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(compressibleKEpsilon, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
compressibleRASModel,
|
||||
compressibleKEpsilon,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "LESModel.H"
|
||||
|
||||
makeBaseTurbulenceModel
|
||||
(
|
||||
geometricOneField,
|
||||
volScalarField,
|
||||
compressibleTurbulenceModel,
|
||||
CompressibleTurbulenceModel,
|
||||
fluidThermo
|
||||
);
|
||||
|
||||
#define makeRASModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(fluidThermoCompressibleTurbulenceModel, RAS, Type)
|
||||
|
||||
#define makeLESModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(fluidThermoCompressibleTurbulenceModel, LES, Type)
|
||||
|
||||
#include "kEpsilon.H"
|
||||
makeRASModel(kEpsilon);
|
||||
|
||||
#include "Smagorinsky.H"
|
||||
makeLESModel(Smagorinsky);
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef LESModel<compressibleFluidThermoTurbulenceModel>
|
||||
compressibleLESModel;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(compressibleLESModel, 0);
|
||||
|
||||
defineTemplateRunTimeSelectionTable(compressibleLESModel, dictionary);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseCompressibleFluidThermoTurbulenceModel,
|
||||
compressibleLESModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
namespace LESModels
|
||||
{
|
||||
typedef Smagorinsky<compressibleFluidThermoTurbulenceModel>
|
||||
compressibleSmagorinsky;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(compressibleSmagorinsky, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
compressibleLESModel,
|
||||
compressibleSmagorinsky,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
#include "kEqn.H"
|
||||
makeLESModel(kEqn);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -26,136 +26,37 @@ License
|
||||
#include "IncompressibleTurbulenceModel.H"
|
||||
#include "transportModel.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef TurbulenceModel
|
||||
<
|
||||
geometricOneField,
|
||||
geometricOneField,
|
||||
incompressibleTurbulenceModel,
|
||||
transportModel
|
||||
> baseIncompressibleTransportTurbulenceModel;
|
||||
|
||||
defineTemplateRunTimeSelectionTable
|
||||
(
|
||||
baseIncompressibleTransportTurbulenceModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
typedef IncompressibleTurbulenceModel
|
||||
<
|
||||
transportModel
|
||||
> incompressibleTransportTurbulenceModel;
|
||||
}
|
||||
|
||||
#include "makeTurbulenceModel.H"
|
||||
|
||||
#include "laminar.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef laminar<incompressibleTransportTurbulenceModel>
|
||||
incompressibleLaminar;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressibleLaminar, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseIncompressibleTransportTurbulenceModel,
|
||||
incompressibleLaminar,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "RASModel.H"
|
||||
#include "kEpsilon.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef RASModel<incompressibleTransportTurbulenceModel>
|
||||
incompressibleRASModel;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressibleRASModel, 0);
|
||||
|
||||
defineTemplateRunTimeSelectionTable(incompressibleRASModel, dictionary);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseIncompressibleTransportTurbulenceModel,
|
||||
incompressibleRASModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
namespace RASModels
|
||||
{
|
||||
typedef kEpsilon<incompressibleTransportTurbulenceModel>
|
||||
incompressibleKEpsilon;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressibleKEpsilon, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
incompressibleRASModel,
|
||||
incompressibleKEpsilon,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "LESModel.H"
|
||||
|
||||
makeBaseTurbulenceModel
|
||||
(
|
||||
geometricOneField,
|
||||
geometricOneField,
|
||||
incompressibleTurbulenceModel,
|
||||
IncompressibleTurbulenceModel,
|
||||
transportModel
|
||||
);
|
||||
|
||||
#define makeRASModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(transportModelIncompressibleTurbulenceModel, RAS, Type)
|
||||
|
||||
#define makeLESModel(Type) \
|
||||
makeTemplatedTurbulenceModel \
|
||||
(transportModelIncompressibleTurbulenceModel, LES, Type)
|
||||
|
||||
#include "kEpsilon.H"
|
||||
makeRASModel(kEpsilon);
|
||||
|
||||
#include "Smagorinsky.H"
|
||||
makeLESModel(Smagorinsky);
|
||||
|
||||
#include "kEqn.H"
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef LESModel<incompressibleTransportTurbulenceModel>
|
||||
incompressibleLESModel;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressibleLESModel, 0);
|
||||
|
||||
defineTemplateRunTimeSelectionTable(incompressibleLESModel, dictionary);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
baseIncompressibleTransportTurbulenceModel,
|
||||
incompressibleLESModel,
|
||||
dictionary
|
||||
);
|
||||
|
||||
namespace LESModels
|
||||
{
|
||||
typedef Smagorinsky<incompressibleTransportTurbulenceModel>
|
||||
incompressibleSmagorinsky;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressibleSmagorinsky, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
incompressibleLESModel,
|
||||
incompressibleSmagorinsky,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
namespace LESModels
|
||||
{
|
||||
typedef kEqn<incompressibleTransportTurbulenceModel>
|
||||
incompressiblekEqn;
|
||||
|
||||
defineNamedTemplateTypeNameAndDebug(incompressiblekEqn, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
incompressibleLESModel,
|
||||
incompressiblekEqn,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
makeLESModel(kEqn);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
126
src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H
Normal file
126
src/TurbulenceModels/turbulenceModels/makeTurbulenceModel.H
Normal file
@ -0,0 +1,126 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#define makeBaseTurbulenceModel(Alpha, Rho, baseModel, BaseModel, Transport) \
|
||||
\
|
||||
namespace Foam \
|
||||
{ \
|
||||
typedef TurbulenceModel \
|
||||
< \
|
||||
Alpha, \
|
||||
Rho, \
|
||||
baseModel, \
|
||||
Transport \
|
||||
> Transport##baseModel; \
|
||||
\
|
||||
defineTemplateRunTimeSelectionTable \
|
||||
( \
|
||||
Transport##baseModel, \
|
||||
dictionary \
|
||||
); \
|
||||
\
|
||||
typedef BaseModel<Transport> Transport##BaseModel; \
|
||||
\
|
||||
\
|
||||
typedef laminar<Transport##BaseModel> Laminar##Transport##BaseModel; \
|
||||
\
|
||||
defineNamedTemplateTypeNameAndDebug(Laminar##Transport##BaseModel, 0); \
|
||||
\
|
||||
addToRunTimeSelectionTable \
|
||||
( \
|
||||
Transport##baseModel, \
|
||||
Laminar##Transport##BaseModel, \
|
||||
dictionary \
|
||||
); \
|
||||
\
|
||||
\
|
||||
typedef RASModel<Transport##BaseModel> RAS##Transport##BaseModel; \
|
||||
\
|
||||
defineNamedTemplateTypeNameAndDebug(RAS##Transport##BaseModel, 0); \
|
||||
\
|
||||
defineTemplateRunTimeSelectionTable \
|
||||
(RAS##Transport##BaseModel, dictionary); \
|
||||
\
|
||||
addToRunTimeSelectionTable \
|
||||
( \
|
||||
Transport##baseModel, \
|
||||
RAS##Transport##BaseModel, \
|
||||
dictionary \
|
||||
); \
|
||||
\
|
||||
\
|
||||
typedef LESModel<Transport##BaseModel> LES##Transport##BaseModel; \
|
||||
\
|
||||
defineNamedTemplateTypeNameAndDebug(LES##Transport##BaseModel, 0); \
|
||||
\
|
||||
defineTemplateRunTimeSelectionTable \
|
||||
(LES##Transport##BaseModel, dictionary); \
|
||||
\
|
||||
addToRunTimeSelectionTable \
|
||||
( \
|
||||
Transport##baseModel, \
|
||||
LES##Transport##BaseModel, \
|
||||
dictionary \
|
||||
); \
|
||||
}
|
||||
|
||||
|
||||
#define makeTemplatedTurbulenceModel(BaseModel, SType, Type) \
|
||||
namespace Foam \
|
||||
{ \
|
||||
namespace SType##Models \
|
||||
{ \
|
||||
typedef Type<BaseModel> Type##SType##BaseModel; \
|
||||
\
|
||||
defineNamedTemplateTypeNameAndDebug(Type##SType##BaseModel, 0); \
|
||||
\
|
||||
addToRunTimeSelectionTable \
|
||||
( \
|
||||
SType##BaseModel, \
|
||||
Type##SType##BaseModel, \
|
||||
dictionary \
|
||||
); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define makeTurbulenceModel(BaseModel, SType, Type) \
|
||||
namespace Foam \
|
||||
{ \
|
||||
namespace SType##Models \
|
||||
{ \
|
||||
defineTypeNameAndDebug(Type, 0); \
|
||||
\
|
||||
addToRunTimeSelectionTable \
|
||||
( \
|
||||
SType##BaseModel, \
|
||||
Type, \
|
||||
dictionary \
|
||||
); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
Reference in New Issue
Block a user