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:
@ -92,7 +92,7 @@ bool Foam::functionObjects::wallBoilingProperties::execute()
|
|||||||
|
|
||||||
bool Foam::functionObjects::wallBoilingProperties::write()
|
bool Foam::functionObjects::wallBoilingProperties::write()
|
||||||
{
|
{
|
||||||
volScalarField dDepartureField
|
volScalarField dDeparture
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
@ -101,7 +101,7 @@ bool Foam::functionObjects::wallBoilingProperties::write()
|
|||||||
dimensionedScalar(dimLength, 0)
|
dimensionedScalar(dimLength, 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField fDepartureField
|
volScalarField fDeparture
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
@ -110,7 +110,7 @@ bool Foam::functionObjects::wallBoilingProperties::write()
|
|||||||
dimensionedScalar(inv(dimTime), 0)
|
dimensionedScalar(inv(dimTime), 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField nucSiteDensityField
|
volScalarField nucleationSiteDensity
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
@ -119,29 +119,29 @@ bool Foam::functionObjects::wallBoilingProperties::write()
|
|||||||
dimensionedScalar(inv(dimArea), 0)
|
dimensionedScalar(inv(dimArea), 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField fLiquidField
|
volScalarField wetFraction
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
IOobject::groupName("fLiquid", phase_.name()),
|
IOobject::groupName("wetFraction", phase_.name()),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, 0)
|
dimensionedScalar(dimless, 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField quenchingHeatFluxField
|
volScalarField qQuenching
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
IOobject::groupName("quenchingHeatFlux", phase_.name()),
|
IOobject::groupName("qQuenching", phase_.name()),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volScalarField evaporativeHeatFluxField
|
volScalarField qEvaporative
|
||||||
(
|
(
|
||||||
volScalarField::New
|
volScalarField::New
|
||||||
(
|
(
|
||||||
IOobject::groupName("evaporativeHeatFlux", phase_.name()),
|
IOobject::groupName("qEvaporative", phase_.name()),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
dimensionedScalar(dimEnergy*inv(dimTime*dimArea), 0)
|
||||||
)
|
)
|
||||||
@ -170,28 +170,28 @@ bool Foam::functionObjects::wallBoilingProperties::write()
|
|||||||
const alphatWallBoilingWallFunction
|
const alphatWallBoilingWallFunction
|
||||||
>(alphatBf[patchi]);
|
>(alphatBf[patchi]);
|
||||||
|
|
||||||
dDepartureField.boundaryFieldRef()[patchi] =
|
dDeparture.boundaryFieldRef()[patchi] =
|
||||||
alphatw.dDeparture();
|
alphatw.dDeparture();
|
||||||
fDepartureField.boundaryFieldRef()[patchi] =
|
fDeparture.boundaryFieldRef()[patchi] =
|
||||||
alphatw.depFrequency();
|
alphatw.fDeparture();
|
||||||
nucSiteDensityField.boundaryFieldRef()[patchi] =
|
nucleationSiteDensity.boundaryFieldRef()[patchi] =
|
||||||
alphatw.nucSiteDensity();
|
alphatw.nucleationSiteDensity();
|
||||||
fLiquidField.boundaryFieldRef()[patchi] =
|
wetFraction.boundaryFieldRef()[patchi] =
|
||||||
alphatw.wallLiquidFraction();
|
alphatw.wetFraction();
|
||||||
quenchingHeatFluxField.boundaryFieldRef()[patchi] =
|
qQuenching.boundaryFieldRef()[patchi] =
|
||||||
alphatw.quenching();
|
alphatw.qQuenching();
|
||||||
evaporativeHeatFluxField.boundaryFieldRef()[patchi] =
|
qEvaporative.boundaryFieldRef()[patchi] =
|
||||||
alphatw.evaporative();
|
alphatw.qEvaporative();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dDepartureField.write();
|
dDeparture.write();
|
||||||
fDepartureField.write();
|
fDeparture.write();
|
||||||
nucSiteDensityField.write();
|
nucleationSiteDensity.write();
|
||||||
fLiquidField.write();
|
wetFraction.write();
|
||||||
quenchingHeatFluxField.write();
|
qQuenching.write();
|
||||||
evaporativeHeatFluxField.write();
|
qEvaporative.write();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,6 +84,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
fLiquid_(p.size(), 0),
|
fLiquid_(p.size(), 0),
|
||||||
qq_(p.size(), 0),
|
qq_(p.size(), 0),
|
||||||
qe_(p.size(), 0),
|
qe_(p.size(), 0),
|
||||||
|
tau_(0.8),
|
||||||
partitioningModel_(nullptr),
|
partitioningModel_(nullptr),
|
||||||
nucleationSiteModel_(nullptr),
|
nucleationSiteModel_(nullptr),
|
||||||
departureDiamModel_(nullptr),
|
departureDiamModel_(nullptr),
|
||||||
@ -116,6 +117,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
fLiquid_(p.size(), 0),
|
fLiquid_(p.size(), 0),
|
||||||
qq_(p.size(), 0),
|
qq_(p.size(), 0),
|
||||||
qe_(p.size(), 0),
|
qe_(p.size(), 0),
|
||||||
|
tau_(dict.lookupOrDefault<scalar>("bubbleWaitingTimeRatio", 0.8)),
|
||||||
partitioningModel_(nullptr),
|
partitioningModel_(nullptr),
|
||||||
nucleationSiteModel_(nullptr),
|
nucleationSiteModel_(nullptr),
|
||||||
departureDiamModel_(nullptr),
|
departureDiamModel_(nullptr),
|
||||||
@ -245,6 +247,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
fLiquid_(mapper(psf.fLiquid_)),
|
fLiquid_(mapper(psf.fLiquid_)),
|
||||||
qq_(mapper(psf.qq_)),
|
qq_(mapper(psf.qq_)),
|
||||||
qe_(mapper(psf.qe_)),
|
qe_(mapper(psf.qe_)),
|
||||||
|
tau_(psf.tau_),
|
||||||
partitioningModel_(psf.partitioningModel_, false),
|
partitioningModel_(psf.partitioningModel_, false),
|
||||||
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
||||||
departureDiamModel_(psf.departureDiamModel_, false),
|
departureDiamModel_(psf.departureDiamModel_, false),
|
||||||
@ -269,6 +272,7 @@ alphatWallBoilingWallFunctionFvPatchScalarField
|
|||||||
fLiquid_(psf.fLiquid_),
|
fLiquid_(psf.fLiquid_),
|
||||||
qq_(psf.qq_),
|
qq_(psf.qq_),
|
||||||
qe_(psf.qe_),
|
qe_(psf.qe_),
|
||||||
|
tau_(psf.tau_),
|
||||||
partitioningModel_(psf.partitioningModel_, false),
|
partitioningModel_(psf.partitioningModel_, false),
|
||||||
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
nucleationSiteModel_(psf.nucleationSiteModel_, false),
|
||||||
departureDiamModel_(psf.departureDiamModel_, false),
|
departureDiamModel_(psf.departureDiamModel_, false),
|
||||||
@ -598,7 +602,7 @@ void alphatWallBoilingWallFunctionFvPatchScalarField::updateCoeffs()
|
|||||||
2*(alphaw*Cpw)*fDep_
|
2*(alphaw*Cpw)*fDep_
|
||||||
*sqrt
|
*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);
|
alphatPhaseChangeWallFunctionFvPatchScalarField::write(os);
|
||||||
|
|
||||||
writeEntry(os, "phaseType", phaseTypeNames_[phaseType_]);
|
writeEntry(os, "phaseType", phaseTypeNames_[phaseType_]);
|
||||||
|
writeEntry(os, "bubbleWaitingTimeRatio", tau_);
|
||||||
writeEntry(os, "alphatConv", alphatConv_);
|
writeEntry(os, "alphatConv", alphatConv_);
|
||||||
writeEntry(os, "dDeparture", dDep_);
|
writeEntry(os, "dDeparture", dDep_);
|
||||||
writeEntry(os, "depFrequency", fDep_);
|
writeEntry(os, "depFrequency", fDep_);
|
||||||
|
|||||||
@ -88,6 +88,7 @@ Usage
|
|||||||
nucleationSiteModel| | yes |
|
nucleationSiteModel| | yes |
|
||||||
departureDiamModel| | yes |
|
departureDiamModel| | yes |
|
||||||
departureFreqModel| | yes |
|
departureFreqModel| | yes |
|
||||||
|
bubbleWaitingTime| | no | yes
|
||||||
\endtable
|
\endtable
|
||||||
|
|
||||||
NOTE: Runtime selectable submodels may require model specific entries
|
NOTE: Runtime selectable submodels may require model specific entries
|
||||||
@ -202,6 +203,8 @@ private:
|
|||||||
//- Evaporative surface heat flux
|
//- Evaporative surface heat flux
|
||||||
scalarField qe_;
|
scalarField qe_;
|
||||||
|
|
||||||
|
//- Bubble waiting time ratio
|
||||||
|
scalar tau_;
|
||||||
|
|
||||||
//- Run-time selected heat flux partitioning model
|
//- Run-time selected heat flux partitioning model
|
||||||
autoPtr<wallBoilingModels::partitioningModel>
|
autoPtr<wallBoilingModels::partitioningModel>
|
||||||
@ -289,31 +292,31 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- Return the departure frequency field [Hz]
|
//- Return the departure frequency field [Hz]
|
||||||
const scalarField& depFrequency() const
|
const scalarField& fDeparture() const
|
||||||
{
|
{
|
||||||
return fDep_;
|
return fDep_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the nucleation site density field [1/m^2]
|
//- Return the nucleation site density field [1/m^2]
|
||||||
const scalarField& nucSiteDensity() const
|
const scalarField& nucleationSiteDensity() const
|
||||||
{
|
{
|
||||||
return N_;
|
return N_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the wall liquid fraction field [-]
|
//- Return the wall liquid fraction field [-]
|
||||||
const scalarField& wallLiquidFraction() const
|
const scalarField& wetFraction() const
|
||||||
{
|
{
|
||||||
return fLiquid_;
|
return fLiquid_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the quenching surface heat flux field [W/m^2]
|
//- Return the quenching surface heat flux field [W/m^2]
|
||||||
const scalarField& quenching() const
|
const scalarField& qQuenching() const
|
||||||
{
|
{
|
||||||
return qq_;
|
return qq_;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return the evaporative surface heat flux field [W/m^2]
|
//- Return the evaporative surface heat flux field [W/m^2]
|
||||||
const scalarField& evaporative() const
|
const scalarField& qEvaporative() const
|
||||||
{
|
{
|
||||||
return qe_;
|
return qe_;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,7 +38,7 @@ runApplication -append foamPostProcess -latestTime -func "
|
|||||||
patch=wall,
|
patch=wall,
|
||||||
surfaceFormat=raw,
|
surfaceFormat=raw,
|
||||||
interpolate=false,
|
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
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|||||||
@ -38,7 +38,7 @@ runApplication -append foamPostProcess -latestTime -func "
|
|||||||
patch=wall,
|
patch=wall,
|
||||||
surfaceFormat=raw,
|
surfaceFormat=raw,
|
||||||
interpolate=false,
|
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
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|||||||
@ -39,7 +39,7 @@ runApplication -append foamPostProcess -latestTime -func "
|
|||||||
patch=wall,
|
patch=wall,
|
||||||
surfaceFormat=raw,
|
surfaceFormat=raw,
|
||||||
interpolate=false,
|
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
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|||||||
@ -39,7 +39,7 @@ runApplication -append foamPostProcess -latestTime -func "
|
|||||||
patch=wall,
|
patch=wall,
|
||||||
surfaceFormat=raw,
|
surfaceFormat=raw,
|
||||||
interpolate=false,
|
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
|
./validation/createWallBoilingPropertiesGraphs
|
||||||
|
|||||||
Reference in New Issue
Block a user