tabulatedNTUHeatTransfer Class Reference

Applies a tabulated heat transfer model for inter-region heat exchanges. The heat flux is calculated based on the Number of Thermal Units (NTU). More...

Inheritance diagram for tabulatedNTUHeatTransfer:
[legend]
Collaboration diagram for tabulatedNTUHeatTransfer:
[legend]

Public Types

enum  geometryModeType { gmCalculated , gmUser }
 Options for the geometry mode type. More...
 

Public Member Functions

 TypeName ("tabulatedNTUHeatTransfer")
 Runtime type information. More...
 
 tabulatedNTUHeatTransfer (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
 tabulatedNTUHeatTransfer (const tabulatedNTUHeatTransfer &)=delete
 No copy construct. More...
 
void operator= (const tabulatedNTUHeatTransfer &)=delete
 No copy assignment. More...
 
virtual ~tabulatedNTUHeatTransfer ()=default
 Destructor. More...
 
virtual void calculateHtc ()
 Calculate the heat transfer coefficient. More...
 
virtual bool read (const dictionary &dict)
 Read dictionary. More...
 
- Public Member Functions inherited from interRegionHeatTransferModel
 TypeName ("interRegionHeatTransferModel")
 Runtime type information. More...
 
 interRegionHeatTransferModel (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from dictionary. More...
 
virtual ~interRegionHeatTransferModel ()=default
 Destructor. More...
 
const wordnbrRegionName () const
 Return const access to the neighbour region name. More...
 
const meshToMeshmeshInterp () const
 Return const access to the mapToMap pointer. More...
 
const volScalarFieldhtc () const
 Return the heat transfer coefficient. More...
 
const interRegionHeatTransferModelnbrModel () const
 Return const access to the neighbour model. More...
 
interRegionHeatTransferModelnbrModel ()
 Return access to the neighbour model. More...
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 Source term to energy equation. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 Source term to compressible energy equation. More...
 
virtual void calculateHtc ()=0
 Calculate heat transfer coefficient. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > interpolate (const interRegionHeatTransferModel &nbrModel, const Field< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > interpolate (const Field< Type > &field) const
 
- Public Member Functions inherited from interRegionOption
 TypeName ("interRegionOption")
 Runtime type information. More...
 
 interRegionOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from dictionary. More...
 
 interRegionOption (const interRegionOption &)=delete
 No copy construct. More...
 
void operator= (const interRegionOption &)=delete
 No copy assignment. More...
 
virtual ~interRegionOption ()=default
 Destructor. More...
 
const wordnbrRegionName () const
 Return const access to the neighbour region name. More...
 
const meshToMeshmeshInterp () const
 Return const access to the mapToMap pointer. More...
 
virtual bool read (const dictionary &dict)
 Read dictionary. More...
 
- Public Member Functions inherited from option
 TypeName ("option")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh))
 
 option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
autoPtr< optionclone () const
 Return clone. More...
 
virtual ~option ()=default
 Destructor. More...
 
const wordname () const noexcept
 Return const access to the source name. More...
 
const fvMeshmesh () const noexcept
 Return const access to the mesh database. More...
 
const dictionarycoeffs () const noexcept
 Return dictionary. More...
 
bool active () const noexcept
 True if source is active. More...
 
void setApplied (const label fieldi)
 Set the applied flag to true for field index fieldi. More...
 
bool active (const bool on) noexcept
 Change source active flag, return previous value. More...
 
virtual bool isActive ()
 Is the source active? More...
 
virtual label applyToField (const word &fieldName) const
 Return index of field name if found in fieldNames list. More...
 
virtual void checkApplied () const
 Check that the source has been applied. More...
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void correct (volScalarField &field)
 
virtual void correct (volVectorField &field)
 
virtual void correct (volSphericalTensorField &field)
 
virtual void correct (volSymmTensorField &field)
 
virtual void correct (volTensorField &field)
 
virtual void postProcessSens (scalarField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void postProcessSens (vectorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void postProcessSens (tensorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void writeHeader (Ostream &) const
 Write the source header information. More...
 
virtual void writeFooter (Ostream &) const
 Write the source footer information. More...
 
virtual void writeData (Ostream &) const
 Write the source properties. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 

Static Public Attributes

static const Enum< geometryModeTypegeometryModelNames_
 Names for geometryModeType. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 Return a reference to the selected fvOption model. More...
 
- Public Attributes inherited from option
bool log
 Switch write log to Info. More...
 
- Protected Member Functions inherited from interRegionHeatTransferModel
void setNbrModel ()
 Set the neighbour interRegionHeatTransferModel. More...
 
void correct ()
 Correct to calculate the inter-region heat transfer coefficient. More...
 
template<class Type >
tmp< Field< Type > > interpolate (const interRegionHeatTransferModel &nbrModel, const Field< Type > &field) const
 Interpolate field with nbrModel specified. More...
 
template<class Type >
tmp< Field< Type > > interpolate (const Field< Type > &field) const
 Interpolate field without nbrModel specified. More...
 
template<class Type >
void interpolate (const interRegionHeatTransferModel &nbrModel, const Field< Type > &field, Field< Type > &result) const
 Interpolate field with nbrModel specified. More...
 
template<class Type >
void interpolate (const Field< Type > &field, Field< Type > &result) const
 Interpolate field without nbrModel specified. More...
 
- Protected Member Functions inherited from interRegionOption
void setMapper ()
 Set the mesh to mesh interpolation object. More...
 
- Protected Member Functions inherited from option
void resetApplied ()
 Resize/reset applied flag list for all fieldNames_ entries. More...
 
- Protected Attributes inherited from interRegionHeatTransferModel
word nbrModelName_
 Name of the model in the neighbour mesh. More...
 
interRegionHeatTransferModelnbrModel_
 Pointer to neighbour interRegionHeatTransferModel. More...
 
bool firstIter_
 Flag to determine the first iteration. More...
 
bool semiImplicit_
 Flag to activate semi-implicit coupling. More...
 
label timeIndex_
 Time index - used for updating htc. More...
 
volScalarField htc_
 Heat transfer coefficient [W/m2/k] times area/volume [1/m]. More...
 
word TName_
 Name of operand temperature field. More...
 
word TNbrName_
 Name of operand neighbour temperature field. More...
 
- Protected Attributes inherited from interRegionOption
bool master_
 Master or slave region. More...
 
word nbrRegionName_
 Name of the neighbour region to map. More...
 
autoPtr< meshToMeshmeshInterpPtr_
 Mesh to mesh interpolation object. More...
 
- Protected Attributes inherited from option
const word name_
 Source name. More...
 
const word modelType_
 Model type. More...
 
const fvMeshmesh_
 Reference to the mesh database. More...
 
dictionary dict_
 Top level source dictionary. More...
 
dictionary coeffs_
 Dictionary containing source coefficients. More...
 
wordList fieldNames_
 Field names to apply source to - populated by derived models. More...
 
List< boolapplied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 
bool active_
 Source active flag. More...
 

Detailed Description

Applies a tabulated heat transfer model for inter-region heat exchanges. The heat flux is calculated based on the Number of Thermal Units (NTU).

A 2-D table of NTU as functions of the primary and secondary mass flow rates is required.

The exchanger geometry can be specified using either:

  • calculated:
    • inlet area of each region and core volume determined by interrogating mesh patches, and mesh-to-mesh interpolation volume
    • calculated core volume can be partially blocked by specifying a coreBlockageRatio [0-1] entry
  • user:
    • inlet area of each region provided by the user
    • core volume automatically calculated by the mesh-to-mesh interpolation volume if not provided by user

Heat transfer coefficient calculated by:

\[ htc = C_{min} \frac{NTU}{V_{core}} \]

Where \( C_{min} \) is given by:

\[ C_{min} = min \left(Cp_1 \dot{m}_1, Cp_2 \dot{m}_2 \right) \]

Usage
Minimal example by using constant/fvOptions:
tabulatedNTUHeatTransfer1
{
    // Mandatory entries (unmodifiable)
    type            tabulatedNTUHeatTransfer;

    // Mandatory entries (runtime modifiable)
    geometryMode    <geometryMode>;
    outOfBounds     clamp;
    file            "ntuTable";

    // Optional entries (runtime modifiable)
    U               <Uname>;
    Unbr            <UnbrName>;
    rho             <rhoName>;
    rhoNbr          <rhoNbrName>;

    // Conditional mandatory entries (runtime modifiable)

        // when geometryMode=user
        Ain             0.01728;
        AinNbr          0.3456;

        // when geometryMode=calculated
        inletPatch      inlet_HWK;
        inletPatchNbr   inlet_air;
        inletBlockageRatio 0.10;
        inletBlockageRatioNbr 0.04;
        coreBlockageRatio 0;

    // Conditional optional entries (runtime modifiable)

        // when geometryMode=user
        Vcore           0.01244;

    // Mandatory/Optional (inherited) entries
    ...
}

where the entries mean:

Property Description Type Reqd Dflt
type Type name: tabulatedNTUHeatTransfer word yes -
geometryMode Geometry mode type word yes -
file Heat transfer coefficient table interpolate2DTable yes -
U Name of operand velocity field word no U
Unbr Name of operand neighbour velocity field word no U
Ain Inlet area [m2] scalar cndtnl -
AinNbr Neighbour region inlet area [m2] scalar cndtnl -
Vcore Heat exchanger core volume scalar cndtnl -
inletPatch Name of inlet patch word cndtnl -
inletNbrPatch Name of inlet patch neighbour word cndtnl -
inletBlockageRatio

Inlet patch blockage ratio [0, 1]

scalar cndtnl -
inletBlockageRatioNbr

Inlet neighbour patch blockage ratio [0, 1]

scalar cndtnl -
coreBlockageRatio

Core volume blockage ratio [0, 1]

scalar cndtnl -

The inherited entries are elaborated in:

Options for the geometryMode entry:

      calculated    | Use settings computed internally
      user          | Use settings provided by the user

Example usage:

    coolerToAir
    {
        type            tabulatedNTUHeatTransfer;
        active          yes;

        tabulatedNTUHeatTransferCoeffs
        {
            interpolationMethod cellVolumeWeight;
            nbrRegion       air;
            master          true;

            fields          (h);
            outOfBounds     clamp;
            file            "ntuTable";
            nbrModel        airToCooler;
            semiImplicit    no;


            geometryMode    user;
            Ain             0.01728;
            AinNbr          0.3456;
            Vcore           0.01244;  // Optional

            // geometryMode    calculated;
            // inletPatch      inlet_HWK;
            // inletPatchNbr   inlet_air;
            // inletBlockageRatio 0.10;
            // inletBlockageRatioNbr 0.04;
            // coreBlockageRatio 0;
        }
    }
See also
Source files

Definition at line 290 of file tabulatedNTUHeatTransfer.H.

Member Enumeration Documentation

◆ geometryModeType

Options for the geometry mode type.

Enumerator
gmCalculated 
gmUser 

Definition at line 299 of file tabulatedNTUHeatTransfer.H.

Constructor & Destructor Documentation

◆ tabulatedNTUHeatTransfer() [1/2]

tabulatedNTUHeatTransfer ( const word name,
const word modelType,
const dictionary dict,
const fvMesh mesh 
)

Construct from components.

Definition at line 190 of file tabulatedNTUHeatTransfer.C.

◆ tabulatedNTUHeatTransfer() [2/2]

No copy construct.

◆ ~tabulatedNTUHeatTransfer()

virtual ~tabulatedNTUHeatTransfer ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "tabulatedNTUHeatTransfer"  )

Runtime type information.

◆ operator=()

void operator= ( const tabulatedNTUHeatTransfer )
delete

No copy assignment.

◆ calculateHtc()

void calculateHtc ( )
virtual

Calculate the heat transfer coefficient.

Implements interRegionHeatTransferModel.

Definition at line 213 of file tabulatedNTUHeatTransfer.C.

References Cp, basicThermo::Cp(), forAll, Foam::interpolate(), Foam::mag(), Foam::min(), rho, and U.

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read dictionary.

Reimplemented from interRegionHeatTransferModel.

Definition at line 255 of file tabulatedNTUHeatTransfer.C.

References dict, and kEpsilonLopesdaCosta< BasicTurbulenceModel >::read().

Here is the call graph for this function:

Member Data Documentation

◆ geometryModelNames_

Names for geometryModeType.

Definition at line 306 of file tabulatedNTUHeatTransfer.H.


The documentation for this class was generated from the following files: