From 1911dba4d55c050e03d9dff1220d07aa79939e19 Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin Date: Tue, 2 Mar 2021 10:08:37 +0000 Subject: [PATCH] DOC: lagrangian: review heat transfer models --- .../HeatTransferModel/HeatTransferModel.C | 10 +- .../HeatTransferModel/HeatTransferModel.H | 90 +++++++++++++++-- .../NoHeatTransfer/NoHeatTransfer.C | 35 +------ .../NoHeatTransfer/NoHeatTransfer.H | 54 +++++++++-- .../RanzMarshall/RanzMarshall.C | 8 +- .../RanzMarshall/RanzMarshall.H | 97 ++++++++++++++++++- 6 files changed, 226 insertions(+), 68 deletions(-) diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C index 4d7d74323a..2b6ed58ba0 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -46,7 +47,7 @@ Foam::HeatTransferModel::HeatTransferModel ) : CloudSubModelBase(owner, dict, typeName, type), - BirdCorrection_(this->coeffDict().lookup("BirdCorrection")) + BirdCorrection_(this->coeffDict().template get("BirdCorrection")) {} @@ -61,13 +62,6 @@ Foam::HeatTransferModel::HeatTransferModel {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::HeatTransferModel::~HeatTransferModel() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H index b9eb0ee48d..99576d207a 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -31,7 +31,77 @@ Group grpLagrangianIntermediateHeatTransferSubModels Description - Templated heat transfer model class + Templated class to calculate the fluid-particle heat transfer + coefficients based on a specified Nusselt-number model. + + \f[ + h = \frac{\mathrm{Nu} \, \kappa}{d_p} + \f] + where + + \vartable + h | Convective heat transfer coefficient of the flow + \mathrm{Nu} | Nusselt number + \kappa | Thermal conductivity of carrier in the film + d_p | Particle diameter + \endvartable + + Optionally, Bird-Stewart-Lightfoot correction can be applied + to correct the heat transfer coefficient for evaporation: + + \f[ + h_{corr} = h \, \frac{\beta}{ \exp(\beta) + 1 } + \f] + with + + \f[ + \beta = \frac{N \, C_p \, W}{h} + \f] + where + + \vartable + \beta | Correction factor + N | Molar flux + C_p | Specific heat capacity + W | Molecular weight + \endvartable + + Reference: + \verbatim + Bird, R. B., Stewart, W. E., & Lightfoot, E. N. (1960). + Transport phenomena. + John Wiley & Sons., New York. + DOI:10.1002/aic.690070245 + \endverbatim + +Usage + Minimal example by using \c constant/\: + \verbatim + subModels + { + heatTransferModel ; + + Coeffs + { + BirdCorrection true; + } + } + \endverbatim + + where the entries mean: + \table + Property | Description | Type | Reqd | Deflt + heatTransferModel | Type name: \ | word | yes | - + \Coeffs | Model properties | dict | cndtnl | - + BirdCorrection | Flag to apply Bird-Stewart-Lightfoot's correction to the heat transfer coefficient | bool | cndtnl | - + \endtable + + Options for the \c \ entry: + \verbatim + RanzMarshall | Ranz-Marshall correlation for Nusselt number + none | No active model + \endverbatim SourceFiles HeatTransferModel.C @@ -63,7 +133,7 @@ class HeatTransferModel { // Private Data - //- Apply Bird's correction to the htc + //- Flag to apply Bird-Stewart-Lightfoot's correction to the htc const Switch BirdCorrection_; @@ -86,6 +156,12 @@ public: ); + // Generated Methods + + //- No copy assignment + void operator=(const HeatTransferModel&) = delete; + + // Constructors //- Construct null from owner @@ -99,7 +175,7 @@ public: const word& type ); - //- Construct copy + //- Copy construct HeatTransferModel(const HeatTransferModel& htm); //- Construct and return a clone @@ -107,7 +183,7 @@ public: //- Destructor - virtual ~HeatTransferModel(); + virtual ~HeatTransferModel() = default; //- Selector @@ -121,7 +197,7 @@ public: // Member Functions //- The Bird HTC correction flag - bool BirdCorrection() const + bool BirdCorrection() const noexcept { return BirdCorrection_; } @@ -129,7 +205,7 @@ public: // Evaluation - //- Nusselt number + //- Return Nusselt number virtual scalar Nu ( const scalar Re, diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C index c1322b6380..7077771b2a 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -50,38 +51,4 @@ Foam::NoHeatTransfer::NoHeatTransfer {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::NoHeatTransfer::~NoHeatTransfer() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template -bool Foam::NoHeatTransfer::active() const -{ - return false; -} - - -template -Foam::scalar Foam::NoHeatTransfer::Nu -( - const scalar, - const scalar -) const -{ - return 0.0; -} - - -template -Foam::scalar Foam::NoHeatTransfer::Pr() const -{ - return 1.0; -} - - // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H index 34c2e9350e..efb8c85432 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +31,26 @@ Group grpLagrangianIntermediateHeatTransferSubModels Description - Dummy heat transfer model for 'none' + Nusselt-number model providing an interface to the + properties of \c HeatTransferModel without any active model. + +Usage + Minimal example by using \c constant/\: + \verbatim + subModels + { + heatTransferModel none; + } + \endverbatim + + where the entries mean: + \table + Property | Description | Type | Reqd | Deflt + heatTransferModel | Type name: none | word | yes | - + \endtable + +SourceFiles + NoHeatTransfer.C \*---------------------------------------------------------------------------*/ @@ -59,12 +79,18 @@ public: TypeName("none"); + // Generated Methods + + //- No copy assignment + void operator=(const NoHeatTransfer&) = delete; + + // Constructors //- Construct from dictionary NoHeatTransfer(const dictionary&, CloudType& owner); - //- Construct copy + //- Copy construct NoHeatTransfer(const NoHeatTransfer& im); //- Construct and return a clone @@ -78,19 +104,31 @@ public: //- Destructor - virtual ~NoHeatTransfer(); + virtual ~NoHeatTransfer() = default; // Member Functions //- Flag to indicate whether model activates heat transfer model - virtual bool active() const; + virtual bool active() const + { + return false; + } - //- Nusselt number - virtual scalar Nu(const scalar, const scalar) const; - //- Prandtl number - virtual scalar Pr() const; + // Evaluation + + //- Return Nusselt number + virtual scalar Nu(const scalar Re, const scalar Pr) const + { + return 0.0; + } + + //- Return Prandtl number + virtual scalar Pr() const + { + return 1.0; + } }; diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.C b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.C index 9a3015164b..adbff2fb76 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.C @@ -56,13 +56,6 @@ Foam::RanzMarshall::RanzMarshall(const RanzMarshall& htm) {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::RanzMarshall::~RanzMarshall() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -72,6 +65,7 @@ Foam::scalar Foam::RanzMarshall::Nu const scalar Pr ) const { + // (AOB:p. 18 below Eq. 42) return a_ + b_*pow(Re, m_)*pow(Pr, n_); } diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.H index 7cdaf14ca9..bd197cd3b3 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/RanzMarshall/RanzMarshall.H @@ -31,7 +31,90 @@ Group grpLagrangianIntermediateHeatTransferSubModels Description - The Ranz-Marshall correlation for heat transfer + Nusselt-number model using the empirical Ranz-Marshall correlation + to be used in modelling of the fluid-particle heat transfer coefficient: + + \f[ + \mathrm{Nu} = a + b \, \mathrm{Re}_p^{m} \, \mathrm{Pr}^{n} + \f] + with + + \f[ + \mathrm{Re}_p = + \frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c} + \f] + + \f[ + \mathrm{Pr} = \frac{ C_p \, \mu_c }{ \kappa_c } + \f] + where + + \vartable + \mathrm{Nu} | Nusselt number + \mathrm{Re}_p | Particle Reynolds number + \mathrm{Pr} | Prandtl number + d_p | Particle diameter + \rho_c | Density of carrier in the film surrounding particle + \mu_c | Dynamic viscosity of carrier in the film surrounding particle + \mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier + a | Correlation coefficient + b | Correlation coefficient + m | Correlation exponent of particle Reynolds number + n | Correlation exponent of Prandtl number + C_p | Specific heat capacity + \kappa_c | Thermal conductivity of carrier in the film + \endvartable + + Reference: + \verbatim + Standard model: + Ranz, W. E., & Marshall, W. R. (1952). + Evaporation from drops - part 1. + Chem. Eng. Prog, 48, 22, pp. 141-146. + + Ranz, W. E., & Marshall, W. R. (1952). + Evaporation from drops - part 2. + Chem. Eng. Prog, 48, 4, pp. 173-180. + + Expressions (tag:AOB), p. 18: + Amsden, A. A., O'Rourke, P. J., & Butler, T. D. (1989). + KIVA-II: A computer program for chemically + reactive flows with sprays (No. LA-11560-MS). + Los Alamos National Lab.(LANL), Los Alamos, NM (United States). + DOI:10.2172/6228444 + \endverbatim + +Usage + Minimal example by using \c constant/\: + \verbatim + subModels + { + // Mandatory entries + heatTransferModel RanzMarshall; + + // Optional entries + RanzMarshallCoeffs + { + a 2.0; + b 0.6; + m 0.5; + n 0.66666; + } + } + \endverbatim + + where the entries mean: + \table + Property | Description | Type | Reqd | Deflt + heatTransferModel | Type name: RanzMarshall | word | yes | - + a | Correlation coefficient | scalar | no | 2.0 + b | Correlation coefficient | scalar | no | 0.6 + m | Correlation exponent of particle Reynolds number | scalar | no | 0.5 + n | Correlation exponent of Prandtl number | scalar | no | 1.0/3.0 + \endtable + +SourceFiles + RanzMarshall.C \*---------------------------------------------------------------------------*/ @@ -75,12 +158,18 @@ public: TypeName("RanzMarshall"); + // Generated Methods + + //- No copy assignment + void operator=(const RanzMarshall&) = delete; + + // Constructors //- Construct from dictionary RanzMarshall(const dictionary& dict, CloudType& cloud); - //- Construct copy + //- Copy construct RanzMarshall(const RanzMarshall& im); //- Construct and return a clone @@ -94,14 +183,14 @@ public: //- Destructor - virtual ~RanzMarshall(); + virtual ~RanzMarshall() = default; // Member Functions // Evaluation - //- Nusselt number + //- Return Nusselt number virtual scalar Nu ( const scalar Re,