38#ifndef InterfaceCompositionModel_H
39#define InterfaceCompositionModel_H
41#include "interfaceCompositionModel.H"
51template<
class ThermoType>
class pureMixture;
52template<
class ThermoType>
class multiComponentMixture;
58template<
class Thermo,
class OtherThermo>
59class InterfaceCompositionModel
61 public interfaceCompositionModel
80 template<
class ThermoType>
84 const word& speciesName,
89 template<
class ThermoType>
93 const word& speciesName,
119 const word& speciesName,
126 const word& speciesName
132 const word& speciesName,
154#define makeInterfaceCompositionType(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
156 typedef Thermo<Comp, SpecieMixture<Mix<Phys>>> \
157 Type##Thermo##Comp##Mix##Phys; \
159 typedef OtherThermo<OtherComp, OtherMix<OtherPhys>> \
160 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
162 addInterfaceCompositionToRunTimeSelectionTable \
165 Type##Thermo##Comp##Mix##Phys, \
166 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
170#define makeSpecieInterfaceCompositionType(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
172 typedef Thermo<Comp, SpecieMixture<Mix<Phys>>> \
173 Type##Thermo##Comp##Mix##Phys; \
175 typedef OtherThermo<OtherComp, SpecieMixture<OtherMix<OtherPhys>>> \
176 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
178 addInterfaceCompositionToRunTimeSelectionTable \
181 Type##Thermo##Comp##Mix##Phys, \
182 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
186#define addInterfaceCompositionToRunTimeSelectionTable(Type, Thermo, OtherThermo)\
188 typedef Type<Thermo, OtherThermo> \
189 Type##Thermo##OtherThermo; \
191 defineTemplateTypeNameAndDebugWithName \
193 Type##Thermo##OtherThermo, \
195 word(Type##Thermo##OtherThermo::typeName_()) + "<" \
196 + word(Thermo::typeName) + "," \
197 + word(OtherThermo::typeName) + ">" \
202 addToRunTimeSelectionTable \
204 interfaceCompositionModel, \
205 Type##Thermo##OtherThermo, \
212 #include "InterfaceCompositionModel.C"
CGAL::Exact_predicates_exact_constructions_kernel K
Base class for interface composition models, templated on the two thermodynamic models either side of...
virtual tmp< volScalarField > L(const word &speciesName, const volScalarField &Tf) const
Latent heat.
virtual void addMDotL(const volScalarField &K, const volScalarField &Tf, volScalarField &mDotL, volScalarField &mDotLPrime) const
Add latent heat flow rate to total.
virtual tmp< volScalarField > dY(const word &speciesName, const volScalarField &Tf) const
Mass fraction difference between the interface and the field.
virtual tmp< volScalarField > dY(const word &speciesName, const volScalarField &Tf) const
Mass fraction difference between the interface and the field.
const Thermo & thermo_
Thermo.
InterfaceCompositionModel(const dictionary &dict, const phasePair &pair)
Construct from components.
const OtherThermo & otherThermo_
Other Thermo.
const multiComponentMixture< ThermoType >::thermoType & getLocalThermo(const word &speciesName, const multiComponentMixture< ThermoType > &globalThermo) const
Get a reference to the local thermo for a multi component mixture.
const dimensionedScalar Le_
Lewis number.
virtual ~InterfaceCompositionModel()=default
Destructor.
const pureMixture< ThermoType >::thermoType & getLocalThermo(const word &speciesName, const pureMixture< ThermoType > &globalThermo) const
Get a reference to the local thermo for a pure mixture.
~InterfaceCompositionModel()=default
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Foam::multiComponentMixture.
ThermoType thermoType
The type of thermodynamics this mixture is instantiated for.
const phasePair & pair() const
The phase pair.
Description for mass transfer between a pair of phases. The direction of the mass transfer is from th...
ThermoType thermoType
The type of thermodynamics this mixture is instantiated for.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const dimensionedScalar & D
const vector L(dict.get< vector >("L"))