Public Types | Public Member Functions | List of all members
alphatWallBoilingWallFunctionFvPatchScalarField Class Reference

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

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

Public Types

enum  phaseType { vaporPhase, liquidPhase }
 

Public Member Functions

 TypeName ("compressible::alphatWallBoilingWallFunction")
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &)
 
virtual tmp< fvPatchScalarFieldclone () const
 
 alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 
virtual tmp< fvPatchScalarFieldclone (const DimensionedField< scalar, volMesh > &iF) const
 
virtual bool activePhasePair (const phasePairKey &) const
 
virtual const scalarFielddmdt (const phasePairKey &) const
 
virtual const scalarFieldmDotL (const phasePairKey &) const
 
const scalarFielddDeparture () const
 
const scalarFieldqq () const
 
tmp< scalarFieldqe () const
 
const labelFieldregimeTypes () const noexcept
 
virtual void updateCoeffs ()
 
virtual void write (Ostream &) const
 
virtual const scalarFielddmdt () const
 
virtual const scalarFielddmdt (const phasePairKey &) const
 
virtual scalarField dmdt (const word &) const
 
- Public Member Functions inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
 TypeName ("compressible::alphatPhaseChangeJayatillekeWallFunction")
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &)
 
 alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 
- Public Member Functions inherited from alphatPhaseChangeWallFunctionFvPatchScalarField
 TypeName ("compressible::alphatPhaseChangeWallFunction")
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &)
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const fvPatch &, const DimensionedField< scalar, volMesh > &, const dictionary &)
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &, const fvPatch &, const DimensionedField< scalar, volMesh > &, const fvPatchFieldMapper &)
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &)
 
 alphatPhaseChangeWallFunctionFvPatchScalarField (const alphatPhaseChangeWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &)
 
virtual const scalarFielddmdt () const
 
virtual const scalarFieldmDotL () const
 
virtual scalarField dmdt (const word &) const
 
virtual scalarField mDotL (const word &) const
 

Additional Inherited Members

- Protected Member Functions inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
void checkType ()
 
tmp< scalarFieldPsmooth (const scalarField &Prat) const
 
tmp< scalarFieldyPlusTherm (const scalarField &P, const scalarField &Prat) const
 
tmp< scalarFieldcalcAlphat (const scalarField &prevAlphat) const
 
- Protected Attributes inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
scalar Prt_
 
scalar Cmu_
 
scalar kappa_
 
scalar E_
 
- Protected Attributes inherited from alphatPhaseChangeWallFunctionFvPatchScalarField
scalarField dmdt_
 
scalarField mDotL_
 
- Static Protected Attributes inherited from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField
static scalar tolerance_ = 0.01
 
static label maxIters_ = 10
 

Detailed Description

A thermal wall function for simulation of boiling wall.

This alpha wall function can handle the following regimes:

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:

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:

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 434 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

Member Enumeration Documentation

◆ phaseType

enum phaseType
Enumerator
vaporPhase 
liquidPhase 

Definition at line 443 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.

Constructor & Destructor Documentation

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [1/5]

Definition at line 63 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References forAll, DimensionedField::mesh(), and Foam::foamVersion::patch.

Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::clone().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [2/5]

alphatWallBoilingWallFunctionFvPatchScalarField ( const fvPatch p,
const DimensionedField< scalar, volMesh > &  iF,
const dictionary dict 
)

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [3/5]

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [4/5]

◆ alphatWallBoilingWallFunctionFvPatchScalarField() [5/5]

Member Function Documentation

◆ TypeName()

TypeName ( "compressible::alphatWallBoilingWallFunction"  )

◆ clone() [1/2]

virtual tmp<fvPatchScalarField> clone ( ) const
inlinevirtual

◆ clone() [2/2]

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

◆ activePhasePair()

bool activePhasePair ( const phasePairKey phasePair) const
virtual

◆ dmdt() [1/4]

const scalarField & dmdt ( const phasePairKey phasePair) const
virtual

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 396 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ mDotL()

const scalarField & mDotL ( const phasePairKey phasePair) const
virtual

Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.

Definition at line 411 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ dDeparture()

const scalarField& dDeparture ( ) const
inline

◆ qq()

const scalarField& qq ( ) const
inline

◆ qe()

tmp<scalarField> qe ( ) const
inline

◆ regimeTypes()

const labelField& regimeTypes ( ) const
inlinenoexcept

◆ updateCoeffs()

void updateCoeffs ( )
virtual

◆ write()

void write ( Ostream os) const
virtual

Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.

Definition at line 1217 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.

References os(), and fvPatchField::write().

Here is the call graph for this function:

◆ dmdt() [2/4]

virtual const scalarField& dmdt
inline

◆ dmdt() [3/4]

virtual const scalarField& dmdt
inline

◆ dmdt() [4/4]

virtual scalarField dmdt
inline

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