meanVelocityForce Class Reference

Applies the force within a specified region to maintain the specified mean velocity for incompressible flows. More...

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

Public Member Functions

 TypeName ("meanVelocityForce")
 Runtime type information. More...
 
 meanVelocityForce (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
 meanVelocityForce (const meanVelocityForce &)=delete
 No copy construct. More...
 
void operator= (const meanVelocityForce &)=delete
 No copy assignment. More...
 
virtual ~meanVelocityForce ()=default
 Destructor. More...
 
virtual void correct (volVectorField &U)
 Correct the pressure gradient. 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 void constrain (fvMatrix< vector > &eqn, const label fieldi)
 Set 1/A coefficient. 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...
 
selectionModeType selectionMode () const noexcept
 Return the cell selection mode. More...
 
bool useSubMesh () const noexcept
 True if sub-selection should be used. More...
 
const wordcellSetName () const noexcept
 
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...
 
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...
 
- 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< 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 (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...
 

Protected Member Functions

virtual scalar magUbarAve (const volVectorField &U) const
 
void writeProps (const scalar gradP) const
 Write the pressure gradient to file (for restarts etc) More...
 
void update (fvMatrix< vector > &eqn)
 Correct driving force for a constant mass flow rate. 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

vector Ubar_
 Desired mean velocity. More...
 
scalar gradP0_
 Pressure gradient before correction. More...
 
scalar dGradP_
 Change in pressure gradient. More...
 
vector flowDir_
 Flow direction. More...
 
scalar relaxation_
 Relaxation factor. More...
 
autoPtr< volScalarFieldrAPtr_
 Matrix 1/A coefficients field pointer. More...
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 Start time of fvOption. More...
 
scalar duration_
 Duration of fvOption execution starting from timeStart. More...
 
selectionModeType selectionMode_
 Cell selection mode. More...
 
word cellSetName_
 Name of set/zone for "cellSet" and "cellZone" selectionMode. More...
 
List< pointpoints_
 List of points for "points" selectionMode. 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< boolapplied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 
bool active_
 Source active flag. More...
 

Additional Inherited Members

- Public Types inherited from cellSetOption
enum  selectionModeType { smAll, smCellSet, smCellZone, smPoints }
 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...
 

Detailed Description

Applies the force within a specified region to maintain the specified mean velocity for incompressible flows.

Sources applied to:

  U         | Velocity                                   [m/s]

Required fields:

  U         | Velocity                                   [m/s]
Usage
Minimal example by using constant/fvOptions:
meanVelocityForce1
{
    // Mandatory entries (unmodifiable)
    type                 meanVelocityForce;

    // Mandatory entries (unmodifiable)
    Ubar             (1 0 0);
    fields           (<fieldName>);

    // Optional entries (unmodifiable)
    relaxation       1.0;

    // Conditional mandatory entries (unmodifiable)

        // when <timePath>/uniform/<name>Properties file exists
        gradient    <vectorField>; // reading from the aforementioned file

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

where the entries mean:

Property Description Type Reqd Dflt
type Type name: meanVelocityForce word yes -
Ubar Desired mean velocity vector yes -
fields Name of operand velocity field word yes -
relaxation Relaxation factor scalar no 1
gradient Initial pressure gradient field vectorField cndtnl -

The inherited entries are elaborated in:

Note
  • Currently only handles kinematic pressure (incompressible solvers).
Source files

Definition at line 148 of file meanVelocityForce.H.

Constructor & Destructor Documentation

◆ meanVelocityForce() [1/2]

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

Construct from explicit source name and mesh.

Definition at line 78 of file meanVelocityForce.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, IOstream::good(), Foam::Info, Foam::nl, and propsDict().

Here is the call graph for this function:

◆ meanVelocityForce() [2/2]

meanVelocityForce ( const meanVelocityForce )
delete

No copy construct.

◆ ~meanVelocityForce()

virtual ~meanVelocityForce ( )
virtualdefault

Destructor.

Member Function Documentation

◆ magUbarAve()

Foam::scalar magUbarAve ( const volVectorField U) const
protectedvirtual

Calculate and return the magnitude of the mean velocity averaged over the selected cellSet

Definition at line 123 of file meanVelocityForce.C.

References forAll, reduce(), and U.

Referenced by meanVelocityForce::correct().

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

◆ writeProps()

void writeProps ( const scalar  gradP) const
protected

Write the pressure gradient to file (for restarts etc)

Definition at line 50 of file meanVelocityForce.C.

References gradP(), and propsDict().

Referenced by meanVelocityForce::correct().

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

◆ update()

void update ( fvMatrix< vector > &  eqn)
protected

Correct driving force for a constant mass flow rate.

◆ TypeName()

TypeName ( "meanVelocityForce"  )

Runtime type information.

◆ operator=()

void operator= ( const meanVelocityForce )
delete

No copy assignment.

◆ correct()

void correct ( volVectorField U)
virtual

Correct the pressure gradient.

Reimplemented from option.

Definition at line 145 of file meanVelocityForce.C.

References cellSetOption::cells_, meanVelocityForce::dGradP_, Foam::endl(), meanVelocityForce::flowDir_, forAll, gradP(), meanVelocityForce::gradP0_, Foam::Info, Foam::mag(), meanVelocityForce::magUbarAve(), option::mesh_, meanVelocityForce::rAPtr_, rAU, Foam::reduce(), meanVelocityForce::relaxation_, U, meanVelocityForce::Ubar_, fvMesh::V(), cellSetOption::V_, and meanVelocityForce::writeProps().

Here is the call graph for this function:

◆ addSup() [1/2]

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

Add explicit contribution to momentum equation.

Reimplemented from option.

Definition at line 190 of file meanVelocityForce.C.

References fvMatrix< Type >::dimensions(), Foam::dimVolume, gradP(), IOobject::NO_READ, IOobject::NO_WRITE, Su, and Foam::Zero.

Here is the call graph for this function:

◆ 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 218 of file meanVelocityForce.C.

◆ constrain()

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

Set 1/A coefficient.

Reimplemented from option.

Definition at line 229 of file meanVelocityForce.C.

References fvMatrix< Type >::A(), IOobject::NO_READ, and IOobject::NO_WRITE.

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from cellSetOption.

Definition at line 262 of file meanVelocityForce.C.

References NotImplemented.

Member Data Documentation

◆ Ubar_

vector Ubar_
protected

Desired mean velocity.

Definition at line 157 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().

◆ gradP0_

scalar gradP0_
protected

Pressure gradient before correction.

Definition at line 160 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().

◆ dGradP_

scalar dGradP_
protected

Change in pressure gradient.

Definition at line 163 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().

◆ flowDir_

vector flowDir_
protected

Flow direction.

Definition at line 166 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().

◆ relaxation_

scalar relaxation_
protected

Relaxation factor.

Definition at line 169 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().

◆ rAPtr_

autoPtr<volScalarField> rAPtr_
protected

Matrix 1/A coefficients field pointer.

Definition at line 172 of file meanVelocityForce.H.

Referenced by meanVelocityForce::correct().


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