Considering the Hertz Knudsen formula, which gives the evaporation-condensation flux based on the kinetic theory for flat interface: More...
Public Member Functions | |
TypeName ("kineticGasEvaporation") | |
Runtime type information. More... | |
kineticGasEvaporation (const dictionary &dict, const phasePair &pair) | |
Construct from components. More... | |
virtual | ~kineticGasEvaporation ()=default |
Destructor. More... | |
virtual tmp< volScalarField > | Kexp (const volScalarField &field) |
Explicit total mass transfer coefficient. More... | |
virtual tmp< volScalarField > | KSp (label modelVariable, const volScalarField &field) |
Implicit mass transfer coefficient. More... | |
virtual tmp< volScalarField > | KSu (label modelVariable, const volScalarField &field) |
Explicit mass transfer coefficient. More... | |
virtual const dimensionedScalar & | Tactivate () const noexcept |
Return Tactivate. More... | |
virtual bool | includeDivU () const noexcept |
Public Member Functions inherited from InterfaceCompositionModel< Thermo, OtherThermo > | |
InterfaceCompositionModel (const dictionary &dict, const phasePair &pair) | |
Construct from components. More... | |
virtual | ~InterfaceCompositionModel ()=default |
Destructor. More... | |
virtual tmp< volScalarField > | dY (const word &speciesName, const volScalarField &Tf) const |
Mass fraction difference between the interface and the field. More... | |
virtual tmp< volScalarField > | Yf (const word &speciesName, const volScalarField &Tf) const |
Reference mass fraction for species based models. More... | |
virtual tmp< volScalarField > | Dfrom (const word &speciesName) const |
Specie mass diffusivity for pure mixture. More... | |
virtual tmp< volScalarField > | Dto (const word &speciesName) const |
Specie mass diffusivity for specie in a multicomponent. More... | |
virtual tmp< volScalarField > | L (const word &speciesName, const volScalarField &Tf) const |
Latent heat (to - from)(thermo - otherThermo) More... | |
InterfaceCompositionModel (const dictionary &dict, const phasePair &pair) | |
Construct from components. More... | |
~InterfaceCompositionModel ()=default | |
Destructor. More... | |
virtual tmp< volScalarField > | dY (const word &speciesName, const volScalarField &Tf) const |
Mass fraction difference between the interface and the field. More... | |
virtual tmp< volScalarField > | D (const word &speciesName) const |
Mass diffusivity. More... | |
virtual tmp< volScalarField > | L (const word &speciesName, const volScalarField &Tf) const |
Latent heat. More... | |
virtual void | addMDotL (const volScalarField &K, const volScalarField &Tf, volScalarField &mDotL, volScalarField &mDotLPrime) const |
Add latent heat flow rate to total. More... | |
template<class ThermoType > | |
const Foam::multiComponentMixture< ThermoType >::thermoType & | getLocalThermo (const word &speciesName, const multiComponentMixture< ThermoType > &globalThermo) const |
template<class ThermoType > | |
const Foam::pureMixture< ThermoType >::thermoType & | getLocalThermo (const word &speciesName, const pureMixture< ThermoType > &globalThermo) const |
template<class ThermoType > | |
Foam::tmp< Foam::volScalarField > | getSpecieMassFraction (const word &speciesName, const multiComponentMixture< ThermoType > &mixture) const |
template<class ThermoType > | |
Foam::tmp< Foam::volScalarField > | getSpecieMassFraction (const word &speciesName, const pureMixture< ThermoType > &mixture) const |
template<class ThermoType > | |
Foam::tmp< Foam::volScalarField > | MwMixture (const pureMixture< ThermoType > &mixture) const |
template<class ThermoType > | |
Foam::tmp< Foam::volScalarField > | MwMixture (const multiComponentMixture< ThermoType > &mixture) const |
Public Member Functions inherited from interfaceCompositionModel | |
TypeName ("interfaceCompositionModel") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, interfaceCompositionModel, dictionary,(const dictionary &dict, const phasePair &pair),(dict, pair)) | |
interfaceCompositionModel (const dictionary &dict, const phasePair &pair) | |
Construct from a dictionary and a phase pair. More... | |
virtual | ~interfaceCompositionModel ()=default |
Destructor. More... | |
const word | transferSpecie () const |
Return the transferring species name. More... | |
const phasePair & | pair () const |
The phase pair. More... | |
const multiphaseInterSystem & | fluid () const |
Return the multiphaseInterSystem this interface belongs to. More... | |
virtual tmp< volScalarField > | Yf (const word &speciesName, const volScalarField &Tf) const =0 |
Interface mass fraction. More... | |
virtual tmp< volScalarField > | dY (const word &speciesName, const volScalarField &Tf) const =0 |
Mass fraction difference between the interface and the field. More... | |
virtual tmp< volScalarField > | Dfrom (const word &speciesName) const =0 |
Specie mass diffusivity for pure mixture. More... | |
virtual tmp< volScalarField > | Dto (const word &speciesName) const =0 |
Specie mass diffusivity for specie in a multicomponent. More... | |
virtual tmp< volScalarField > | L (const word &speciesName, const volScalarField &Tf) const =0 |
Latent heat (delta Hc) More... | |
virtual tmp< volScalarField > | Kexp (const volScalarField &field)=0 |
Explicit full mass transfer. More... | |
virtual tmp< volScalarField > | KSp (label modelVariable, const volScalarField &field)=0 |
Implicit mass transfer. More... | |
virtual tmp< volScalarField > | KSu (label modelVariable, const volScalarField &field)=0 |
Explicit mass transfer. More... | |
virtual const dimensionedScalar & | Tactivate () const noexcept=0 |
Reference value. More... | |
virtual bool | includeDivU () const noexcept |
bool | includeVolChange () |
Add volume change in pEq. More... | |
const word & | variable () const |
Returns the variable on which the model is based. More... | |
Additional Inherited Members | |
Public Types inherited from interfaceCompositionModel | |
enum | modelVariable { T , P , Y , alpha } |
Enumeration for variable based mass transfer models. More... | |
Static Public Member Functions inherited from interfaceCompositionModel | |
static autoPtr< interfaceCompositionModel > | New (const dictionary &dict, const phasePair &pair) |
Protected Member Functions inherited from InterfaceCompositionModel< Thermo, OtherThermo > | |
template<class ThermoType > | |
const pureMixture< ThermoType >::thermoType & | getLocalThermo (const word &speciesName, const pureMixture< ThermoType > &globalThermo) const |
Get a reference to the local thermo for a pure mixture. More... | |
template<class ThermoType > | |
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. More... | |
template<class ThermoType > | |
tmp< volScalarField > | getSpecieMassFraction (const word &speciesName, const pureMixture< ThermoType > &thermo) const |
Return mass fraction for a pureMixture equal to one. More... | |
template<class ThermoType > | |
tmp< volScalarField > | getSpecieMassFraction (const word &speciesName, const multiComponentMixture< ThermoType > &thermo) const |
Return mass fraction for speciesName. More... | |
template<class ThermoType > | |
tmp< volScalarField > | MwMixture (const pureMixture< ThermoType > &thermo) const |
Return moleculas weight of the mixture for pureMixture [Kg/mol]. More... | |
template<class ThermoType > | |
tmp< volScalarField > | MwMixture (const multiComponentMixture< ThermoType > &) const |
Return moleculas weight of the mixture for multiComponentMixture. More... | |
template<class ThermoType > | |
const pureMixture< ThermoType >::thermoType & | getLocalThermo (const word &speciesName, const pureMixture< ThermoType > &globalThermo) const |
Get a reference to the local thermo for a pure mixture. More... | |
template<class ThermoType > | |
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. More... | |
Protected Attributes inherited from InterfaceCompositionModel< Thermo, OtherThermo > | |
const Thermo & | fromThermo_ |
Thermo (from) More... | |
const OtherThermo & | toThermo_ |
Other Thermo (to) More... | |
const dimensionedScalar | Le_ |
Lewis number. More... | |
const Thermo & | thermo_ |
Thermo. More... | |
const OtherThermo & | otherThermo_ |
Other Thermo. More... | |
Protected Attributes inherited from interfaceCompositionModel | |
modelVariable | modelVariable_ |
Enumeration for the model variable. More... | |
bool | includeVolChange_ |
Add volume change in pEq. More... | |
const phasePair & | pair_ |
Phase pair. More... | |
word | speciesName_ |
Names of the transferring specie. More... | |
const fvMesh & | mesh_ |
Reference to mesh. More... | |
Static Protected Attributes inherited from interfaceCompositionModel | |
static const Enum< modelVariable > | modelVariableNames_ |
Selection names for the modelVariable. More... | |
Considering the Hertz Knudsen formula, which gives the evaporation-condensation flux based on the kinetic theory for flat interface:
\[ Flux = C \sqrt{\frac{M}{2 \pi R T_{activate}}}(p - p_{sat}) \]
where:
\( Flux \) | = | mass flux rate [kg/s/m2] |
\( M \) | = | molecular weight |
\( T_{activate} \) | = | saturation temperature |
\( C \) | = | accommodation coefficient |
\( R \) | = | universal gas constant |
\( p_{sat} \) | = | saturation pressure |
\( p \) | = | vapor partial pressure |
The Clapeyron-Clausius equation relates the pressure to the temperature for the saturation condition:
\[ \frac{dp}{dT} = - \frac{L}{T (\nu_v - \nu_l)} \]
where:
\( L \) | = | latent heat |
\( \nu_v \) | = | inverse of the vapor density |
\( \nu_l \) | = | inverse of the liquid density |
Using the above relations:
\[ Flux = 2 \frac{C}{2 - C} \sqrt{\frac{M}{2 \pi R {T_activate}^3}} L (\rho_{v}) (T - T_{activate}) \]
This assumes liquid and vapour are in equilibrium, then the accommodation coefficient are equivalent for the interface. This relation is known as the Hertz-Knudsen-Schrage.
Based on the reference:
Example usage:
massTransferModel ( (liquid to gas) { type kineticGasEvaporation; species vapour.gas; C 0.1; isoAlpha 0.1; Tactivate 373; } );
where:
Property | Description | Required | Default value |
---|---|---|---|
C | Coefficient (C > 0 for evaporation, C < 0 for | ||
condensation ) | yes | ||
includeVolChange | Volumen change | no | yes |
isoAlpha | iso-alpha for interface | no | 0.5 |
Tactivate | Saturation temperature | yes | |
species | Specie name on the other phase | no | none |
Definition at line 205 of file kineticGasEvaporation.H.
kineticGasEvaporation | ( | const dictionary & | dict, |
const phasePair & | pair | ||
) |
Construct from components.
Definition at line 72 of file kineticGasEvaporation.C.
References Foam::abort(), Foam::dimArea, Foam::dimDensity, Foam::dimLength, Foam::dimless, Foam::dimMass, Foam::dimMoles, Foam::dimTemperature, Foam::dimTime, e, Foam::FatalError, FatalErrorInFunction, InterfaceCompositionModel< Thermo, OtherThermo >::getLocalThermo(), IOobject::member(), InterfaceCompositionModel< Thermo, OtherThermo >::toThermo_, interfaceCompositionModel::transferSpecie(), and dimensioned< Type >::value().
|
virtualdefault |
Destructor.
TypeName | ( | "kineticGasEvaporation< Thermo, OtherThermo >" | ) |
Runtime type information.
|
virtual |
Explicit total mass transfer coefficient.
Implements interfaceCompositionModel.
Definition at line 150 of file kineticGasEvaporation.C.
References Foam::dimDensity, Foam::dimTemperature, L, Foam::mag(), Foam::max(), IOobject::member(), mesh, Foam::constant::mathematical::pi(), Foam::pow3(), Foam::constant::physicoChemical::R, tmp< T >::ref(), Foam::sign(), Foam::sqrt(), T, T0, and Foam::Zero.
|
virtual |
Implicit mass transfer coefficient.
Implements interfaceCompositionModel.
Definition at line 225 of file kineticGasEvaporation.C.
References Foam::pos(), and Foam::sign().
|
virtual |
Explicit mass transfer coefficient.
Implements interfaceCompositionModel.
Definition at line 253 of file kineticGasEvaporation.C.
References Foam::pos(), and Foam::sign().
|
inlinevirtualnoexcept |
Return Tactivate.
Implements interfaceCompositionModel.
Definition at line 282 of file kineticGasEvaporation.H.
|
inlinevirtualnoexcept |
Add/subtract alpha*div(U) as a source term for alpha, substituting div(U) = mDot(1/rho1 - 1/rho2)
Reimplemented from interfaceCompositionModel.
Definition at line 289 of file kineticGasEvaporation.H.