Public Member Functions | List of all members
PhaseLimitStabilization< Type > Class Template Reference

Stabilization source for phase transport equations of Type, where <Type>=Scalar/Vector/SphericalTensor/SymmTensor/Tensor. More...

Inheritance diagram for PhaseLimitStabilization< Type >:
Inheritance graph
[legend]
Collaboration diagram for PhaseLimitStabilization< Type >:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("PhaseLimitStabilization")
 
 PhaseLimitStabilization (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
 PhaseLimitStabilization (const PhaseLimitStabilization &)=delete
 
void operator= (const PhaseLimitStabilization &)=delete
 
virtual ~PhaseLimitStabilization ()=default
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< Type > &eqn, const label fieldi)
 
virtual bool read (const dictionary &dict)
 
- Public Member Functions inherited from option
 TypeName ("option")
 
 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)
 
autoPtr< optionclone () const
 
virtual ~option ()=default
 
const wordname () const noexcept
 
const fvMeshmesh () const noexcept
 
const dictionarycoeffs () const noexcept
 
bool active () const noexcept
 
void setApplied (const label fieldi)
 
bool active (const bool on) noexcept
 
virtual bool isActive ()
 
virtual label applyToField (const word &fieldName) const
 
virtual void checkApplied () const
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< vector > &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< vector > &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 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
 
virtual void writeFooter (Ostream &) const
 
virtual void writeData (Ostream &) const
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 
- Public Attributes inherited from option
bool log
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Attributes inherited from option
const word name_
 
const word modelType_
 
const fvMeshmesh_
 
dictionary dict_
 
dictionary coeffs_
 
wordList fieldNames_
 
List< boolapplied_
 
bool active_
 

Detailed Description

template<class Type>
class Foam::fv::PhaseLimitStabilization< Type >

Stabilization source for phase transport equations of Type, where <Type>=Scalar/Vector/SphericalTensor/SymmTensor/Tensor.

Applies an implicit source to the phase transport equation for the specified field when the phase volume fraction is below residualAlpha. The stabilization rate is provided by the registered uniformDimensionedScalarField rate, which could be extended to also support volScalarField and volScalarField::Internal field types. The field is currently stabilized towards zero in the limit of the phase volume fraction approaching zero but this could be extended to support a specified value or a value or field looked-up from the database.

Usage
Minimal example by using constant/fvOptions:
\<Type\>PhaseLimitStabilization1
{
    // Mandatory entries (unmodifiable)
    type            \<Type\>PhaseLimitStabilization;
    field           \<fieldName\>;
    rate            \<rateName\>;

    // Mandatory entries (runtime modifiable)
    residualAlpha   1.0;

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

where the entries mean:

Property Description Type Reqd Dflt
type Type name: <Type>PhaseLimitStabilization word yes -
field Name of operand field word yes -
rate Name of rate field word yes -
residualAlpha Residual alpha value below which stabilization is applied scalar yes -

The inherited entries are elaborated in:

Example usage:

    stabilization
    {
        type            symmTensorPhaseLimitStabilization;

        field           sigma.liquid;
        rate            rLambda.liquid;
        residualAlpha   1e-3;
    }
Source files

Definition at line 138 of file PhaseLimitStabilization.H.

Constructor & Destructor Documentation

◆ PhaseLimitStabilization() [1/2]

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

Definition at line 31 of file PhaseLimitStabilization.C.

◆ PhaseLimitStabilization() [2/2]

PhaseLimitStabilization ( const PhaseLimitStabilization< Type > &  )
delete

◆ ~PhaseLimitStabilization()

virtual ~PhaseLimitStabilization ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "PhaseLimitStabilization< Type >"  )

◆ operator=()

void operator= ( const PhaseLimitStabilization< Type > &  )
delete

◆ addSup()

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

Definition at line 52 of file PhaseLimitStabilization.C.

References Foam::constant::atomic::alpha, Foam::max(), psi, fvMatrix::psi(), rho, and Sp.

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Reimplemented from option.

Definition at line 69 of file PhaseLimitStabilization.C.

References dict, and Foam::blockMeshTools::read().

Here is the call graph for this function:

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