fanMomentumSource Class Reference

This source term models the action of a fan on the flow. It calculates flow rate through a set of upstream faces of encompassing the cell zone. The set of upstream faces is automatically calculated based on the flow direction and the surrounding face zone. Based on the flow rate, the pressure gradient is calculated based on the fan pressure curve and the thickness of the fan (measurement section). The pressure gradient is then added to the momentum equation. More...

Inheritance diagram for fanMomentumSource:
Collaboration diagram for fanMomentumSource:

Public Member Functions

 TypeName ("fanMomentumSource")
 Runtime type information. More...
 
 fanMomentumSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
 fanMomentumSource (const fanMomentumSource &)=delete
 No copy construct. More...
 
void operator= (const fanMomentumSource &)=delete
 No copy assignment. More...
 
virtual ~fanMomentumSource ()=default
 Destructor. More...
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 Add explicit contribution to momentum equation. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 Add explicit contribution to compressible momentum equation. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 Runtime type information. More...
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
virtual ~cellSetOption ()=default
 Destructor. More...
 
scalar timeStart () const noexcept
 Return const access to the time start. More...
 
scalar duration () const noexcept
 Return const access to the duration. More...
 
bool inTimeLimits (const scalar timeValue) const
 True if within time limits. More...
 
bool useSubMesh () const noexcept
 True if sub-selection should be used. More...
 
selectionModeType selectionMode () const noexcept
 Return the cell selection mode. More...
 
const wordResselectionNames () const noexcept
 Return const access to the selection names (set or zone selection) More...
 
const wordRezoneName () const
 Return const access to the first set/zone name. More...
 
scalar V () const noexcept
 Return const access to the total cell volume. More...
 
const labelListcells () const noexcept
 Return const access to the cell selection. More...
 
bool isSelectionUpdated () const noexcept
 Return flag for selection updates. More...
 
scalar timeStart (scalar val) noexcept
 Adjust the time start, return the old value. More...
 
scalar duration (scalar val) noexcept
 Adjust the duration, return the old value. More...
 
virtual bool isActive ()
 Is the source active? More...
 
const wordcellSetName () const
 The name of the cell set/zone [as a word] for "cellSet" / "cellZone" selection modes) 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 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< 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< 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 correct (surfaceScalarField &field)
 
virtual void correct (surfaceVectorField &field)
 
virtual void correct (surfaceTensorField &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 postProcessAuxSens (const volScalarField &primalField, const volScalarField &adjointField, scalarField &sensField, const word &fieldName=word::null)
 
virtual void postProcessAuxSens (const volVectorField &primalField, const volVectorField &adjointField, scalarField &sensField, const word &fieldName=word::null)
 
virtual void postProcessAuxSens (const volTensorField &primalField, const volTensorField &adjointField, scalarField &sensField, const word &fieldName=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...
 

Additional Inherited Members

- Public Types inherited from cellSetOption
enum  selectionModeType : char {
  smAll, smCellSet, smCellZone, smPoints,
  smMovingPoints, smGeometric, smCellType
}
 Enumeration for selection mode types. More...
 
- 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...
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 List of selection mode type names. More...
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 Set cell selection name or points selection from dictionary input. More...
 
void setCellSelection ()
 Set the cell selection based on user input selection mode. More...
 
void setVol ()
 Recalculate the volume. More...
 
- Protected Member Functions inherited from option
void resetApplied ()
 Resize/reset applied flag list for all fieldNames_ entries. More...
 
- Protected Attributes inherited from cellSetOption
selectionModeType selectionMode_
 Cell selection mode. More...
 
bool updateSelection_
 Flag to enable dictionary-based updates of selections. More...
 
scalar timeStart_
 Start time of fvOption. More...
 
scalar duration_
 Duration of fvOption execution starting from timeStart. More...
 
wordRes selectionNames_
 Face selection names (for set or zone selections) More...
 
List< pointpoints_
 List of points for "points" selectionMode. More...
 
PtrList< Function1< point > > movingPoints_
 List of points for "movingPoints" selectionMode. More...
 
dictionary geometricSelection_
 Dictionary entries for "geometric" (topoSetCellSource) selection. More...
 
labelList cells_
 Set of cells to apply source to. More...
 
scalar V_
 Sum of cell volumes. 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< bool > applied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 
bool active_
 Source active flag. More...
 

Detailed Description

This source term models the action of a fan on the flow. It calculates flow rate through a set of upstream faces of encompassing the cell zone. The set of upstream faces is automatically calculated based on the flow direction and the surrounding face zone. Based on the flow rate, the pressure gradient is calculated based on the fan pressure curve and the thickness of the fan (measurement section). The pressure gradient is then added to the momentum equation.

Usage
Minimal example by using constant/fvOptions:
<name>
{
    // Mandatory entries
    type                fanMomentumSource;
    fanCurve            <Function1<scalar>>;
    flowDir             <vector>;
    thickness           <scalar>;
    cellZone            <word>;
    faceZone            <word>;

    // Optional entries
    gradient            <scalar>;
    rho                 <scalar>;
    U                   <word>;

    // Inherited entries
    ...
}

where the entries mean:

Property Description Type Reqd Deflt
type Type name: fanMomentumSource word yes -
fanCurve Pressure drop vs flow-rate Function1<scalar> yes -
flowDir Direction of the flow through the fan vector yes -
cellZone Cell zone representing the fan word yes -
faceZone Face zone around the cell zone word yes -
thickness Thickness of the fan [m] scalar yes -
gradient Initial pressure gradient scalar no -
rho Reference density for incompressible flow scalar no -
U Name of velocity field word no U

The inherited entries are elaborated in:

Note
  • The fan curve needs to be provded for a pressure drop in [Pa] and is specified as a function of the volumetric flow rate in [m^3/s].
Source files

Definition at line 164 of file fanMomentumSource.H.

Constructor & Destructor Documentation

◆ fanMomentumSource() [1/2]

fanMomentumSource ( const word sourceName,
const word modelType,
const dictionary dict,
const fvMesh mesh 
)

◆ fanMomentumSource() [2/2]

fanMomentumSource ( const fanMomentumSource )
delete

No copy construct.

◆ ~fanMomentumSource()

virtual ~fanMomentumSource ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "fanMomentumSource"  )

Runtime type information.

◆ operator=()

void operator= ( const fanMomentumSource )
delete

No copy assignment.

◆ addSup() [1/2]

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

◆ addSup() [2/2]

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

Add explicit contribution to compressible momentum equation.

Reimplemented from option.

Definition at line 398 of file fanMomentumSource.C.

References Foam::abort(), fvMatrix< Type >::dimensions(), Foam::dimMass, Foam::dimTime, Foam::dimVolume, Foam::FatalError, FatalErrorInFunction, Foam::fvc::interpolate(), Foam::max(), mesh, IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, phi, rho, rhof(), Su, and Foam::Zero.

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from cellSetOption.

Definition at line 445 of file fanMomentumSource.C.

References NotImplemented.


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