From f72fcf68ba714aa34465ced89a7a7312be435bcf Mon Sep 17 00:00:00 2001 From: danielque Date: Mon, 20 Dec 2021 10:50:07 +0100 Subject: [PATCH] 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; --- .../heatTransferRanzMarshall.C | 18 ++++++++++++++---- .../heatTransferRanzMarshall.H | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.C b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.C index a5f8a344..e41aabc2 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.C +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.C @@ -54,6 +54,7 @@ heatTransferRanzMarshall::heatTransferRanzMarshall Tmax_(propsDict_.lookupOrDefault("Tmax",1e6)), totalHeatFlux_(0.0), NusseltScalingFactor_(1.0), + NusseltConstParameter_(propsDict_.lookupOrDefault("NusseltConstParameter",0.6)), QPartFluidName_(propsDict_.lookupOrDefault("QPartFluidName","QPartFluid")), QPartFluid_ ( IOobject @@ -168,6 +169,15 @@ heatTransferRanzMarshall::heatTransferRanzMarshall 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")) { maxSource_=readScalar(propsDict_.lookup ("maxSource")); @@ -267,7 +277,7 @@ void heatTransferRanzMarshall::calcEnergyContribution() #endif const volScalarField& CpField_ = CpField(); - const volScalarField& kf0Field_ = kf0Field(); + const volScalarField& kf0Field_ = kf0Field(); if (typeCG_.size()>1 || typeCG_[0] > 1) { @@ -341,8 +351,8 @@ void heatTransferRanzMarshall::calcEnergyContribution() ds = 2.*particleCloud_.radius(index); ds_scaled = ds/cg; - scalar kf0 = kf0Field_[cellI]; - scalar Cp = CpField_[cellI]; + scalar kf0 = kf0Field_[cellI]; + scalar Cp = CpField_[cellI]; if (expNusselt_) { @@ -491,7 +501,7 @@ void heatTransferRanzMarshall::addEnergyCoefficient(volScalarField& Qsource) con 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) diff --git a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.H b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.H index 8d9faa19..38f4adfd 100644 --- a/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.H +++ b/src/lagrangian/cfdemParticle/subModels/energyModel/heatTransferRanzMarshall/heatTransferRanzMarshall.H @@ -67,6 +67,8 @@ protected: scalar NusseltScalingFactor_; + const scalar NusseltConstParameter_; + const word QPartFluidName_; volScalarField QPartFluid_;