make prefactor in Ranz-Marshall correlation customizable

For a single sphere the data of Ranz suggests
2 + 0.6 * Re^(1/2) * Pr^(1/3)
but for gas flow through a packed bed of particles this may change to
2 + 1.8 * Re^(1/2) * Pr^(1/3)
cf. Kunii and Levenspiel, Fluidization Engineering (1991)
Hence, this commit will make this prefactor configurable in the
couplingProperties dict; if it is not set, use a value of 0.6 to retain
previous behavior;
Also, use the specialized math functions for square root and cube root
instead of the pow function;
This commit is contained in:
danielque
2021-12-20 10:50:07 +01:00
parent ab3f69db66
commit f72fcf68ba
2 changed files with 16 additions and 4 deletions

View File

@ -54,6 +54,7 @@ heatTransferRanzMarshall::heatTransferRanzMarshall
Tmax_(propsDict_.lookupOrDefault<scalar>("Tmax",1e6)), Tmax_(propsDict_.lookupOrDefault<scalar>("Tmax",1e6)),
totalHeatFlux_(0.0), totalHeatFlux_(0.0),
NusseltScalingFactor_(1.0), NusseltScalingFactor_(1.0),
NusseltConstParameter_(propsDict_.lookupOrDefault<scalar>("NusseltConstParameter",0.6)),
QPartFluidName_(propsDict_.lookupOrDefault<word>("QPartFluidName","QPartFluid")), QPartFluidName_(propsDict_.lookupOrDefault<word>("QPartFluidName","QPartFluid")),
QPartFluid_ QPartFluid_
( IOobject ( IOobject
@ -168,6 +169,15 @@ heatTransferRanzMarshall::heatTransferRanzMarshall
Info << "NusseltScalingFactor set to: " << NusseltScalingFactor_ << endl; Info << "NusseltScalingFactor set to: " << NusseltScalingFactor_ << endl;
} }
if (NusseltConstParameter_ < 0.6 || NusseltConstParameter_ > 1.8)
{
Warning << "NusseltConstParameter set to: " << NusseltConstParameter_ << " outside the range [0.6,1.8]" << endl;
}
else
{
Info << "NusseltConstParameter set to: " << NusseltConstParameter_ << endl;
}
if (propsDict_.found("maxSource")) if (propsDict_.found("maxSource"))
{ {
maxSource_=readScalar(propsDict_.lookup ("maxSource")); maxSource_=readScalar(propsDict_.lookup ("maxSource"));
@ -267,7 +277,7 @@ void heatTransferRanzMarshall::calcEnergyContribution()
#endif #endif
const volScalarField& CpField_ = CpField(); const volScalarField& CpField_ = CpField();
const volScalarField& kf0Field_ = kf0Field(); const volScalarField& kf0Field_ = kf0Field();
if (typeCG_.size()>1 || typeCG_[0] > 1) if (typeCG_.size()>1 || typeCG_[0] > 1)
{ {
@ -341,8 +351,8 @@ void heatTransferRanzMarshall::calcEnergyContribution()
ds = 2.*particleCloud_.radius(index); ds = 2.*particleCloud_.radius(index);
ds_scaled = ds/cg; ds_scaled = ds/cg;
scalar kf0 = kf0Field_[cellI]; scalar kf0 = kf0Field_[cellI];
scalar Cp = CpField_[cellI]; scalar Cp = CpField_[cellI];
if (expNusselt_) if (expNusselt_)
{ {
@ -491,7 +501,7 @@ void heatTransferRanzMarshall::addEnergyCoefficient(volScalarField& Qsource) con
scalar heatTransferRanzMarshall::Nusselt(scalar voidfraction, scalar Rep, scalar Pr) const scalar heatTransferRanzMarshall::Nusselt(scalar voidfraction, scalar Rep, scalar Pr) const
{ {
return (2 + 0.6 * Foam::pow(Rep,0.5) * Foam::pow(Pr,0.33)); return (2.0 + NusseltConstParameter_ * Foam::sqrt(Rep) * Foam::cbrt(Pr));
} }
void heatTransferRanzMarshall::heatFlux(label index, scalar h, scalar As, scalar Tfluid, scalar cg3) void heatTransferRanzMarshall::heatFlux(label index, scalar h, scalar As, scalar Tfluid, scalar cg3)

View File

@ -67,6 +67,8 @@ protected:
scalar NusseltScalingFactor_; scalar NusseltScalingFactor_;
const scalar NusseltConstParameter_;
const word QPartFluidName_; const word QPartFluidName_;
volScalarField QPartFluid_; volScalarField QPartFluid_;