/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see .
Class
Foam::heatTransferCoeffModels::ReynoldsAnalogy
Description
Heat transfer coefficient calculation based on Reynolds Analogy,
which is used to relate turbulent momentum and heat transfer.
The heat transfer coefficient is derived
from the skin friction coefficient:
\f[
C_f = \frac{\tau_w}{0.5 \rho_{ref} |U|^2}
\f]
as:
\f[
h = 0.5 \rho_{ref} c_{p,ref} |U_{ref}| C_f
\f]
where
\vartable
h | Heat transfer coefficient [W/m^2/K]
\rho_{ref} | Reference fluid density [kg/m^3]
c_{p,ref} | Reference specific heat capacity at constant pressure [J/kg/K]
U_{ref} | Reference velocity [m/s]
C_f | Skin friction coefficient [-]
\tau_w | Wall shear stress [m^2/s^2]
\endvartable
Usage
Minimal example by using \c system/controlDict.functions:
\verbatim
heatTransferCoeff1
{
// Inherited entries
...
// Mandatory entries
htcModel ReynoldsAnalogy;
UInf ;
// Optional entries
U ;
Cp ;
rho ;
// Conditional mandatory entries
// when Cp == CpInf
CpInf ;
// when rho == rhoInf
rhoInf ;
}
\endverbatim
where the entries mean:
\table
Property | Description | Type | Reqd | Deflt
type | Model name: ReynoldsAnalogy | word | yes | -
UInf | Reference velocity | vector | yes | -
U | Name of velocity field | word | no | U
Cp | Name of reference specific heat capacity | word | no | Cp
CpInf | Reference specific heat capacity value | scalar | choice | -
rho | Name of fluid density field | word | no | rho
rhoInf | Reference fluid density value | scalar | choice | -
\endtable
Note
- In order to use a reference \c Cp, set \c Cp to \c CpInf.
- In order to use a reference \c rho, set \c rho to \c rhoInf.
SourceFiles
ReynoldsAnalogy.C
\*---------------------------------------------------------------------------*/
#ifndef heatTransferCoeffModels_ReynoldsAnalogy_H
#define heatTransferCoeffModels_ReynoldsAnalogy_H
#include "heatTransferCoeffModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace heatTransferCoeffModels
{
/*---------------------------------------------------------------------------*\
Class ReynoldsAnalogy Declaration
\*---------------------------------------------------------------------------*/
class ReynoldsAnalogy
:
public heatTransferCoeffModel
{
protected:
// Protected Data
//- Name of velocity field
word UName_;
//- Reference velocity
vector URef_;
//- Name of fluid density field
word rhoName_;
//- Reference fluid density
scalar rhoRef_;
//- Name of specific heat capacity field
word CpName_;
//- Reference specific heat capacity
scalar CpRef_;
// Protected Member Functions
//- Return fluid density field [kg/m^3]
virtual tmp rho(const label patchi) const;
//- Return heat capacity at constant pressure [J/kg/K]
virtual tmp Cp(const label patchi) const;
//- Return the effective stress tensor including the laminar stress
virtual tmp devReff() const;
//- Return skin friction coefficient field [-]
tmp> Cf() const;
//- Set the heat transfer coefficient
virtual void htc
(
volScalarField& htc,
const FieldField& q
);
public:
//- Runtime type information
TypeName("ReynoldsAnalogy");
// Constructors
//- Construct from components
ReynoldsAnalogy
(
const dictionary& dict,
const fvMesh& mesh,
const word& TName
);
//- No copy construct
ReynoldsAnalogy(const ReynoldsAnalogy&) = delete;
//- No copy assignment
void operator=(const ReynoldsAnalogy&) = delete;
//- Destructor
virtual ~ReynoldsAnalogy() = default;
// Member Functions
//- Read from dictionary
virtual bool read(const dictionary& dict);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace heatTransferCoeffModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //