SemiImplicitSource< Type > Class Template Reference

Semi-implicit source, described using an input dictionary. The injection rate coefficients are specified as pairs of Su-Sp coefficients, i.e. More...

Inheritance diagram for SemiImplicitSource< Type >:
Collaboration diagram for SemiImplicitSource< Type >:

Public Types

enum  volumeModeType { vmAbsolute, vmSpecific }
 Enumeration for volume types. More...
 
- Public Types inherited from cellSetOption
enum  selectionModeType { smPoints, smCellSet, smCellZone, smAll }
 Enumeration for selection mode types. More...
 

Public Member Functions

 TypeName ("SemiImplicitSource")
 Runtime type information. More...
 
 SemiImplicitSource (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
const volumeModeTypevolumeMode () const
 Return const access to the volume mode. More...
 
const List< Tuple2< Type, scalar > > & injectionRate () const
 Return const access to the source field values. More...
 
volumeModeTypevolumeMode ()
 Return access to the volume mode. More...
 
List< Tuple2< Type, scalar > > & injectionRate ()
 Return access to the source field values. More...
 
virtual void addSup (fvMatrix< Type > &eqn, const label fieldi)
 Add explicit contribution to equation. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< Type > &eqn, const label fieldi)
 Add explicit contribution to compressible equation. 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 ()
 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< 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 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...
 

Static Public Attributes

static const wordList volumeModeTypeNames_
 Word list of volume mode type names. More...
 
- Static Public Attributes inherited from cellSetOption
static const NamedEnum< selectionModeType, 4 > selectionModeTypeNames_
 Word list of selection mode type names. More...
 

Protected Member Functions

volumeModeType wordToVolumeModeType (const word &vtName) const
 Helper function to convert from a word to a volumeModeType. More...
 
word volumeModeTypeToWord (const volumeModeType &vtType) const
 Helper function to convert from a volumeModeType to a word. More...
 
void setFieldData (const dictionary &dict)
 Set the local field data. More...
 
- 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

volumeModeType volumeMode_
 Volume mode. More...
 
scalar VDash_
 Volume normalisation. More...
 
List< Tuple2< Type, scalar > > injectionRate_
 Source field values. 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...
 

Additional Inherited Members

- 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...
 

Detailed Description

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

Semi-implicit source, described using an input dictionary. The injection rate coefficients are specified as pairs of Su-Sp coefficients, i.e.

\[ S(x) = S_u + S_p x \]

where

$ S(x) $ = net source for field 'x'
$ S_u $ = explicit source contribution
$ S_p $ = linearised implicit contribution

Example of the source specification:

    volumeMode      absolute; // specific
    injectionRateSuSp
    {
        k           (30.7 0);
        epsilon     (1.5  0);
    }

Valid options for the volumeMode entry include:

  • absolute: values are given as <quantity>
  • specific: values are given as <quantity>/m3
See also
Foam::fvOption
Source files

Definition at line 92 of file SemiImplicitSource.H.

Member Enumeration Documentation

◆ volumeModeType

Enumeration for volume types.

Enumerator
vmAbsolute 
vmSpecific 

Definition at line 119 of file SemiImplicitSource.H.

Constructor & Destructor Documentation

◆ SemiImplicitSource()

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

Construct from components.

Definition at line 111 of file SemiImplicitSource.C.

References SemiImplicitSource< Type >::addSup(), and Foam::blockMeshTools::read().

Referenced by SemiImplicitSource< Type >::setFieldData().

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

Member Function Documentation

◆ wordToVolumeModeType()

Foam::fv::SemiImplicitSource< Type >::volumeModeType wordToVolumeModeType ( const word vtName) const
protected

Helper function to convert from a word to a volumeModeType.

Definition at line 45 of file SemiImplicitSource.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::nl, and SemiImplicitSource< Type >::volumeModeTypeToWord().

Here is the call graph for this function:

◆ volumeModeTypeToWord()

Foam::word volumeModeTypeToWord ( const volumeModeType vtType) const
protected

Helper function to convert from a volumeModeType to a word.

Definition at line 68 of file SemiImplicitSource.C.

Referenced by SemiImplicitSource< Type >::wordToVolumeModeType().

Here is the caller graph for this function:

◆ setFieldData()

void setFieldData ( const dictionary dict)
protected

Set the local field data.

Definition at line 84 of file SemiImplicitSource.C.

References forAllConstIter(), dictionary::lookup(), SemiImplicitSource< Type >::SemiImplicitSource(), List< T >::size(), and dictionary::toc().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "SemiImplicitSource< Type >"  )

Runtime type information.

◆ volumeMode() [1/2]

const Foam::fv::SemiImplicitSource< Type >::volumeModeType & volumeMode ( ) const
inline

Return const access to the volume mode.

Definition at line 32 of file SemiImplicitSourceI.H.

◆ injectionRate() [1/2]

const Foam::List< Foam::Tuple2< Type, Foam::scalar > > & injectionRate ( ) const
inline

Return const access to the source field values.

Definition at line 40 of file SemiImplicitSourceI.H.

◆ volumeMode() [2/2]

Foam::fv::SemiImplicitSource< Type >::volumeModeType & volumeMode ( )
inline

Return access to the volume mode.

Definition at line 48 of file SemiImplicitSourceI.H.

◆ injectionRate() [2/2]

Foam::List< Foam::Tuple2< Type, Foam::scalar > > & injectionRate ( )
inline

Return access to the source field values.

Definition at line 56 of file SemiImplicitSourceI.H.

◆ addSup() [1/2]

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

Add explicit contribution to equation.

Definition at line 131 of file SemiImplicitSource.C.

References DimensionedField< Type, GeoMesh >::dimensions(), fvMatrix< Type >::dimensions(), Foam::dimVolume, Foam::endl(), Foam::Info, psi, fvMatrix< Type >::psi(), Sp, Su, Foam::fvc::SuSp(), and Foam::Zero.

Referenced by SemiImplicitSource< Type >::SemiImplicitSource().

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

◆ addSup() [2/2]

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

Add explicit contribution to compressible equation.

Definition at line 194 of file SemiImplicitSource.C.

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

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from cellSetOption.

Definition at line 31 of file SemiImplicitSourceIO.C.

References Foam::blockMeshTools::read().

Here is the call graph for this function:

Member Data Documentation

◆ volumeModeTypeNames_

const Foam::wordList volumeModeTypeNames_
static

Word list of volume mode type names.

Definition at line 126 of file SemiImplicitSource.H.

◆ volumeMode_

volumeModeType volumeMode_
protected

Volume mode.

Definition at line 134 of file SemiImplicitSource.H.

◆ VDash_

scalar VDash_
protected

Volume normalisation.

Definition at line 137 of file SemiImplicitSource.H.

◆ injectionRate_

List<Tuple2<Type, scalar> > injectionRate_
protected

Source field values.

Definition at line 140 of file SemiImplicitSource.H.


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