interfaceOxideRate< Thermo, OtherThermo > Class Template Reference

The interfaceOxideRate is a simple model to calculate the formation rate of oxide inclusions (mDotOxide), which is a local function of the volume fraction of reducing agent (alpha), temperature (T) and oxide-inclusion density (chi). More...

Inheritance diagram for interfaceOxideRate< Thermo, OtherThermo >:
[legend]
Collaboration diagram for interfaceOxideRate< Thermo, OtherThermo >:
[legend]

Public Member Functions

 TypeName ("interfaceOxideRate")
 Runtime type information. More...
 
 interfaceOxideRate (const dictionary &dict, const phasePair &pair)
 Construct from components. More...
 
virtual ~interfaceOxideRate ()=default
 Destructor. More...
 
virtual tmp< volScalarFieldKexp (const volScalarField &field)
 Explicit total mass transfer coefficient. More...
 
virtual tmp< volScalarFieldKSp (label modelVariable, const volScalarField &field)
 Implicit mass transfer coefficient. More...
 
virtual tmp< volScalarFieldKSu (label modelVariable, const volScalarField &field)
 Explicit mass transfer coefficient. More...
 
virtual const dimensionedScalarTactivate () const noexcept
 Return solidus temperature of reducing agent. 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< volScalarFielddY (const word &speciesName, const volScalarField &Tf) const
 Mass fraction difference between the interface and the field. More...
 
virtual tmp< volScalarFieldYf (const word &speciesName, const volScalarField &Tf) const
 Reference mass fraction for species based models. More...
 
virtual tmp< volScalarFieldDfrom (const word &speciesName) const
 Specie mass diffusivity for pure mixture. More...
 
virtual tmp< volScalarFieldDto (const word &speciesName) const
 Specie mass diffusivity for specie in a multicomponent. More...
 
virtual tmp< volScalarFieldL (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< volScalarFielddY (const word &speciesName, const volScalarField &Tf) const
 Mass fraction difference between the interface and the field. More...
 
virtual tmp< volScalarFieldD (const word &speciesName) const
 Mass diffusivity. More...
 
virtual tmp< volScalarFieldL (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::volScalarFieldgetSpecieMassFraction (const word &speciesName, const multiComponentMixture< ThermoType > &mixture) const
 
template<class ThermoType >
Foam::tmp< Foam::volScalarFieldgetSpecieMassFraction (const word &speciesName, const pureMixture< ThermoType > &mixture) const
 
template<class ThermoType >
Foam::tmp< Foam::volScalarFieldMwMixture (const pureMixture< ThermoType > &mixture) const
 
template<class ThermoType >
Foam::tmp< Foam::volScalarFieldMwMixture (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 phasePairpair () const
 The phase pair. More...
 
const multiphaseInterSystemfluid () const
 Return the multiphaseInterSystem this interface belongs to. More...
 
virtual tmp< volScalarFieldYf (const word &speciesName, const volScalarField &Tf) const =0
 Interface mass fraction. More...
 
virtual tmp< volScalarFielddY (const word &speciesName, const volScalarField &Tf) const =0
 Mass fraction difference between the interface and the field. More...
 
virtual tmp< volScalarFieldDfrom (const word &speciesName) const =0
 Specie mass diffusivity for pure mixture. More...
 
virtual tmp< volScalarFieldDto (const word &speciesName) const =0
 Specie mass diffusivity for specie in a multicomponent. More...
 
virtual tmp< volScalarFieldL (const word &speciesName, const volScalarField &Tf) const =0
 Latent heat (delta Hc) More...
 
virtual tmp< volScalarFieldKexp (const volScalarField &field)=0
 Explicit full mass transfer. More...
 
virtual tmp< volScalarFieldKSp (label modelVariable, const volScalarField &field)=0
 Implicit mass transfer. More...
 
virtual tmp< volScalarFieldKSu (label modelVariable, const volScalarField &field)=0
 Explicit mass transfer. More...
 
virtual const dimensionedScalarTactivate () const noexcept=0
 Reference value. More...
 
virtual bool includeDivU () const noexcept
 
bool includeVolChange ()
 Add volume change in pEq. More...
 
const wordvariable () 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< interfaceCompositionModelNew (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< volScalarFieldgetSpecieMassFraction (const word &speciesName, const pureMixture< ThermoType > &thermo) const
 Return mass fraction for a pureMixture equal to one. More...
 
template<class ThermoType >
tmp< volScalarFieldgetSpecieMassFraction (const word &speciesName, const multiComponentMixture< ThermoType > &thermo) const
 Return mass fraction for speciesName. More...
 
template<class ThermoType >
tmp< volScalarFieldMwMixture (const pureMixture< ThermoType > &thermo) const
 Return moleculas weight of the mixture for pureMixture [Kg/mol]. More...
 
template<class ThermoType >
tmp< volScalarFieldMwMixture (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 phasePairpair_
 Phase pair. More...
 
word speciesName_
 Names of the transferring specie. More...
 
const fvMeshmesh_
 Reference to mesh. More...
 
- Static Protected Attributes inherited from interfaceCompositionModel
static const Enum< modelVariablemodelVariableNames_
 Selection names for the modelVariable. More...
 

Detailed Description

template<class Thermo, class OtherThermo>
class Foam::meltingEvaporationModels::interfaceOxideRate< Thermo, OtherThermo >

The interfaceOxideRate is a simple model to calculate the formation rate of oxide inclusions (mDotOxide), which is a local function of the volume fraction of reducing agent (alpha), temperature (T) and oxide-inclusion density (chi).

The oxide-inclusion formation rate is modelled as follows:

\[ S_\chi = C_\chi S_\alpha S_T S_\rho \]

with

\[ S_\alpha = \alpha (1 - \alpha) \]

\[ S_T = \exp{ 1 - \frac{1}{max(T - T_{solidus}/(T_liquidus - T_solidus), 1e-6)} } \]

\[ S_\rho = max \left(\frac{\chi_{crit} - \chi_{curr}}{\chi_{curr}}, 0\right) \]

where

\( S_\chi \) = Oxide-inclusion formation rate [kg/(m^3 s)]
\( C_\chi \) = Oxide-inclusion formation rate constant [kg/(m^3 s)]
\( S_\alpha \) = Formation factor due to volume fraction of reducing agent [-]
\( S_T \) = Formation factor due to temperature [-]
\( S_\rho \) = Formation factor due to oxide-inclusion density [-]
\( \alpha \) = Volume fraction of reducing agent [-]
\( T \) = Local temperature [K]
\( T_{solidus} \) = Solidus temperature of reducing agent [K]
\( T_{liquidus} \) = Liquidus temperature of reducing agent [K]
\( \chi_{crit} \) = Critical oxide-inclusion density [kg/m^3]
\( \chi_{curr} \) = Current oxide-inclusion density [kg/m^3]

References:

        Oxide-inclusion model (tag:CSC):
            Cao, L., Sun, F., Chen, T., Tang, Y., & Liao, D. (2018).
            Quantitative prediction of oxide inclusion defects inside
            the casting and on the walls during cast-filling processes.
            International Journal of Heat and Mass Transfer, 119, 614-623.
            DOI:10.1016/j.ijheatmasstransfer.2017.11.127
Usage
Minimal example by using constant/phaseProperties.massTransferModel:
massTransferModel
(
    (liquid to oxide)
    {
        type                interfaceOxideRate;
        C                   <scalar>;
        Tliquidus           <scalar>;
        Tsolidus            <scalar>;
        oxideCrit           <scalar>;
        isoAlpha            <scalar>;
    }
);

where the entries mean:

Property Description Type Reqd Deflt
type Type name: interfaceOxideRate word yes -
C Oxide-inclusion formation rate constant scalar yes -
Tliquidus Liquidus temperature of reducing agent scalar yes -
Tsolidus Solidus temperature of reducing agent scalar yes -
oxideCrit Critical oxide-inclusion density scalar yes -
isoAlpha Location of the source scalar no 0.5
Note
  • oxideCrit should be determined experimentally (CSC:p. 616).
  • C should be determined by practical production (CSC:p. 616).
Source files

Definition at line 227 of file interfaceOxideRate.H.

Constructor & Destructor Documentation

◆ interfaceOxideRate()

interfaceOxideRate ( const dictionary dict,
const phasePair pair 
)

Construct from components.

Definition at line 37 of file interfaceOxideRate.C.

References Foam::dimDensity, Foam::dimTemperature, and Foam::dimTime.

◆ ~interfaceOxideRate()

virtual ~interfaceOxideRate ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "interfaceOxideRate< Thermo, OtherThermo >"  )

Runtime type information.

◆ Kexp()

Foam::tmp< Foam::volScalarField > Kexp ( const volScalarField field)
virtual

Explicit total mass transfer coefficient.

Implements interfaceCompositionModel.

Definition at line 97 of file interfaceOxideRate.C.

References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), Foam::dimDensity, e, Foam::exp(), forAll, Foam::interpolate(), Foam::max(), mesh, Time::New(), tmp< T >::ref(), GeometricField< Type, PatchField, GeoMesh >::ref(), T, and Foam::Zero.

Here is the call graph for this function:

◆ KSp()

Foam::tmp< Foam::volScalarField > KSp ( label  modelVariable,
const volScalarField field 
)
virtual

Implicit mass transfer coefficient.

Implements interfaceCompositionModel.

Definition at line 185 of file interfaceOxideRate.C.

◆ KSu()

Foam::tmp< Foam::volScalarField > KSu ( label  modelVariable,
const volScalarField field 
)
virtual

Explicit mass transfer coefficient.

Implements interfaceCompositionModel.

Definition at line 197 of file interfaceOxideRate.C.

◆ Tactivate()

virtual const dimensionedScalar & Tactivate ( ) const
inlinevirtualnoexcept

Return solidus temperature of reducing agent.

Implements interfaceCompositionModel.

Definition at line 295 of file interfaceOxideRate.H.

◆ includeDivU()

virtual bool includeDivU ( ) const
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 302 of file interfaceOxideRate.H.


The documentation for this class was generated from the following files: