interRegionHeatTransferModel Class Referenceabstract

Intermediate class for handling inter-region heat exchanges. More...

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

Public Member Functions

 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...
 

Protected Member Functions

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

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...
 

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...
 

Detailed Description

Intermediate class for handling inter-region heat exchanges.

The derived classes must provide the heat transfer coefficients (htc) which is used as follows in the energy equation.

\[ -htc*Tmapped + Sp(htc, T) \]

Usage
Minimal example by using constant/fvOptions:
<userDefinedName1>
{
    // Mandatory/Optional (inherited) entries
    ...

    // Mandatory entries (unmodifiable)
    fields          (<field1> <field2> ... <fieldN>);
    nbrModel        <nbrModelName>;
    semiImplicit    true;

    // Optional entries (unmodifiable)
    T               <Tname>;
    Tnbr            <TnbrName>;

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

where the entries mean:

Property Description Type Reqd Dflt
nbrModel Name of the model in the neighbour mesh word yes -
fields Names of operand fields wordList yes -
semiImplicit Flag to activate semi-implicit coupling bool yes -
T Name of operand temperature field word no T
Tnbr Name of operand neighbour temperature field word no T

The inherited entries are elaborated in:

See also
Source files

Definition at line 142 of file interRegionHeatTransferModel.H.

Constructor & Destructor Documentation

◆ interRegionHeatTransferModel()

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

Construct from dictionary.

Definition at line 110 of file interRegionHeatTransferModel.C.

References option::active(), option::coeffs_, option::fieldNames_, dictionary::readEntry(), option::resetApplied(), and interRegionHeatTransferModel::semiImplicit_.

Here is the call graph for this function:

◆ ~interRegionHeatTransferModel()

virtual ~interRegionHeatTransferModel ( )
virtualdefault

Destructor.

Member Function Documentation

◆ setNbrModel()

void setNbrModel ( )
protected

Set the neighbour interRegionHeatTransferModel.

Definition at line 49 of file interRegionHeatTransferModel.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, interRegionHeatTransferModel::firstIter_, forAll, fvOptions, objectRegistry::lookupObject(), option::mesh_, option::name(), interRegionHeatTransferModel::nbrModel_, interRegionHeatTransferModel::nbrModelName_, interRegionOption::nbrRegionName_, Foam::nl, interRegionHeatTransferModel::setNbrModel(), and fvMesh::time().

Referenced by interRegionHeatTransferModel::setNbrModel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ correct()

void correct ( )
protected

Correct to calculate the inter-region heat transfer coefficient.

Definition at line 90 of file interRegionHeatTransferModel.C.

References Foam::interpolate().

Here is the call graph for this function:

◆ interpolate() [1/6]

tmp< Field< Type > > interpolate ( const interRegionHeatTransferModel nbrModel,
const Field< Type > &  field 
) const
protected

Interpolate field with nbrModel specified.

◆ interpolate() [2/6]

tmp< Field< Type > > interpolate ( const Field< Type > &  field) const
protected

Interpolate field without nbrModel specified.

◆ interpolate() [3/6]

void interpolate ( const interRegionHeatTransferModel nbrModel,
const Field< Type > &  field,
Field< Type > &  result 
) const
protected

Interpolate field with nbrModel specified.

Definition at line 59 of file interRegionHeatTransferModelTemplates.C.

References field(), meshToMesh::mapSrcToTgt(), and interRegionHeatTransferModel::meshInterp().

Here is the call graph for this function:

◆ interpolate() [4/6]

void interpolate ( const Field< Type > &  field,
Field< Type > &  result 
) const
protected

Interpolate field without nbrModel specified.

Definition at line 78 of file interRegionHeatTransferModelTemplates.C.

References field(), and Foam::interpolate().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "interRegionHeatTransferModel"  )

Runtime type information.

◆ nbrRegionName()

const Foam::word & nbrRegionName ( ) const
inline

Return const access to the neighbour region name.

Definition at line 32 of file interRegionHeatTransferModelI.H.

References interRegionOption::nbrRegionName_.

◆ meshInterp()

const Foam::meshToMesh & meshInterp ( ) const
inline

Return const access to the mapToMap pointer.

Definition at line 39 of file interRegionHeatTransferModelI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by interRegionHeatTransferModel::interpolate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ htc()

const Foam::volScalarField & htc ( ) const
inline

Return the heat transfer coefficient.

Definition at line 53 of file interRegionHeatTransferModelI.H.

◆ nbrModel() [1/2]

const Foam::fv::interRegionHeatTransferModel & nbrModel ( ) const
inline

Return const access to the neighbour model.

Definition at line 60 of file interRegionHeatTransferModelI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Referenced by interRegionHeatTransferModel::interpolate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nbrModel() [2/2]

Return access to the neighbour model.

Definition at line 74 of file interRegionHeatTransferModelI.H.

References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ addSup() [1/2]

void addSup ( fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

◆ addSup() [2/2]

void addSup ( const volScalarField rho,
fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Source term to compressible energy equation.

Reimplemented from option.

Definition at line 253 of file interRegionHeatTransferModel.C.

◆ calculateHtc()

virtual void calculateHtc ( )
pure virtual

Calculate heat transfer coefficient.

Implemented in constantHeatTransfer, tabulatedHeatTransfer, tabulatedNTUHeatTransfer, and variableHeatTransfer.

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from interRegionOption.

Reimplemented in constantHeatTransfer, tabulatedHeatTransfer, tabulatedNTUHeatTransfer, and variableHeatTransfer.

Definition at line 264 of file interRegionHeatTransferModel.C.

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

Here is the call graph for this function:

◆ interpolate() [5/6]

Foam::tmp< Foam::Field< Type > > interpolate ( const interRegionHeatTransferModel nbrModel,
const Field< Type > &  field 
) const

Definition at line 30 of file interRegionHeatTransferModelTemplates.C.

References field(), meshToMesh::mapSrcToTgt(), meshToMesh::mapTgtToSrc(), interRegionOption::master_, interRegionHeatTransferModel::meshInterp(), and interRegionHeatTransferModel::nbrModel().

Here is the call graph for this function:

◆ interpolate() [6/6]

Foam::tmp< Foam::Field< Type > > interpolate ( const Field< Type > &  field) const

Definition at line 49 of file interRegionHeatTransferModelTemplates.C.

References field(), and Foam::interpolate().

Here is the call graph for this function:

Member Data Documentation

◆ nbrModelName_

word nbrModelName_
protected

Name of the model in the neighbour mesh.

Definition at line 151 of file interRegionHeatTransferModel.H.

Referenced by interRegionHeatTransferModel::setNbrModel().

◆ nbrModel_

interRegionHeatTransferModel* nbrModel_
protected

Pointer to neighbour interRegionHeatTransferModel.

Definition at line 154 of file interRegionHeatTransferModel.H.

Referenced by interRegionHeatTransferModel::setNbrModel().

◆ firstIter_

bool firstIter_
protected

Flag to determine the first iteration.

Definition at line 157 of file interRegionHeatTransferModel.H.

Referenced by interRegionHeatTransferModel::setNbrModel().

◆ semiImplicit_

bool semiImplicit_
protected

Flag to activate semi-implicit coupling.

Definition at line 160 of file interRegionHeatTransferModel.H.

Referenced by interRegionHeatTransferModel::interRegionHeatTransferModel().

◆ timeIndex_

label timeIndex_
protected

Time index - used for updating htc.

Definition at line 163 of file interRegionHeatTransferModel.H.

◆ htc_

volScalarField htc_
protected

Heat transfer coefficient [W/m2/k] times area/volume [1/m].

Definition at line 166 of file interRegionHeatTransferModel.H.

Referenced by constantHeatTransfer::constantHeatTransfer().

◆ TName_

word TName_
protected

Name of operand temperature field.

Definition at line 169 of file interRegionHeatTransferModel.H.

◆ TNbrName_

word TNbrName_
protected

Name of operand neighbour temperature field.

Definition at line 172 of file interRegionHeatTransferModel.H.


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