verticalDamping Class Reference

This fvOption applies an explicit damping force to components of the vector field in the direction of gravity. Its intended purpose is to damp the vertical motions of an interface in the region approaching an outlet so that no reflections are generated. More...

Inheritance diagram for verticalDamping:
Collaboration diagram for verticalDamping:

Public Member Functions

 TypeName ("verticalDamping")
 Runtime type information. More...
 
 verticalDamping (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
virtual ~verticalDamping ()
 Destructor. More...
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 Source term to momentum equation. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 Source term to compressible momentum equation. More...
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 Source term to phase momentum equation. More...
 
- Public Member Functions inherited from damping
 TypeName ("damping")
 Runtime type information. More...
 
 damping (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
virtual ~damping ()
 Destructor. More...
 
virtual bool read (const dictionary &dict)
 Read 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 ()
 Destructor. More...
 
scalar timeStart () const
 Return const access to the time start. More...
 
scalar duration () const
 Return const access to the duration. More...
 
bool inTimeLimits (const scalar time) const
 Return true if within time limits. More...
 
const selectionModeTypeselectionMode () const
 Return const access to the cell selection mode. More...
 
const wordcellSetName () const
 Return const access to the name of cell set for "cellSet". More...
 
scalar V () const
 Return const access to the total cell volume. More...
 
const labelListcells () const
 Return const access to the cell set. More...
 
scalar & timeStart ()
 Return access to the time start. More...
 
scalar & duration ()
 Return access to the duration. 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 ()
 Destructor. More...
 
const wordname () const
 Return const access to the source name. More...
 
const fvMeshmesh () const
 Return const access to the mesh database. More...
 
const dictionarycoeffs () const
 Return dictionary. More...
 
bool active () const
 Return const access to the source active flag. More...
 
void setApplied (const label fieldi)
 Set the applied flag to true for field index fieldi. More...
 
Switchactive ()
 Return access to the source active flag. 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< 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 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 { smPoints, smCellSet, smCellZone, smAll }
 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...
 
- Static Public Attributes inherited from cellSetOption
static const NamedEnum< selectionModeType, 4 > selectionModeTypeNames_
 Word list of selection mode type names. More...
 
- Protected Member Functions inherited from damping
tmp< volScalarField::InternalforceCoeff () const
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 Set the cellSet or points selection. More...
 
void setCellSet ()
 Set the cell set based on the user input selection mode. More...
 
- Protected Attributes inherited from damping
dimensionedScalar lambda_
 Damping 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...
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 Time start. More...
 
scalar duration_
 Duration. More...
 
selectionModeType selectionMode_
 Cell selection mode. More...
 
word cellSetName_
 Name of cell set 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...
 
Switch active_
 Source active flag. 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...
 

Detailed Description

This fvOption applies an explicit damping force to components of the vector field in the direction of gravity. Its intended purpose is to damp the vertical motions of an interface in the region approaching an outlet so that no reflections are generated.

Damping is achieved by applying a force to the momentum equation proportional to the momentum of the flow in the direction of gravity. The constant of proportionality is given by a coefficient $\lambda$ which has units of inverse-time. In the absence of any other forces this would generate an exponential decay of the vertical velocity.

\[ \frac{d (m u_z)}{d t} = - \lambda m u_z \]

\[ u_z = u_{z0} e^{- \lambda t} \]

The coefficient $\lambda$ should be set based on the desired level of damping and the residence time of a perturbation through the damping zone. For example, if waves moving at 2 [m/s] are travelling through a damping zone 8 [m] in length, then the residence time is 4 [s]. If it is deemed necessary to damp for 5 time-scales, then $\lambda$ should be set to equal 5/(4 [s]) = 1.2 [1/s].

Usage
Example usage:
verticalDamping1
{
    type            verticalDamping;

    selectionMode   cellZone;
    cellZone        nearOutlet;

    lambda          [0 0 -1 0 0 0 0] 1; // Damping coefficient

    timeStart       0;
    duration        1e6;
}

Example usage with graduated onset:

verticalDamping1
{
    type            verticalDamping;

    selectionMode   all;

    // Define the line along which to apply the graduation
    origin          (1200 0 0);
    direction       (1 0 0);

    // Or, define multiple lines
    // origins         ((1200 0 0) (1200 -300 0) (1200 300 0));
    // directions      ((1 0 0) (0 -1 0) (0 1 0));

    scale
    {
        type        halfCosineRamp;
        start       0;
        duration    600;
    }

    lambda          [0 0 -1 0 0 0 0] 1; // Damping coefficient

    timeStart       0;
    duration        1e6;
}
See also
Foam::fv::damping Foam::fv::isotropicDamping
Source files

Definition at line 124 of file verticalDamping.H.

Constructor & Destructor Documentation

◆ verticalDamping()

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

Construct from components.

Definition at line 63 of file verticalDamping.C.

References verticalDamping::addSup(), and Foam::read().

Here is the call graph for this function:

◆ ~verticalDamping()

virtual ~verticalDamping ( )
inlinevirtual

Destructor.

Definition at line 157 of file verticalDamping.H.

References verticalDamping::addSup(), alpha(), and rho.

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

TypeName ( "verticalDamping"  )

Runtime type information.

◆ addSup() [1/3]

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

Source term to momentum equation.

Reimplemented from option.

Definition at line 79 of file verticalDamping.C.

References Foam::add(), and fvMatrix< Type >::psi().

Referenced by verticalDamping::addSup(), verticalDamping::verticalDamping(), and verticalDamping::~verticalDamping().

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

◆ addSup() [2/3]

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

Source term to compressible momentum equation.

Reimplemented from option.

Definition at line 89 of file verticalDamping.C.

References Foam::add(), verticalDamping::addSup(), and fvMatrix< Type >::psi().

Here is the call graph for this function:

◆ addSup() [3/3]

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

Source term to phase momentum equation.

Reimplemented from option.

Definition at line 100 of file verticalDamping.C.

References Foam::add(), and fvMatrix< Type >::psi().

Here is the call graph for this function:

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