forcing Class Reference

Base fvModel for forcing functions. More...

Inheritance diagram for forcing:
Collaboration diagram for forcing:

Public Member Functions

 TypeName ("forcing")
 Runtime type information. More...
 
 forcing (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
virtual ~forcing ()
 Destructor. More...
 
virtual bool read (const dictionary &dict)
 Read dictionary. More...
 
- Public Member Functions inherited from fvModel
 TypeName ("fvModel")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, fvModel, dictionary,(const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict),(name, modelType, mesh, dict))
 
 fvModel (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
autoPtr< fvModel > clone () const
 Return clone. More...
 
virtual ~fvModel ()
 Destructor. More...
 
const word & name () const
 Return const access to the source name. More...
 
const fvMesh & mesh () const
 Return const access to the mesh database. More...
 
const dictionary & coeffs () const
 Return dictionary. More...
 
virtual wordList addSupFields () const
 Return the list of fields for which the fvModel adds source term. More...
 
virtual bool addsSupToField (const word &fieldName) const
 Return true if the fvModel adds a source term to the given. More...
 
virtual scalar maxDeltaT () const
 Return the maximum time-step for stable operation. More...
 
virtual void addSup (fvMatrix< scalar > &eqn) const
 Add a source term to a field-less proxy equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const VolField< Type > &eqnField) const
 Add a source term to an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const VolField< Type > &field) const
 Return source for an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &rho, const VolField< Type > &field) const
 Return source for a compressible equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for a compressible equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const geometricOneField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const geometricOneField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > d2dt2 (const VolField< Type > &field) const
 Return source for an equation with a second time derivative. More...
 
virtual void preUpdateMesh ()
 Prepare for mesh update. More...
 
virtual bool movePoints ()=0
 Update for mesh motion. More...
 
virtual void topoChange (const polyTopoChangeMap &)=0
 Update topology using the given map. More...
 
virtual void mapMesh (const polyMeshMap &)=0
 Update from another mesh using the given map. More...
 
virtual void distribute (const polyDistributionMap &)=0
 Redistribute or update using the given distribution map. More...
 
virtual void correct ()
 Correct the fvModel. More...
 
virtual bool write (const bool write=true) const
 Write fvModel data. More...
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
Foam::dimensionSet sourceDims (const dimensionSet &ds, const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
const Foam::word & fieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 
template<class AlphaRhoFieldType >
const Foam::word & fieldName (const AlphaRhoFieldType &alphaRhoField)
 
template<class Type , class ... AlphaRhoFieldTypes>
Foam::tmp< Foam::fvMatrix< Type > > sourceTerm (const VolField< Type > &eqnField, const dimensionSet &ds, const AlphaRhoFieldTypes &... alphaRhoFields) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const geometricOneField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const geometricOneField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > d2dt2 (const VolField< Type > &field) const
 

Protected Member Functions

void readCoeffs ()
 Non-virtual read. More...
 
void readLambda ()
 Read the forcing coefficients. More...
 
dimensionedScalar regionLength () const
 Calculate and return the volume average forcing region length. More...
 
virtual tmp< volScalarField::Internal > scale () const
 Return the scale distribution. More...
 
virtual tmp< volScalarField::Internal > forceCoeff () const
 Return the force coefficient. More...
 
void writeForceFields () const
 Optionally write the forcing fields: More...
 
- Protected Member Functions inherited from fvModel
template<class Type >
void addSupType (const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to an equation. More...
 
template<class Type >
void addSupType (const volScalarField &rho, const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to a compressible equation. More...
 
template<class Type >
void addSupType (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to a phase equation. More...
 
template<class Type , class ... AlphaRhoFieldTypes>
tmp< fvMatrix< Type > > sourceTerm (const VolField< Type > &eqnField, const dimensionSet &ds, const AlphaRhoFieldTypes &... alphaRhoFields) const
 Return a source for an equation. More...
 

Protected Attributes

bool writeForceFields_
 Optionally write the forcing fields. More...
 
dimensionedScalar lambda_
 Forcing coefficient [1/s]. More...
 
dimensionedScalar lambdaBoundary_
 Optional boundary forcing coefficient [1/s]. More...
 
autoPtr< Function1< scalar > > scale_
 The scaling function. More...
 
vectorField origins_
 Origins of the scaling coordinate. More...
 
vectorField directions_
 Directions of increasing scaling coordinate. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from fvModel
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
static dimensionSet sourceDims (const dimensionSet &ds, const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 Return the dimensions of the matrix of a source term. More...
 
static const dimensionSet & sourceDims (const dimensionSet &ds)
 Return the dimensions of the matrix of a source term (base. More...
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
static const word & fieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 Return the name of the field associated with a source term. More...
 
template<class AlphaRhoFieldType >
static const word & fieldName (const AlphaRhoFieldType &alphaRhoField)
 Return the name of the field associated with a source term (base. More...
 
static const word & fieldName ()
 Return the name of the field associated with a source term. Special. More...
 
static autoPtr< fvModel > New (const word &name, const fvMesh &mesh, const dictionary &dict)
 Return a reference to the selected fvModel. More...
 

Detailed Description

Base fvModel for forcing functions.

See also
Foam::fv::isotropicDamping Foam::fv::verticalDamping
Source files

Definition at line 56 of file forcing.H.

Constructor & Destructor Documentation

◆ forcing()

forcing ( const word &  name,
const word &  modelType,
const fvMesh &  mesh,
const dictionary &  dict 
)

Construct from components.

Definition at line 229 of file forcing.C.

References forcing::readCoeffs().

Here is the call graph for this function:

◆ ~forcing()

virtual ~forcing ( )
inlinevirtual

Destructor.

Definition at line 124 of file forcing.H.

Member Function Documentation

◆ readCoeffs()

void readCoeffs ( )
protected

Non-virtual read.

Definition at line 65 of file forcing.C.

References autoPtr< T >::clear(), Foam::dimLength, Foam::dimless, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::mag(), Function1< Type >::New(), and WarningInFunction.

Referenced by forcing::forcing().

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

◆ readLambda()

void readLambda ( )
protected

Read the forcing coefficients.

Definition at line 45 of file forcing.C.

References fvModel::coeffs(), dimensioned< Type >::dimensions(), forcing::lambda_, forcing::lambdaBoundary_, and dimensioned< Type >::name().

Here is the call graph for this function:

◆ regionLength()

Foam::dimensionedScalar regionLength ( ) const
protected

Calculate and return the volume average forcing region length.

Definition at line 135 of file forcing.C.

References C, Foam::dimArea, Foam::dimLength, Foam::dimless, Foam::dimVolume, Foam::fvc::domainIntegrate(), Foam::evaluate(), forAll, Foam::fvc::grad(), and x.

Here is the call graph for this function:

◆ scale()

Foam::tmp< Foam::volScalarField::Internal > scale ( ) const
protectedvirtual

Return the scale distribution.

Definition at line 159 of file forcing.C.

References Foam::constant::universal::c, Foam::dimless, forAll, Foam::max(), DimensionedField< Type, GeoMesh >::New(), tmp< T >::ref(), Foam::typedName(), and x.

Referenced by waveForcing::distribute(), waveForcing::mapMesh(), waveForcing::movePoints(), and waveForcing::topoChange().

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

◆ forceCoeff()

Foam::tmp< Foam::volScalarField::Internal > forceCoeff ( ) const
protectedvirtual

Return the force coefficient.

Definition at line 184 of file forcing.C.

References forAll, DimensionedField< Type, GeoMesh >::New(), patchi, tmp< T >::ref(), and Foam::typedName().

Here is the call graph for this function:

◆ writeForceFields()

void writeForceFields ( ) const
protected

Optionally write the forcing fields:

forcing:scale, forcing:forceCoeff

Definition at line 214 of file forcing.C.

References Foam::endl(), Foam::Info, and Foam::vtkWriteOps::write().

Referenced by isotropicDamping::isotropicDamping(), verticalDamping::verticalDamping(), and waveForcing::waveForcing().

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

◆ TypeName()

TypeName ( "forcing"  )

Runtime type information.

◆ read()

bool read ( const dictionary &  dict)
virtual

Read dictionary.

Reimplemented from fvModel.

Reimplemented in waveForcing, verticalDamping, and isotropicDamping.

Definition at line 251 of file forcing.C.

References dict, and fvModel::read().

Referenced by isotropicDamping::read(), verticalDamping::read(), and waveForcing::read().

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

Member Data Documentation

◆ writeForceFields_

bool writeForceFields_
protected

Optionally write the forcing fields.

Definition at line 65 of file forcing.H.

◆ lambda_

dimensionedScalar lambda_
mutableprotected

Forcing coefficient [1/s].

Definition at line 68 of file forcing.H.

Referenced by forcing::readLambda().

◆ lambdaBoundary_

dimensionedScalar lambdaBoundary_
mutableprotected

Optional boundary forcing coefficient [1/s].

Definition at line 71 of file forcing.H.

Referenced by forcing::readLambda().

◆ scale_

autoPtr<Function1<scalar> > scale_
protected

The scaling function.

Definition at line 74 of file forcing.H.

◆ origins_

vectorField origins_
protected

Origins of the scaling coordinate.

Definition at line 77 of file forcing.H.

◆ directions_

vectorField directions_
protected

Directions of increasing scaling coordinate.

Definition at line 80 of file forcing.H.


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