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:
@ -33,7 +33,7 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases
|
||||
forCoeffGases
|
||||
(
|
||||
makeGeneralReaction,
|
||||
IrreversibleReaction,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, DAC);
|
||||
forLiquids(makeChemistryReductionMethod, DAC);
|
||||
forCoeffGases(makeChemistryReductionMethod, DAC);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, DAC);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, DRG);
|
||||
forLiquids(makeChemistryReductionMethod, DRG);
|
||||
forCoeffGases(makeChemistryReductionMethod, DRG);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, DRG);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, DRGEP);
|
||||
forLiquids(makeChemistryReductionMethod, DRGEP);
|
||||
forCoeffGases(makeChemistryReductionMethod, DRGEP);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, DRGEP);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, EFA);
|
||||
forLiquids(makeChemistryReductionMethod, EFA);
|
||||
forCoeffGases(makeChemistryReductionMethod, EFA);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, EFA);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, PFA);
|
||||
forLiquids(makeChemistryReductionMethod, PFA);
|
||||
forCoeffGases(makeChemistryReductionMethod, PFA);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, PFA);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -33,8 +33,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(defineChemistryReductionMethod, nullArg);
|
||||
forLiquids(defineChemistryReductionMethod, nullArg);
|
||||
forCoeffGases(defineChemistryReductionMethod, nullArg);
|
||||
forCoeffLiquids(defineChemistryReductionMethod, nullArg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryReductionMethod, none);
|
||||
forLiquids(makeChemistryReductionMethod, none);
|
||||
forCoeffGases(makeChemistryReductionMethod, none);
|
||||
forCoeffLiquids(makeChemistryReductionMethod, none);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryTabulationMethod, ISAT);
|
||||
forLiquids(makeChemistryTabulationMethod, ISAT);
|
||||
forCoeffGases(makeChemistryTabulationMethod, ISAT);
|
||||
forCoeffLiquids(makeChemistryTabulationMethod, ISAT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -33,8 +33,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(defineChemistryTabulationMethod, nullArg);
|
||||
forLiquids(defineChemistryTabulationMethod, nullArg);
|
||||
forCoeffGases(defineChemistryTabulationMethod, nullArg);
|
||||
forCoeffLiquids(defineChemistryTabulationMethod, nullArg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -35,8 +35,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistryTabulationMethod, none);
|
||||
forLiquids(makeChemistryTabulationMethod, none);
|
||||
forCoeffGases(makeChemistryTabulationMethod, none);
|
||||
forCoeffLiquids(makeChemistryTabulationMethod, none);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,8 +36,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistrySolvers, EulerImplicit);
|
||||
forLiquids(makeChemistrySolvers, EulerImplicit);
|
||||
forCoeffGases(makeChemistrySolvers, EulerImplicit);
|
||||
forCoeffLiquids(makeChemistrySolvers, EulerImplicit);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,8 +36,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(defineChemistrySolvers, nullArg);
|
||||
forLiquids(defineChemistrySolvers, nullArg);
|
||||
forCoeffGases(defineChemistrySolvers, nullArg);
|
||||
forCoeffLiquids(defineChemistrySolvers, nullArg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,8 +36,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistrySolvers, noChemistrySolver);
|
||||
forLiquids(makeChemistrySolvers, noChemistrySolver);
|
||||
forCoeffGases(makeChemistrySolvers, noChemistrySolver);
|
||||
forCoeffLiquids(makeChemistrySolvers, noChemistrySolver);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -36,8 +36,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeChemistrySolvers, ode);
|
||||
forLiquids(makeChemistrySolvers, ode);
|
||||
forCoeffGases(makeChemistrySolvers, ode);
|
||||
forCoeffLiquids(makeChemistrySolvers, ode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases
|
||||
forCoeffGases
|
||||
(
|
||||
makeGeneralReaction,
|
||||
IrreversibleReaction,
|
||||
|
||||
@ -34,8 +34,8 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases(makeIRReactions, LangmuirHinshelwoodReactionRate);
|
||||
forLiquids(makeIRReactions, LangmuirHinshelwoodReactionRate);
|
||||
forCoeffGases(makeIRReactions, LangmuirHinshelwoodReactionRate);
|
||||
forCoeffLiquids(makeIRReactions, LangmuirHinshelwoodReactionRate);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -33,7 +33,7 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forLiquids(makeIReactions, MichaelisMentenReactionRate);
|
||||
forCoeffLiquids(makeIReactions, MichaelisMentenReactionRate);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -33,7 +33,7 @@ License
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
forGases
|
||||
forCoeffGases
|
||||
(
|
||||
makeGeneralReaction,
|
||||
IrreversibleReaction,
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user