alphatWallBoilingWallFunction: Usability improvements

Bubble waiting time ratio has been made a user adjustable parameter, and
the names of the fields reported by the wallBoilingProperties function
have been rationalised.
This commit is contained in:
Will Bainbridge
2022-11-08 10:18:05 +00:00
parent 9a4bcbf7f4
commit aa21d36278
7 changed files with 44 additions and 36 deletions

View File

@ -92,7 +92,7 @@ bool Foam::functionObjects::wallBoilingProperties::execute()
bool Foam::functionObjects::wallBoilingProperties::write()
{
volScalarField dDepartureField
volScalarField dDeparture
(
volScalarField::New
(
@ -101,7 +101,7 @@ bool Foam::functionObjects::wallBoilingProperties::write()
dimensionedScalar(dimLength, 0)
)
);
volScalarField fDepartureField
volScalarField fDeparture
(
volScalarField::New
(
@ -110,7 +110,7 @@ bool Foam::functionObjects::wallBoilingProperties::write()
dimensionedScalar(inv(dimTime), 0)
)
);
volScalarField nucSiteDensityField
volScalarField nucleationSiteDensity
(
volScalarField::New
(
@ -119,29 +119,29 @@ bool Foam::functionObjects::wallBoilingProperties::write()
dimensionedScalar(inv(dimArea), 0)
)
);
volScalarField fLiquidField
volScalarField wetFraction
(
volScalarField::New
(
IOobject::groupName("fLiquid", phase_.name()),
IOobject::groupName("wetFraction", phase_.name()),
mesh_,
dimensionedScalar(dimless, 0)
)
);
volScalarField quenchingHeatFluxField
volScalarField qQuenching
(
volScalarField::New
(
IOobject::groupName("quenchingHeatFlux", phase_.name()),
IOobject::groupName("qQuenching", phase_.name()),
mesh_,
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
)
);
volScalarField evaporativeHeatFluxField
volScalarField qEvaporative
(
volScalarField::New
(
IOobject::groupName("evaporativeHeatFlux", phase_.name()),
IOobject::groupName("qEvaporative", phase_.name()),
mesh_,
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
)
@ -170,28 +170,28 @@ bool Foam::functionObjects::wallBoilingProperties::write()
const alphatWallBoilingWallFunction
>(alphatBf[patchi]);
dDepartureField.boundaryFieldRef()[patchi] =
dDeparture.boundaryFieldRef()[patchi] =
alphatw.dDeparture();
fDepartureField.boundaryFieldRef()[patchi] =
alphatw.depFrequency();
nucSiteDensityField.boundaryFieldRef()[patchi] =
alphatw.nucSiteDensity();
fLiquidField.boundaryFieldRef()[patchi] =
alphatw.wallLiquidFraction();
quenchingHeatFluxField.boundaryFieldRef()[patchi] =
alphatw.quenching();
evaporativeHeatFluxField.boundaryFieldRef()[patchi] =
alphatw.evaporative();
fDeparture.boundaryFieldRef()[patchi] =
alphatw.fDeparture();
nucleationSiteDensity.boundaryFieldRef()[patchi] =
alphatw.nucleationSiteDensity();
wetFraction.boundaryFieldRef()[patchi] =
alphatw.wetFraction();
qQuenching.boundaryFieldRef()[patchi] =
alphatw.qQuenching();
qEvaporative.boundaryFieldRef()[patchi] =
alphatw.qEvaporative();
}
}
}
dDepartureField.write();
fDepartureField.write();
nucSiteDensityField.write();
fLiquidField.write();
quenchingHeatFluxField.write();
evaporativeHeatFluxField.write();
dDeparture.write();
fDeparture.write();
nucleationSiteDensity.write();
wetFraction.write();
qQuenching.write();
qEvaporative.write();
return true;
}

View File

@ -84,6 +84,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
fLiquid_(p.size(), 0),
qq_(p.size(), 0),
qe_(p.size(), 0),
tau_(0.8),
partitioningModel_(nullptr),
nucleationSiteModel_(nullptr),
departureDiamModel_(nullptr),
@ -116,6 +117,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
fLiquid_(p.size(), 0),
qq_(p.size(), 0),
qe_(p.size(), 0),
tau_(dict.lookupOrDefault<scalar>("bubbleWaitingTimeRatio", 0.8)),
partitioningModel_(nullptr),
nucleationSiteModel_(nullptr),
departureDiamModel_(nullptr),
@ -245,6 +247,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
fLiquid_(mapper(psf.fLiquid_)),
qq_(mapper(psf.qq_)),
qe_(mapper(psf.qe_)),
tau_(psf.tau_),
partitioningModel_(psf.partitioningModel_, false),
nucleationSiteModel_(psf.nucleationSiteModel_, false),
departureDiamModel_(psf.departureDiamModel_, false),
@ -269,6 +272,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
fLiquid_(psf.fLiquid_),
qq_(psf.qq_),
qe_(psf.qe_),
tau_(psf.tau_),
partitioningModel_(psf.partitioningModel_, false),
nucleationSiteModel_(psf.nucleationSiteModel_, false),
departureDiamModel_(psf.departureDiamModel_, false),
@ -598,7 +602,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
2*(alphaw*Cpw)*fDep_
*sqrt
(
(0.8/max(fDep_, small))/(pi*alphaw/rhoLiquidw)
(tau_/max(fDep_, small))/(pi*alphaw/rhoLiquidw)
)
);
@ -719,6 +723,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::write(Ostream& os) const
alphatPhaseChangeWallFunctionFvPatchScalarField::write(os);
writeEntry(os, "phaseType", phaseTypeNames_[phaseType_]);
writeEntry(os, "bubbleWaitingTimeRatio", tau_);
writeEntry(os, "alphatConv", alphatConv_);
writeEntry(os, "dDeparture", dDep_);
writeEntry(os, "depFrequency", fDep_);

View File

@ -88,6 +88,7 @@ Usage
nucleationSiteModel| | yes |
departureDiamModel| | yes |
departureFreqModel| | yes |
bubbleWaitingTime| | no | yes
\endtable
NOTE: Runtime selectable submodels may require model specific entries
@ -202,6 +203,8 @@ private:
//- Evaporative surface heat flux
scalarField qe_;
//- Bubble waiting time ratio
scalar tau_;
//- Run-time selected heat flux partitioning model
autoPtr<wallBoilingModels::partitioningModel>
@ -289,31 +292,31 @@ public:
}
//- Return the departure frequency field [Hz]
const scalarField& depFrequency() const
const scalarField& fDeparture() const
{
return fDep_;
}
//- Return the nucleation site density field [1/m^2]
const scalarField& nucSiteDensity() const
const scalarField& nucleationSiteDensity() const
{
return N_;
}
//- Return the wall liquid fraction field [-]
const scalarField& wallLiquidFraction() const
const scalarField& wetFraction() const
{
return fLiquid_;
}
//- Return the quenching surface heat flux field [W/m^2]
const scalarField& quenching() const
const scalarField& qQuenching() const
{
return qq_;
}
//- Return the evaporative surface heat flux field [W/m^2]
const scalarField& evaporative() const
const scalarField& qEvaporative() const
{
return qe_;
}

View File

@ -38,7 +38,7 @@ runApplication -append foamPostProcess -latestTime -func "
patch=wall,
surfaceFormat=raw,
interpolate=false,
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid wetFraction.liquid qQuenching.liquid qEvaporative.liquid)
)"
./validation/createWallBoilingPropertiesGraphs

View File

@ -38,7 +38,7 @@ runApplication -append foamPostProcess -latestTime -func "
patch=wall,
surfaceFormat=raw,
interpolate=false,
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid wetFraction.liquid qQuenching.liquid qEvaporative.liquid)
)"
./validation/createWallBoilingPropertiesGraphs

View File

@ -39,7 +39,7 @@ runApplication -append foamPostProcess -latestTime -func "
patch=wall,
surfaceFormat=raw,
interpolate=false,
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid wetFraction.liquid qQuenching.liquid qEvaporative.liquid)
)"
./validation/createWallBoilingPropertiesGraphs

View File

@ -39,7 +39,7 @@ runApplication -append foamPostProcess -latestTime -func "
patch=wall,
surfaceFormat=raw,
interpolate=false,
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid fLiquid.liquid quenchingHeatFlux.liquid evaporativeHeatFlux.liquid)
fields=(dDeparture.liquid fDeparture.liquid nucleationSiteDensity.liquid wetFraction.liquid qQuenching.liquid qEvaporative.liquid)
)"
./validation/createWallBoilingPropertiesGraphs