A thermal wall function for simulation of boiling wall. More...
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< fvPatchScalarField > | clone () const |
Construct and return a clone. More... | |
alphatWallBoilingWallFunctionFvPatchScalarField (const alphatWallBoilingWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &) | |
Construct as copy setting internal field reference. More... | |
virtual tmp< fvPatchScalarField > | clone (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 scalarField & | dmdt (const phasePairKey &) const |
Return the rate of phase-change for specific phase pair. More... | |
virtual const scalarField & | mDotL (const phasePairKey &) const |
Return the rate of phase-change for specific phase pair. More... | |
const scalarField & | dDeparture () const |
Return the departure diameter field. More... | |
const scalarField & | qq () const |
Return the quenching surface heat flux [W/m2]. More... | |
tmp< scalarField > | qe () const |
Return the evaporation surface heat flux [W/m2]. More... | |
const labelField & | regimeTypes () 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 scalarField & | dmdt () const |
Return the rate of phase-change. More... | |
virtual const scalarField & | dmdt (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< fvPatchScalarField > | clone () const |
Construct and return a clone. More... | |
alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField (const alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField &, const DimensionedField< scalar, volMesh > &) | |
Construct as copy setting internal field reference. More... | |
virtual tmp< fvPatchScalarField > | clone (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 scalarField & | dmdt () const |
Return the rate of phase-change. More... | |
virtual const scalarField & | mDotL () 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 scalarField & | dmdt (const phasePairKey &) const |
Return the rate of phase-change for specific phase pair. More... | |
virtual const scalarField & | mDotL (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< scalarField > | Psmooth (const scalarField &Prat) const |
'P' function More... | |
tmp< scalarField > | yPlusTherm (const scalarField &P, const scalarField &Prat) const |
Calculate y+ at the edge of the thermal laminar sublayer. More... | |
tmp< scalarField > | calcAlphat (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... | |
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.
<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.
enum phaseType |
Enumeration listing the possible operational modes.
Enumerator | |
---|---|
vaporPhase | |
liquidPhase |
Definition at line 447 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
alphatWallBoilingWallFunctionFvPatchScalarField | ( | const fvPatch & | p, |
const DimensionedField< scalar, volMesh > & | iF | ||
) |
Construct from patch and internal field.
Definition at line 68 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
References forAll, and DimensionedField< Type, GeoMesh >::mesh().
alphatWallBoilingWallFunctionFvPatchScalarField | ( | const fvPatch & | p, |
const DimensionedField< scalar, volMesh > & | iF, | ||
const dictionary & | dict | ||
) |
Construct from patch, internal field and dictionary.
Definition at line 108 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
References Foam::abort(), dict, alphatPhaseChangeWallFunctionFvPatchScalarField::dmdt_, Foam::FatalError, FatalErrorInFunction, filmDict, dictionary::findDict(), forAll, dictionary::found(), Foam::constant::mathematical::group, alphatWallBoilingWallFunctionFvPatchScalarField::liquidPhase, DimensionedField< Type, GeoMesh >::mesh(), Time::New(), Foam::nl, p, dictionary::readIfPresent(), UList< T >::size(), dictionary::subDict(), alphatWallBoilingWallFunctionFvPatchScalarField::vaporPhase, and Foam::Zero.
alphatWallBoilingWallFunctionFvPatchScalarField | ( | const alphatWallBoilingWallFunctionFvPatchScalarField & | psf, |
const fvPatch & | p, | ||
const DimensionedField< scalar, volMesh > & | iF, | ||
const fvPatchFieldMapper & | mapper | ||
) |
Construct by mapping given alphatWallBoilingWallFunctionFvPatchScalarField onto a new patch
Definition at line 286 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
alphatWallBoilingWallFunctionFvPatchScalarField | ( | const alphatWallBoilingWallFunctionFvPatchScalarField & | psf | ) |
Construct as copy.
Definition at line 326 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
alphatWallBoilingWallFunctionFvPatchScalarField | ( | const alphatWallBoilingWallFunctionFvPatchScalarField & | psf, |
const DimensionedField< scalar, volMesh > & | iF | ||
) |
Construct as copy setting internal field reference.
Definition at line 357 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
TypeName | ( | "compressible::alphatWallBoilingWallFunction" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.
Definition at line 593 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
|
inlinevirtual |
Construct and return a clone setting internal field reference.
Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.
Definition at line 609 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
|
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().
|
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.
|
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_.
|
inline |
Return the departure diameter field.
Definition at line 635 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
|
inline |
Return the quenching surface heat flux [W/m2].
Definition at line 641 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs().
|
inline |
Return the evaporation surface heat flux [W/m2].
Definition at line 647 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
References alphatPhaseChangeWallFunctionFvPatchScalarField::mDotL_.
Referenced by alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs().
|
inlinenoexcept |
Return const reference to the face regime.
Definition at line 653 of file alphatWallBoilingWallFunctionFvPatchScalarField.H.
|
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.
|
virtual |
Write.
Reimplemented from alphatPhaseChangeJayatillekeWallFunctionFvPatchScalarField.
Definition at line 1224 of file alphatWallBoilingWallFunctionFvPatchScalarField.C.
References Ostream::beginBlock(), alphatPhaseChangeWallFunctionFvPatchScalarField::dmdt_, Ostream::endBlock(), alphatWallBoilingWallFunctionFvPatchScalarField::liquidPhase, os(), alphatWallBoilingWallFunctionFvPatchScalarField::vaporPhase, ObukhovLength::write(), Ostream::writeEntry(), and Field< Type >::writeEntry().
|
inlinevirtual |
Return the rate of phase-change.
Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.
Definition at line 168 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.
|
inlinevirtual |
Return the rate of phase-change for specific phase pair.
Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.
Definition at line 186 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.
|
inlinevirtual |
Return the rate of phase-change for specific phase.
Reimplemented from alphatPhaseChangeWallFunctionFvPatchScalarField.
Definition at line 198 of file alphatPhaseChangeWallFunctionFvPatchScalarField.H.