38#ifndef InterfaceCompositionModel_H
39#define InterfaceCompositionModel_H
41#include "interfaceCompositionModel.H"
48using namespace multiphaseInter;
53template <
class ThermoType>
class pureMixture;
54template <
class ThermoType>
class multiComponentMixture;
60template<
class Thermo,
class OtherThermo>
82 template<
class ThermoType>
86 const word& speciesName,
91 template<
class ThermoType>
95 const word& speciesName,
100 template<
class ThermoType>
103 const word& speciesName,
108 template<
class ThermoType>
111 const word& speciesName,
116 template<
class ThermoType>
124 template<
class ThermoType>
145 const word& speciesName,
152 const word& speciesName,
159 const word& speciesName
165 const word& speciesName
171 const word& speciesName,
184#define makeInterfaceDispSpecieMixtureType(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
186 typedef Thermo<Comp, SpecieMixture<Mix<Phys>>> \
187 Type##Thermo##Comp##Mix##Phys; \
189 typedef OtherThermo<OtherComp, OtherMix<OtherPhys>> \
190 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
192 addInterfaceCompositionToRunTimeSelectionTable \
195 Type##Thermo##Comp##Mix##Phys, \
196 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
201#define makeInterfaceContSpecieMixtureType(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
203 typedef Thermo<Comp, Mix<Phys>> \
204 Type##Thermo##Comp##Mix##Phys; \
206 typedef OtherThermo<OtherComp, SpecieMixture<OtherMix<OtherPhys>>> \
207 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
209 addInterfaceCompositionToRunTimeSelectionTable \
212 Type##Thermo##Comp##Mix##Phys, \
213 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
218#define makeInterfacePureType(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
220 typedef Thermo<Comp, Mix<Phys>> \
221 Type##Thermo##Comp##Mix##Phys; \
223 typedef OtherThermo<OtherComp, OtherMix<OtherPhys>> \
224 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
226 addInterfaceCompositionToRunTimeSelectionTable \
229 Type##Thermo##Comp##Mix##Phys, \
230 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
235#define makeSpecieInterfaceSpecieMixtures(Type, Thermo, Comp, Mix, Phys, OtherThermo, OtherComp, OtherMix, OtherPhys)\
237 typedef Thermo<Comp, SpecieMixture<Mix<Phys>>> \
238 Type##Thermo##Comp##Mix##Phys; \
240 typedef OtherThermo<OtherComp, SpecieMixture<OtherMix<OtherPhys>>> \
241 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys; \
243 addInterfaceCompositionToRunTimeSelectionTable \
246 Type##Thermo##Comp##Mix##Phys, \
247 Type##Other##OtherThermo##OtherComp##OtherMix##OtherPhys \
252#define addInterfaceCompositionToRunTimeSelectionTable(Type, Thermo, OtherThermo)\
254 typedef Type<Thermo, OtherThermo> \
255 Type##Thermo##OtherThermo; \
257 defineTemplateTypeNameAndDebugWithName \
259 Type##Thermo##OtherThermo, \
261 word(Type##Thermo##OtherThermo::typeName_()) + "<" \
262 + word(Thermo::typeName) + "," \
263 + word(OtherThermo::typeName) + ">" \
268 addToRunTimeSelectionTable \
270 interfaceCompositionModel, \
271 Type##Thermo##OtherThermo, \
278# include "InterfaceCompositionModel.C"
Base class for interface composition models, templated on the two thermodynamic models either side of...
virtual tmp< volScalarField > Dto(const word &speciesName) const
Specie mass diffusivity for specie in a multicomponent.
const Thermo & fromThermo_
Thermo (from)
tmp< volScalarField > MwMixture(const pureMixture< ThermoType > &thermo) const
Return moleculas weight of the mixture for pureMixture [Kg/mol].
virtual tmp< volScalarField > dY(const word &speciesName, const volScalarField &Tf) const
Mass fraction difference between the interface and the field.
tmp< volScalarField > getSpecieMassFraction(const word &speciesName, const pureMixture< ThermoType > &thermo) const
Return mass fraction for a pureMixture equal to one.
tmp< volScalarField > getSpecieMassFraction(const word &speciesName, const multiComponentMixture< ThermoType > &thermo) const
Return mass fraction for speciesName.
virtual tmp< volScalarField > Dfrom(const word &speciesName) const
Specie mass diffusivity for pure mixture.
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.
tmp< volScalarField > MwMixture(const multiComponentMixture< ThermoType > &) const
Return moleculas weight of the mixture for multiComponentMixture.
const OtherThermo & toThermo_
Other Thermo (to)
virtual tmp< volScalarField > Yf(const word &speciesName, const volScalarField &Tf) const
Reference mass fraction for species based models.
const pureMixture< ThermoType >::thermoType & getLocalThermo(const word &speciesName, const pureMixture< ThermoType > &globalThermo) const
Get a reference to the local thermo for a pure mixture.
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.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
const vector L(dict.get< vector >("L"))