thermophysicalModels: Improved compilation error message generated for unsupported combination of properties and mixing

in particular for equations of state which do not support coefficient mixing
required by equilibrium constant evaluation in reactions.

Also improved the set of pre-compiled combinations of properties and mixing
rules.
This commit is contained in:
Henry Weller
2021-04-29 18:48:15 +01:00
parent 6e3b5207ae
commit 9c7328c097
33 changed files with 271 additions and 101 deletions

View File

@ -33,7 +33,7 @@ License
namespace Foam
{
forGases
forCoeffGases
(
makeGeneralReaction,
IrreversibleReaction,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -303,6 +303,10 @@ public:
extern error FatalError;
extern IOerror FatalIOError;
// Template argument dependent "false" for static_assert in templated functions
template <class... T>
constexpr bool False = false;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, DAC);
forLiquids(makeChemistryReductionMethod, DAC);
forCoeffGases(makeChemistryReductionMethod, DAC);
forCoeffLiquids(makeChemistryReductionMethod, DAC);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, DRG);
forLiquids(makeChemistryReductionMethod, DRG);
forCoeffGases(makeChemistryReductionMethod, DRG);
forCoeffLiquids(makeChemistryReductionMethod, DRG);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, DRGEP);
forLiquids(makeChemistryReductionMethod, DRGEP);
forCoeffGases(makeChemistryReductionMethod, DRGEP);
forCoeffLiquids(makeChemistryReductionMethod, DRGEP);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, EFA);
forLiquids(makeChemistryReductionMethod, EFA);
forCoeffGases(makeChemistryReductionMethod, EFA);
forCoeffLiquids(makeChemistryReductionMethod, EFA);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, PFA);
forLiquids(makeChemistryReductionMethod, PFA);
forCoeffGases(makeChemistryReductionMethod, PFA);
forCoeffLiquids(makeChemistryReductionMethod, PFA);
}

View File

@ -33,8 +33,8 @@ License
namespace Foam
{
forGases(defineChemistryReductionMethod, nullArg);
forLiquids(defineChemistryReductionMethod, nullArg);
forCoeffGases(defineChemistryReductionMethod, nullArg);
forCoeffLiquids(defineChemistryReductionMethod, nullArg);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryReductionMethod, none);
forLiquids(makeChemistryReductionMethod, none);
forCoeffGases(makeChemistryReductionMethod, none);
forCoeffLiquids(makeChemistryReductionMethod, none);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryTabulationMethod, ISAT);
forLiquids(makeChemistryTabulationMethod, ISAT);
forCoeffGases(makeChemistryTabulationMethod, ISAT);
forCoeffLiquids(makeChemistryTabulationMethod, ISAT);
}

View File

@ -33,8 +33,8 @@ License
namespace Foam
{
forGases(defineChemistryTabulationMethod, nullArg);
forLiquids(defineChemistryTabulationMethod, nullArg);
forCoeffGases(defineChemistryTabulationMethod, nullArg);
forCoeffLiquids(defineChemistryTabulationMethod, nullArg);
}

View File

@ -35,8 +35,8 @@ License
namespace Foam
{
forGases(makeChemistryTabulationMethod, none);
forLiquids(makeChemistryTabulationMethod, none);
forCoeffGases(makeChemistryTabulationMethod, none);
forCoeffLiquids(makeChemistryTabulationMethod, none);
}

View File

@ -36,8 +36,8 @@ License
namespace Foam
{
forGases(makeChemistrySolvers, EulerImplicit);
forLiquids(makeChemistrySolvers, EulerImplicit);
forCoeffGases(makeChemistrySolvers, EulerImplicit);
forCoeffLiquids(makeChemistrySolvers, EulerImplicit);
}

View File

@ -36,8 +36,8 @@ License
namespace Foam
{
forGases(defineChemistrySolvers, nullArg);
forLiquids(defineChemistrySolvers, nullArg);
forCoeffGases(defineChemistrySolvers, nullArg);
forCoeffLiquids(defineChemistrySolvers, nullArg);
}

View File

@ -36,8 +36,8 @@ License
namespace Foam
{
forGases(makeChemistrySolvers, noChemistrySolver);
forLiquids(makeChemistrySolvers, noChemistrySolver);
forCoeffGases(makeChemistrySolvers, noChemistrySolver);
forCoeffLiquids(makeChemistrySolvers, noChemistrySolver);
}

View File

@ -36,8 +36,8 @@ License
namespace Foam
{
forGases(makeChemistrySolvers, ode);
forLiquids(makeChemistrySolvers, ode);
forCoeffGases(makeChemistrySolvers, ode);
forCoeffLiquids(makeChemistrySolvers, ode);
}

View File

@ -33,7 +33,7 @@ License
namespace Foam
{
forGases
forCoeffGases
(
makeGeneralReaction,
IrreversibleReaction,

View File

@ -34,8 +34,8 @@ License
namespace Foam
{
forGases(makeIRReactions, LangmuirHinshelwoodReactionRate);
forLiquids(makeIRReactions, LangmuirHinshelwoodReactionRate);
forCoeffGases(makeIRReactions, LangmuirHinshelwoodReactionRate);
forCoeffLiquids(makeIRReactions, LangmuirHinshelwoodReactionRate);
}
// ************************************************************************* //

View File

@ -33,7 +33,7 @@ License
namespace Foam
{
forLiquids(makeIReactions, MichaelisMentenReactionRate);
forCoeffLiquids(makeIReactions, MichaelisMentenReactionRate);
}
// ************************************************************************* //

View File

@ -58,41 +58,41 @@ const char* const Foam::Tuple2<Foam::word, Foam::scalar>::typeName
namespace Foam
{
forGases(defineReaction, nullArg);
forLiquids(defineReaction, nullArg);
forCoeffGases(defineReaction, nullArg);
forCoeffLiquids(defineReaction, nullArg);
// Irreversible/reversible/non-equilibrium-reversible reactions
forGases(makeIRNReactions, ArrheniusReactionRate);
forLiquids(makeIRNReactions, ArrheniusReactionRate);
forCoeffGases(makeIRNReactions, ArrheniusReactionRate);
forCoeffLiquids(makeIRNReactions, ArrheniusReactionRate);
forGases(makeIRNReactions, LandauTellerReactionRate);
forLiquids(makeIRNReactions, LandauTellerReactionRate);
forCoeffGases(makeIRNReactions, LandauTellerReactionRate);
forCoeffLiquids(makeIRNReactions, LandauTellerReactionRate);
forGases(makeIRNReactions, thirdBodyArrheniusReactionRate);
forLiquids(makeIRNReactions, thirdBodyArrheniusReactionRate);
forCoeffGases(makeIRNReactions, thirdBodyArrheniusReactionRate);
forCoeffLiquids(makeIRNReactions, thirdBodyArrheniusReactionRate);
// Irreversible/reversible reactions
forGases(makeIRReactions, JanevReactionRate);
forLiquids(makeIRReactions, JanevReactionRate);
forCoeffGases(makeIRReactions, JanevReactionRate);
forCoeffLiquids(makeIRReactions, JanevReactionRate);
forGases(makeIRReactions, powerSeriesReactionRate);
forLiquids(makeIRReactions, powerSeriesReactionRate);
forCoeffGases(makeIRReactions, powerSeriesReactionRate);
forCoeffLiquids(makeIRReactions, powerSeriesReactionRate);
// Pressure dependent reactions
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
ArrheniusReactionRate,
LindemannFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
@ -100,14 +100,14 @@ namespace Foam
LindemannFallOffFunction
);
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
ArrheniusReactionRate,
TroeFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
@ -115,14 +115,14 @@ namespace Foam
TroeFallOffFunction
);
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
ArrheniusReactionRate,
SRIFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
FallOffReactionRate,
@ -130,14 +130,14 @@ namespace Foam
SRIFallOffFunction
);
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,
ArrheniusReactionRate,
LindemannFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,
@ -145,14 +145,14 @@ namespace Foam
LindemannFallOffFunction
);
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,
ArrheniusReactionRate,
TroeFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,
@ -160,14 +160,14 @@ namespace Foam
TroeFallOffFunction
);
forGases
forCoeffGases
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,
ArrheniusReactionRate,
SRIFallOffFunction
);
forLiquids
forCoeffLiquids
(
makeIRRPressureDependentReactions,
ChemicallyActivatedReactionRate,

View File

@ -33,7 +33,7 @@ License
namespace Foam
{
forGases
forCoeffGases
(
makeGeneralReaction,
IrreversibleReaction,

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -59,8 +59,14 @@ License
namespace Foam
{
forGases(makePsiReactionThermos, coefficientMultiComponentMixture);
forGases(makePsiReactionThermos, coefficientWilkeMultiComponentMixture);
forCoeffGases(makePsiReactionThermos, coefficientMultiComponentMixture);
forCoeffGases
(
makePsiReactionThermos,
coefficientWilkeMultiComponentMixture
);
forGases(makePsiReactionThermo, singleComponentMixture);
}

View File

@ -24,6 +24,7 @@ License
\*---------------------------------------------------------------------------*/
#include "coefficientMultiComponentMixture.H"
#include "coefficientWilkeMultiComponentMixture.H"
#include "valueMultiComponentMixture.H"
#include "singleComponentMixture.H"
@ -61,13 +62,22 @@ License
namespace Foam
{
forGases(makeRhoReactionThermos, coefficientMultiComponentMixture);
forCoeffGases(makeRhoReactionThermos, coefficientMultiComponentMixture);
forCoeffGases
(
makeRhoReactionThermos,
coefficientWilkeMultiComponentMixture
);
forGases(makeRhoReactionThermo, singleComponentMixture);
forLiquids(makeRhoReactionThermos, coefficientMultiComponentMixture);
forCoeffLiquids(makeRhoReactionThermos, coefficientMultiComponentMixture);
forLiquids(makeRhoReactionThermos, valueMultiComponentMixture);
forLiquids(makeRhoReactionThermo, singleComponentMixture);
forTabulated(makeRhoReactionThermos, valueMultiComponentMixture);
forTabulated(makeRhoReactionThermos, singleComponentMixture);
}
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -185,7 +185,7 @@ inline void Foam::Boussinesq<Specie>::operator+=
const Boussinesq<Specie>& b
)
{
NotImplemented;
noCoefficientMixing(Boussinesq);
}
@ -205,7 +205,7 @@ inline Foam::Boussinesq<Specie> Foam::operator+
const Boussinesq<Specie>& b2
)
{
NotImplemented;
noCoefficientMixing(Boussinesq);
return b1;
}
@ -234,7 +234,7 @@ inline Foam::Boussinesq<Specie> Foam::operator==
const Boussinesq<Specie>& b2
)
{
NotImplemented;
noCoefficientMixing(Boussinesq);
return b1;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -215,7 +215,7 @@ inline void Foam::adiabaticPerfectFluid<Specie>::operator+=
const adiabaticPerfectFluid<Specie>& pf
)
{
NotImplemented;
noCoefficientMixing(adiabaticPerfectFluid);
}
@ -235,7 +235,7 @@ inline Foam::adiabaticPerfectFluid<Specie> Foam::operator+
const adiabaticPerfectFluid<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(adiabaticPerfectFluid);
return pf1;
}
@ -265,7 +265,7 @@ inline Foam::adiabaticPerfectFluid<Specie> Foam::operator==
const adiabaticPerfectFluid<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(adiabaticPerfectFluid);
return pf1;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -195,7 +195,7 @@ inline void Foam::icoPolynomial<Specie, PolySize>::operator+=
const icoPolynomial<Specie, PolySize>& ip
)
{
NotImplemented;
noCoefficientMixing(icoPolynomial);
}
@ -215,7 +215,7 @@ Foam::icoPolynomial<Specie, PolySize> Foam::operator+
const icoPolynomial<Specie, PolySize>& ip2
)
{
NotImplemented;
noCoefficientMixing(icoPolynomial);
return ip1;
}
@ -242,7 +242,7 @@ Foam::icoPolynomial<Specie, PolySize> Foam::operator==
const icoPolynomial<Specie, PolySize>& ip2
)
{
NotImplemented;
noCoefficientMixing(icoPolynomial);
return ip1;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2013-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -158,7 +158,7 @@ inline void Foam::linear<Specie>::operator+=
const linear<Specie>& pf
)
{
NotImplemented;
noCoefficientMixing(linear);
}
@ -178,7 +178,7 @@ inline Foam::linear<Specie> Foam::operator+
const linear<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(linear);
return pf1;
}
@ -206,7 +206,7 @@ inline Foam::linear<Specie> Foam::operator==
const linear<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(linear);
return pf1;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2012-2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -168,7 +168,7 @@ inline void Foam::perfectFluid<Specie>::operator+=
const perfectFluid<Specie>& pf
)
{
NotImplemented;
noCoefficientMixing(perfectFluid);
}
@ -188,7 +188,7 @@ inline Foam::perfectFluid<Specie> Foam::operator+
const perfectFluid<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(perfectFluid);
return pf1;
}
@ -216,7 +216,7 @@ inline Foam::perfectFluid<Specie> Foam::operator==
const perfectFluid<Specie>& pf2
)
{
NotImplemented;
noCoefficientMixing(perfectFluid);
return pf1;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -90,6 +90,27 @@ namespace Foam
template<class Specie>
class rhoTabulated;
template<class Specie>
inline rhoTabulated<Specie> operator+
(
const rhoTabulated<Specie>&,
const rhoTabulated<Specie>&
);
template<class Specie>
inline rhoTabulated<Specie> operator*
(
const scalar,
const rhoTabulated<Specie>&
);
template<class Specie>
inline rhoTabulated<Specie> operator==
(
const rhoTabulated<Specie>&,
const rhoTabulated<Specie>&
);
template<class Specie>
Ostream& operator<<
(
@ -201,6 +222,33 @@ public:
void write(Ostream& os) const;
// Member Operators
inline void operator+=(const rhoTabulated&);
inline void operator*=(const scalar);
// Friend operators
friend rhoTabulated operator+ <Specie>
(
const rhoTabulated&,
const rhoTabulated&
);
friend rhoTabulated operator* <Specie>
(
const scalar s,
const rhoTabulated&
);
friend rhoTabulated operator== <Specie>
(
const rhoTabulated&,
const rhoTabulated&
);
// Ostream Operator
friend Ostream& operator<< <Specie>

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2020 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -194,4 +194,61 @@ inline Foam::scalar Foam::rhoTabulated<Specie>::CpMCv
}
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
template<class Specie>
inline void Foam::rhoTabulated<Specie>::operator+=
(
const rhoTabulated<Specie>& pf
)
{
noCoefficientMixing(rhoTabulated);
}
template<class Specie>
inline void Foam::rhoTabulated<Specie>::operator*=(const scalar s)
{
noCoefficientMixing(rhoTabulated);
}
// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * //
template<class Specie>
inline Foam::rhoTabulated<Specie> Foam::operator+
(
const rhoTabulated<Specie>& pf1,
const rhoTabulated<Specie>& pf2
)
{
noCoefficientMixing(rhoTabulated);
return pf1;
}
template<class Specie>
inline Foam::rhoTabulated<Specie> Foam::operator*
(
const scalar s,
const rhoTabulated<Specie>& pf
)
{
noCoefficientMixing(rhoTabulated);
return pf;
}
template<class Specie>
inline Foam::rhoTabulated<Specie> Foam::operator==
(
const rhoTabulated<Specie>& pf1,
const rhoTabulated<Specie>& pf2
)
{
noCoefficientMixing(rhoTabulated);
return pf1;
}
// ************************************************************************* //

View File

@ -47,24 +47,44 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define forGasEqns(Mu, He, Cp, Macro, Args...) \
forThermo(Mu, He, Cp, Boussinesq, specie, Macro, Args); \
#define forGasEqns(Mu, He, Cp, Macro, Args...) \
forThermo(Mu, He, Cp, Boussinesq, specie, Macro, Args); \
forThermo(Mu, He, Cp, perfectGas, specie, Macro, Args)
#define forGasEnergiesAndThermos(Mu, Macro, Args...) \
forGasEqns(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forGasEqns(Mu, sensibleEnthalpy, janafThermo, Macro, Args); \
forGasEqns(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forGasEqns(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args); \
#define forGasEnergiesAndThermos(Mu, Macro, Args...) \
forGasEqns(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forGasEqns(Mu, sensibleEnthalpy, janafThermo, Macro, Args); \
forGasEqns(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forGasEqns(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args); \
forGasEqns(Mu, sensibleInternalEnergy, janafThermo, Macro, Args)
#define forGasTransports(Macro, Args...) \
forGasEnergiesAndThermos(constTransport, Macro, Args); \
#define forGasTransports(Macro, Args...) \
forGasEnergiesAndThermos(constTransport, Macro, Args); \
forGasEnergiesAndThermos(sutherlandTransport, Macro, Args)
#define forGases(Macro, Args...) \
#define forGases(Macro, Args...) \
forGasTransports(Macro, Args)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define forCoeffGasEqns(Mu, He, Cp, Macro, Args...) \
forThermo(Mu, He, Cp, perfectGas, specie, Macro, Args)
#define forCoeffGasEnergiesAndThermos(Mu, Macro, Args...) \
forCoeffGasEqns(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forCoeffGasEqns(Mu, sensibleEnthalpy, janafThermo, Macro, Args); \
forCoeffGasEqns(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forCoeffGasEqns(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args); \
forCoeffGasEqns(Mu, sensibleInternalEnergy, janafThermo, Macro, Args)
#define forCoeffGasTransports(Macro, Args...) \
forCoeffGasEnergiesAndThermos(constTransport, Macro, Args); \
forCoeffGasEnergiesAndThermos(sutherlandTransport, Macro, Args)
#define forCoeffGases(Macro, Args...) \
forCoeffGasTransports(Macro, Args)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif

View File

@ -46,15 +46,15 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define forLiquidEquations(Mu, He, Cp, Macro, Args...) \
#define forLiquidEqns(Mu, He, Cp, Macro, Args...) \
forThermo(Mu, He, Cp, adiabaticPerfectFluid, specie, Macro, Args); \
forThermo(Mu, He, Cp, rhoConst, specie, Macro, Args); \
forThermo(Mu, He, Cp, rPolynomial, specie, Macro, Args)
#define forLiquidEnergiesAndThermos(Mu, Macro, Args...) \
forLiquidEquations(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forLiquidEquations(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forLiquidEquations(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args)
forLiquidEqns(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forLiquidEqns(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forLiquidEqns(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args)
#define forLiquidTransports(Macro, Args...) \
forLiquidEnergiesAndThermos(constTransport, Macro, Args);
@ -62,6 +62,24 @@ License
#define forLiquids(Macro, Args...) \
forLiquidTransports(Macro, Args)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define forCoeffLiquidEqns(Mu, He, Cp, Macro, Args...) \
forThermo(Mu, He, Cp, rhoConst, specie, Macro, Args); \
forThermo(Mu, He, Cp, rPolynomial, specie, Macro, Args)
#define forCoeffLiquidEnergiesAndThermos(Mu, Macro, Args...) \
forCoeffLiquidEqns(Mu, sensibleEnthalpy, hConstThermo, Macro, Args); \
forCoeffLiquidEqns(Mu, sensibleInternalEnergy, eConstThermo, Macro, Args); \
forCoeffLiquidEqns(Mu, sensibleInternalEnergy, hConstThermo, Macro, Args)
#define forCoeffLiquidTransports(Macro, Args...) \
forCoeffLiquidEnergiesAndThermos(constTransport, Macro, Args);
#define forCoeffLiquids(Macro, Args...) \
forCoeffLiquidTransports(Macro, Args)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -157,6 +157,13 @@ public:
#include "specieI.H"
#define noCoefficientMixing(Type) \
static_assert \
( \
False<Specie>, \
#Type " does not support coefficient mixing" \
)
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif