alphatWallBoilingWallFunctionFvPatchScalarField Class Reference

A thermal wall function for simulation of boiling wall. More...

Inheritance diagram for alphatWallBoilingWallFunctionFvPatchScalarField:
[legend]
Collaboration diagram for alphatWallBoilingWallFunctionFvPatchScalarField:
[legend]

Public Types

enum  phaseType { vaporPhase , liquidPhase }
 Enumeration listing the possible operational modes. More...
 

Public Member Functions

 TypeName ("compressible::alphatWallBoilingWallFunction")
 Runtime type information. More...
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &)
 Construct as copy. More...
 
virtual tmp< fvPatchScalarFieldclone () const
 Construct and return a clone. More...
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< fvPatchScalarFieldclone (const DimensionedField< scalar, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
virtual bool activePhasePair (const phasePairKey &) const
 Is there phase change mass transfer for this phasePair. More...
 
virtual const scalarFielddmdt (const phasePairKey &) const
 Return the rate of phase-change for specific phase pair. More...
 
virtual const scalarFieldmDotL (const phasePairKey &) const
 Return the rate of phase-change for specific phase pair. More...
 
const scalarFielddDeparture () const
 Return the departure diameter field. More...
 
const scalarFieldqq () const
 Return the quenching surface heat flux [W/m2]. More...
 
tmp< scalarFieldqe () const
 Return the evaporation surface heat flux [W/m2]. More...
 
const labelFieldregimeTypes () const noexcept
 Return const reference to the face regime. More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 
virtual const scalarFielddmdt () const
 Return the rate of phase-change. More...
 
virtual const scalarFielddmdt (const phasePairKey &) const
 Return the rate of phase-change for specific phase pair. More...
 
virtual scalarField dmdt (const word &) const
 Return the rate of phase-change for specific phase. More...
 
- Public Member Functions inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
 TypeName ("compressible::alphatPhaseChangeJayatillekeWallFunction")
 Runtime type information. More...
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &)
 Construct as copy. More...
 
virtual tmp< fvPatchScalarFieldclone () const
 Construct and return a clone. More...
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< fvPatchScalarFieldclone (const DimensionedField< scalar, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 
- Public Member Functions inherited from alphatPhaseChangeWallFunctionFvPatchScalarField
 TypeName ("compressible::alphatPhaseChangeWallFunction")
 Runtime type information. More...
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 Construct from patch and internal field. More...
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &)
 Construct as copy. More...
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual const scalarFielddmdt () const
 Return the rate of phase-change. More...
 
virtual const scalarFieldmDotL () const
 Return the enthalpy source due to phase-change. More...
 
virtual bool activePhasePair (const phasePairKey &) const
 Is there phase change mass transfer for this phasePair. More...
 
virtual const scalarFielddmdt (const phasePairKey &) const
 Return the rate of phase-change for specific phase pair. More...
 
virtual const scalarFieldmDotL (const phasePairKey &) const
 Return the rate of phase-change for specific phase pair. More...
 
virtual scalarField dmdt (const word &) const
 Return the rate of phase-change for specific phase. More...
 
virtual scalarField mDotL (const word &) const
 Return the enthalpy source due to phase-change for specific phase. More...
 
virtual void updateCoeffs ()=0
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 

Additional Inherited Members

- Protected Member Functions inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
void checkType ()
 Check the type of the patch. More...
 
tmp< scalarFieldPsmooth (const scalarField &Prat) const
 'P' function More...
 
tmp< scalarFieldyPlusTherm (const scalarField &P, const scalarField &Prat) const
 Calculate y+ at the edge of the thermal laminar sublayer. More...
 
tmp< scalarFieldcalcAlphat (const scalarField &prevAlphat) const
 Update turbulent thermal diffusivity. More...
 
- Protected Attributes inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
scalar Prt_
 Turbulent Prandtl number. More...
 
scalar Cmu_
 Empirical model coefficient. More...
 
scalar kappa_
 Von Karman constant. More...
 
scalar E_
 Wall roughness parameter. More...
 
- Protected Attributes inherited from alphatPhaseChangeWallFunctionFvPatchScalarField
scalarField dmdt_
 Rate of phase-change. More...
 
scalarField mDotL_
 Latent heat of the phase-change. More...
 
- Static Protected Attributes inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
static scalar tolerance_ = 0.01
 Absolute tolerance. More...
 
static label maxIters_ = 10
 Maximum number of iterations. More...
 

Detailed Description

A thermal wall function for simulation of boiling wall.

This alpha wall function can handle the following regimes:

  • single phase
  • subcooled nucleate wall boiling
  • transitional boiling
  • film boiling

The wall function uses a partition method to transfer heat either to the liquid or vapor phase. At the moment, this function works in a wall temperature fixed mode, i.e. there is no consideration for the sudden change of heat transfer coefficient (htc) after reaching TDBN (deviation from nucleate boiling temperature).

References:

    Srinivasan, V., Moon, K. M., Greif, D.,
    Wang, D. M., & Kim, M. H. (2010).
    Numerical simulation of immersion quenching
    process of an engine cylinder head.
    Applied Mathematical Modelling, 34(8), 2111-2128.
    DOI:10.1016/j.apm.2009.10.023

For the single phase non-boiling regime the standard JayatillekeWallFunction is used.

For the sub-cool nucleate boiling regime the following runtime selectable submodels are used:

  • nucleation site density
  • bubble departure frequency
  • bubble departure diameter

Implements a version of the well-known RPI wall boiling model (Kurul & Podowski, 1991). The model implementation is similar to the model described by Peltola & Pättikangas (2012) but has been extended with the wall heat flux partitioning models.

References:

    Kurul, N., & Podowski, M. Z. (1991).
    On the modeling of multidimensional effects in boiling channels.
    Proceedings of the 27th National Heat Transfer Conference.
    Minneapolis, Minn, USA, July 28-31, 1991.
    ISBN: 0-89448-162-1, pp. 30-40

    Peltola, J., & Pättikangas, T. (2012).
    Development and validation of a boiling model
    for OpenFOAM multiphase solver.
    Proceedings of the CFD4NRS-4. p. 59.
    Daejeon, Democratic People's Republic of Korea, September 10-12, 2012.

Alternatively a correlation can be used instead of the RPI wall boiling model. If the keyword nucleatingModel a model is provided the BC uses it instead of the RPI model.

The transition boiling regime flux (TBF) is modelled following a temperature based linear interpolation between the critical heat flux (CHF) and the minimum heat flux (MHF) in such a way that when the wall temperature is between the range of TDBN and the Leidenfrost temperature (TLeiden) a linear interpolation is used between CHF and MHF.

Thus, the following models are required:

  • LeidenfrostModel
  • CHFModel
  • CHFSubCoolModel
  • MHFModel
  • TDNBModel
  • filmBoilingModel

The linear interpolation is as follows:

\[ TBF = CHF*\phi + (1 - \phi)*MHF \]

with

\[ \phi = w_p*(T_w - T_{DNB})/(T_{Leiden} - T_{DNB}) \]

where:

\( w_p \) = Model constant
\( T_w \) = Wall temperature [K]

The film boiling regime is applied when \(T_w\) is larger than \(T_{Leiden}\). In this regime the correlation from the filmBoilingModel is used for calculating the cht from the wall.

The filmBoilingModel is needed in the vapor field in order to calculate the heat transfer to the vapor phase in film boiling regime.

Usage
Example of the boundary condition specification:
<patchName>
{
    // Mandatory entries
    type            compressible::alphatWallBoilingWallFunction;
    phaseType       <word>;
    otherPhase      <word>;
    relax           <Function1<scalar>>;

    partitioningModel
    {
        type        Lavieville;
        alphaCrit   0.2;
    }

    // Conditional entries

        // Option-1: phaseType=vapor

            // Optional entries
            LeidenfrostModel
            {
                type        Spiegler;
                Tcrit       647;
            }

            filmBoilingModel
            {
                type        Bromley;
            }


        // Option-2: phaseType=liquid
        nucleationSiteModel
        {
            type        LemmertChawla;
        }

        departureDiamModel
        {
            type        TolubinskiKostanchuk;
        }

        departureFreqModel
        {
            type        Cole;
        }

            // Optional entries
            LeidenfrostModel
            {
                type        Spiegler;
                Tcrit       647;
            }

            CHFModel
            {
                type        Zuber;
            }

            CHFSubCoolModel
            {
                type        HuaXu;
                Kburn       0.5;
            }

            MHFModel
            {
                type        Jeschar;
                Kmhf        1;
            }

            TDNBModel
            {
                type        Schroeder;
            }

            filmBoilingModel
            {
                type        Bromley;
            }

            dDep    <scalarField>;
            K       <scalar>;
            wp      <scalar>;
            qQuenching <scalarField>;


    // Optional entries
    alphatConv      <scalarField>;

    //Inherited entries
    ...

where the entries mean:

Property Description Type Reqd Deflt
type compressible::alphatWallBoilingWallFunction word yes -
phaseType Name of phase type word yes -
otherPhase Name of other phase word yes -
relax Relaxation factor for dmdt

Function1<scalar>

yes -
alphatConv

Convective turbulent thermal diffusivity

scalarField no 0
partitioningModel

Run-time selected heat flux partitioning model

dict yes -

Options for the phaseType and otherPhase entries:

      vapor       | Vapor phase
      liquid      | Liquid phase

when phaseType=liquid:

Property Description Type Reqd Deflt
nucleationSiteModel Nucleation site density model dict yes -
departureDiamModel

Bubble departure diameter model

dict yes -
departureFreqModel Bubble departure frequency model dict yes -
LeidenfrostModel Leidenfrost temperature model dict no -
CHFModel Critical heat flux model dict no -
CHFSubCoolModel CHF sub-cool model dict no -
MHFModel Minium heat flux model dict no -
TDNBModel Departure from nulceate boiling model dict no -
filmBoilingModel Film boiling model dict no -
K Model constant for area of bubbles scalar no 4.0
wp Wetting parameter for transient boiling scalar no 1.0

The inherited entries are elaborated in: -NotesRuntime selectabale submodels may require model specific entriesphaseType and otherPhase entries should be the opposite of each other. Foam::alphatPhaseChangeJayatillekeWallFunctionFvPatchField Source files alphatWallBoilingWallFunctionFvPatchScalarField.H alphatWallBoilingWallFunctionFvPatchScalarField.C

Definition at line 438 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

Member Enumeration Documentation

◆ phaseType

enum phaseType

Enumeration listing the possible operational modes.

Enumerator
vaporPhase 
liquidPhase 

Definition at line 447 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [1/5]

Construct from patch and internal field.

Definition at line 68 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References forAll, and DimensionedField< Type, GeoMesh >::mesh().

Here is the call graph for this function:

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [2/5]

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [3/5]

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [4/5]

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [5/5]

Construct as copy setting internal field reference.

Definition at line 357 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "compressible::alphatWallBoilingWallFunction"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp< fvPatchScalarField > clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.

Definition at line 593 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

◆ clone() [2/2]

virtual tmp< fvPatchScalarField > clone ( const DimensionedField< scalar, volMesh > &  iF) const
inlinevirtual

Construct and return a clone setting internal field reference.

Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.

Definition at line 609 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

◆ activePhasePair()

bool activePhasePair ( const phasePairKey phasePair) const
virtual

Is there phase change mass transfer for this phasePair.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 391 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::constant::mathematical::group.

Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::dmdt(), and alphatWallBoilingWallFunctionFvPatchScalarField::mDotL().

Here is the caller graph for this function:

◆ dmdt() [1/4]

const scalarField & dmdt ( const phasePairKey phasePair) const
virtual

Return the rate of phase-change for specific phase pair.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 402 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::abort(), alphatWallBoilingWallFunctionFvPatchScalarField::activePhasePair(), alphatPhaseChangeWallFunctionFvPatchScalarField::dmdt_, Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ mDotL()

const scalarField & mDotL ( const phasePairKey phasePair) const
virtual

Return the rate of phase-change for specific phase pair.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 417 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::abort(), alphatWallBoilingWallFunctionFvPatchScalarField::activePhasePair(), Foam::FatalError, FatalErrorInFunction, and alphatPhaseChangeWallFunctionFvPatchScalarField::mDotL_.

Here is the call graph for this function:

◆ dDeparture()

const scalarField & dDeparture ( ) const
inline

Return the departure diameter field.

Definition at line 635 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

◆ qq()

const scalarField & qq ( ) const
inline

Return the quenching surface heat flux [W/m2].

Definition at line 641 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs().

Here is the caller graph for this function:

◆ qe()

tmp< scalarField > qe ( ) const
inline

Return the evaporation surface heat flux [W/m2].

Definition at line 647 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

References alphatPhaseChangeWallFunctionFvPatchScalarField::mDotL_.

Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs().

Here is the caller graph for this function:

◆ regimeTypes()

const labelField & regimeTypes ( ) const
inlinenoexcept

Return const reference to the face regime.

Definition at line 653 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.

Definition at line 433 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::abort(), basicThermo::alpha(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::calcAlphat(), alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::Cmu_, Cp, liquid::Cp(), alphatPhaseChangeWallFunctionFvPatchScalarField::dmdt_, e, alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::E_, Foam::endl(), Foam::exit(), Foam::exp(), Foam::FatalError, FatalErrorInFunction, fluid, forAll, Foam::gMax(), Foam::gMin(), Foam::constant::mathematical::group, IOobject::groupName(), Foam::gSum(), basicThermo::he(), Foam::Info, k, alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::kappa_, L, alphatWallBoilingWallFunctionFvPatchScalarField::liquidPhase, Foam::log(), Foam::mag(), magUp, Foam::max(), alphatPhaseChangeWallFunctionFvPatchScalarField::mDotL_, IOobject::member(), Foam::min(), N(), phaseModel::name(), Foam::nl, fvPatchField< Type >::patchInternalField(), phaseSystem::phases(), phi, Foam::constant::mathematical::pi(), Foam::pow025(), Pr(), phaseSystem::propertiesName, alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::Prt_, alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::Psmooth(), alphatWallBoilingWallFunctionFvPatchScalarField::qe(), alphatWallBoilingWallFunctionFvPatchScalarField::qq(), relax(), fvPatchField< Type >::snGrad(), Foam::sqr(), Foam::sqrt(), tCp, phaseModel::thermo(), uTau, alphatWallBoilingWallFunctionFvPatchScalarField::vaporPhase, y, yPlus, alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField::yPlusTherm(), and Foam::Zero.

Here is the call graph for this function:

◆ write()

◆ dmdt() [2/4]

virtual const scalarField & dmdt ( ) const
inlinevirtual

Return the rate of phase-change.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 168 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.

◆ dmdt() [3/4]

virtual const scalarField & dmdt ( const phasePairKey ) const
inlinevirtual

Return the rate of phase-change for specific phase pair.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 186 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.

◆ dmdt() [4/4]

virtual scalarField dmdt ( const word ) const
inlinevirtual

Return the rate of phase-change for specific phase.

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 198 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.


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