DOC: lagrangian: review heat transfer models

This commit is contained in:
Kutalmis Bercin
2021-03-02 10:08:37 +00:00
committed by Andrew Heather
parent 283c94fdd0
commit 1911dba4d5
6 changed files with 226 additions and 68 deletions

View File

@ -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<CloudType>::HeatTransferModel
)
:
CloudSubModelBase<CloudType>(owner, dict, typeName, type),
BirdCorrection_(this->coeffDict().lookup("BirdCorrection"))
BirdCorrection_(this->coeffDict().template get<Switch>("BirdCorrection"))
{}
@ -61,13 +62,6 @@ Foam::HeatTransferModel<CloudType>::HeatTransferModel
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class CloudType>
Foam::HeatTransferModel<CloudType>::~HeatTransferModel()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>

View File

@ -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/\<CloudProperties\>:
\verbatim
subModels
{
heatTransferModel <model>;
<model>Coeffs
{
BirdCorrection true;
}
}
\endverbatim
where the entries mean:
\table
Property | Description | Type | Reqd | Deflt
heatTransferModel | Type name: \<model\> | word | yes | -
\<model\>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 \<model\> 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<CloudType>&) = delete;
// Constructors
//- Construct null from owner
@ -99,7 +175,7 @@ public:
const word& type
);
//- Construct copy
//- Copy construct
HeatTransferModel(const HeatTransferModel<CloudType>& 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,

View File

@ -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<CloudType>::NoHeatTransfer
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class CloudType>
Foam::NoHeatTransfer<CloudType>::~NoHeatTransfer()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>
bool Foam::NoHeatTransfer<CloudType>::active() const
{
return false;
}
template<class CloudType>
Foam::scalar Foam::NoHeatTransfer<CloudType>::Nu
(
const scalar,
const scalar
) const
{
return 0.0;
}
template<class CloudType>
Foam::scalar Foam::NoHeatTransfer<CloudType>::Pr() const
{
return 1.0;
}
// ************************************************************************* //

View File

@ -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/\<CloudProperties\>:
\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<CloudType>& 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;
}
};

View File

@ -56,13 +56,6 @@ Foam::RanzMarshall<CloudType>::RanzMarshall(const RanzMarshall<CloudType>& htm)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
template<class CloudType>
Foam::RanzMarshall<CloudType>::~RanzMarshall()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class CloudType>
@ -72,6 +65,7 @@ Foam::scalar Foam::RanzMarshall<CloudType>::Nu
const scalar Pr
) const
{
// (AOB:p. 18 below Eq. 42)
return a_ + b_*pow(Re, m_)*pow(Pr, n_);
}

View File

@ -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/\<CloudProperties\>:
\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<CloudType>& 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,