atmCoriolisUSource Class Reference

Applies corrections to incorporate the horizontal and vertical components of the Coriolis force for which the rotating frame is Earth. More...

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

Public Member Functions

 TypeName ("atmCoriolisUSource")
 Runtime type information. More...
 
 atmCoriolisUSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
 atmCoriolisUSource (const atmCoriolisUSource &)=delete
 No copy construct. More...
 
void operator= (const atmCoriolisUSource &)=delete
 No copy assignment. More...
 
virtual ~atmCoriolisUSource ()=default
 Destructor. More...
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 Add explicit contribution to incompressible 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 addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 Add explicit contribution to phase momentum 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 ()=default
 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 ()=default
 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 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...
 

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...
 
- 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...
 
- 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...
 
void setVol ()
 Recalculate the volume. 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...
 
Switch active_
 Source active flag. 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...
 

Detailed Description

Applies corrections to incorporate the horizontal and vertical components of the Coriolis force for which the rotating frame is Earth.

The Coriolis force is an inertial or fictitious force that acts on objects that are in motion within a frame of reference that rotates with respect to an inertial frame.

In the atmospheric boundary layer context, for the "Coriolis effect", the rotating reference frame implied is almost always Earth. Because Earth spins, Earth-bound observers need to account for the Coriolis force to correctly analyze the motion of objects. Earth completes one rotation per day, so for motions of everyday objects the Coriolis force is usually quite small compared with other forces; its effects generally become noticeable only for motions occurring over large distances and long periods of time, such as large-scale movement of air in the atmosphere or water in the ocean. Such motions are constrained by the surface of Earth, so only the horizontal component of the Coriolis force is generally important.

Corrections applied on:

  U    | Velocity                  [m/s]

Required fields:

  U    | Velocity                  [m/s]

References:

    Coriolis force. (n.d.).
    In Wikipedia. Retrieved Feb 26, 2020, from https://w.wiki/JE5
Usage
Example by using constant/fvOptions:
atmCoriolisUSource1
{
    // Mandatory entries (unmodifiable)
    type             atmCoriolisUSource;

    atmCoriolisUSourceCoeffs
    {
        // Mandatory (inherited) entries (unmodifiable)
        selectionMode    all;

        // Conditional mandatory entries (unmodifiable)
        // Select either of the below

        // Option-1: to directly input rotation vector
        Omega        (0 0 5.65156e-5);

        // Option-2: to indirectly input rotation vector
        // by a latitude-period pair
        latitude                   51.971;
        planetaryRotationPeriod    23.9344694;
    }

    // Optional (inherited) entries
    ...
}

where the entries mean:

Property Description Type Req'd Dflt
type Type name: atmCoriolisUSource word yes -
latitude Geographic coordinate specifying the north–south position of a point on the surface of a planetary body [degree] scalar conditional 0.0
planetaryRotationPeriod Rotation period of the planetary body [h] scalar conditional 23.9344694
Omega Rotation vector of the rotating reference frame relative to the inertial frame [rad/s] vector conditional (0 0 0)

The inherited entries are elaborated in:

Note
  • Dimensional consistencies are hard-coded; therefore, no internal check is performed for potential dimension inconsistencies.
  • The magnitude of the latitude is limited to [0, 90], yet its value is allowed to be negative for the southern hemisphere.
  • The Coriolis force for cell whose volume is less than VSMALL is equated to zero.
Source files

Definition at line 186 of file atmCoriolisUSource.H.

Constructor & Destructor Documentation

◆ atmCoriolisUSource() [1/2]

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

Construct from explicit source name and mesh.

Definition at line 64 of file atmCoriolisUSource.C.

References Foam::endl(), Log, Foam::mag(), Foam::nl, and WarningInFunction.

Here is the call graph for this function:

◆ atmCoriolisUSource() [2/2]

atmCoriolisUSource ( const atmCoriolisUSource )
delete

No copy construct.

◆ ~atmCoriolisUSource()

virtual ~atmCoriolisUSource ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "atmCoriolisUSource"  )

Runtime type information.

◆ operator=()

void operator= ( const atmCoriolisUSource )
delete

No copy assignment.

◆ addSup() [1/3]

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

Add explicit contribution to incompressible momentum equation.

Reimplemented from option.

Definition at line 123 of file atmCoriolisUSource.C.

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

Here is the call graph for this function:

◆ addSup() [2/3]

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 138 of file atmCoriolisUSource.C.

References fvMatrix< Type >::psi(), rho, and U.

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

Add explicit contribution to phase momentum equation.

Reimplemented from option.

Definition at line 154 of file atmCoriolisUSource.C.

References Foam::constant::atomic::alpha, fvMatrix< Type >::psi(), rho, and U.

Here is the call graph for this function:

◆ read()

virtual bool read ( const dictionary dict)
inlinevirtual

Read source dictionary.

Reimplemented from cellSetOption.

Definition at line 263 of file atmCoriolisUSource.H.


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