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...
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... | |
![]() | |
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 wordRes & | selectionNames () const noexcept |
Return const access to the selection names (set or zone selection) More... | |
const wordRe & | zoneName () 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 labelList & | cells () 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 word & | cellSetName () const |
The name of the cell set/zone [as a word] for "cellSet" / "cellZone" selection modes) More... | |
![]() | |
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< option > | clone () const |
Return clone. More... | |
virtual | ~option ()=default |
Destructor. More... | |
const word & | name () const noexcept |
Return const access to the source name. More... | |
const fvMesh & | mesh () const noexcept |
Return const access to the mesh database. More... | |
const dictionary & | coeffs () 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 | |
![]() | |
enum | selectionModeType : char { smAll, smCellSet, smCellZone, smPoints, smMovingPoints, smGeometric, smCellType } |
Enumeration for selection mode types. More... | |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
Return a reference to the selected fvOption model. More... | |
![]() | |
bool | log |
Switch write log to Info. More... | |
![]() | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
List of selection mode type names. More... | |
![]() | |
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... | |
![]() | |
void | resetApplied () |
Resize/reset applied flag list for all fieldNames_ entries. More... | |
![]() | |
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< point > | points_ |
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... | |
![]() | |
const word | name_ |
Source name. More... | |
const word | modelType_ |
Model type. More... | |
const fvMesh & | mesh_ |
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... | |
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.
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:
Definition at line 164 of file fanMomentumSource.H.
fanMomentumSource | ( | const word & | sourceName, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from explicit source name and mesh.
Definition at line 250 of file fanMomentumSource.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::FatalIOError, FatalIOErrorInFunction, IOstream::good(), Foam::Info, IOWarningInFunction, option::isActive(), Foam::mag(), Foam::name(), Foam::nl, propsDict(), option::resetApplied(), and Foam::type().
|
delete |
No copy construct.
|
virtualdefault |
Destructor.
TypeName | ( | "fanMomentumSource" | ) |
Runtime type information.
|
delete |
No copy assignment.
Add explicit contribution to momentum equation.
Reimplemented from option.
Definition at line 343 of file fanMomentumSource.C.
References Foam::abort(), Foam::dimArea, fvMatrix< Type >::dimensions(), Foam::dimVelocity, Foam::dimVolume, Foam::FatalError, FatalErrorInFunction, Foam::max(), mesh, IOobjectOption::NO_READ, IOobjectOption::NO_REGISTER, IOobjectOption::NO_WRITE, GeometricField< scalar, fvsPatchField, surfaceMesh >::null(), phi, Su, and Foam::Zero.
|
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.
|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 445 of file fanMomentumSource.C.
References NotImplemented.