Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for atmCoriolisUSource:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("atmCoriolisUSource")
 
 atmCoriolisUSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
 atmCoriolisUSource (const atmCoriolisUSource &)=delete
 
void operator= (const atmCoriolisUSource &)=delete
 
virtual ~atmCoriolisUSource ()=default
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual bool read (const dictionary &dict)
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
virtual ~cellSetOption ()=default
 
scalar timeStart () const noexcept
 
scalar duration () const noexcept
 
bool inTimeLimits (const scalar timeValue) const
 
selectionModeType selectionMode () const noexcept
 
bool useSubMesh () const noexcept
 
const wordcellSetName () const noexcept
 
scalar V () const noexcept
 
const labelListcells () const noexcept
 
scalar timeStart (scalar val) noexcept
 
scalar duration (scalar val) noexcept
 
virtual bool isActive ()
 
- 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 label applyToField (const word &fieldName) const
 
virtual void checkApplied () const
 
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
 
virtual void writeFooter (Ostream &) const
 
virtual void writeData (Ostream &) const
 

Additional Inherited Members

- Public Types inherited from cellSetOption
enum  selectionModeType { smAll, smCellSet, smCellZone, smPoints }
 
- 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
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 
void setCellSelection ()
 
void setVol ()
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 
scalar duration_
 
selectionModeType selectionMode_
 
word cellSetName_
 
List< pointpoints_
 
labelList cells_
 
scalar V_
 
- 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

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 182 of file atmCoriolisUSource.H.

Constructor & Destructor Documentation

◆ atmCoriolisUSource() [1/2]

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

Definition at line 57 of file atmCoriolisUSource.C.

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

Here is the call graph for this function:

◆ atmCoriolisUSource() [2/2]

atmCoriolisUSource ( const atmCoriolisUSource )
delete

◆ ~atmCoriolisUSource()

virtual ~atmCoriolisUSource ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "atmCoriolisUSource"  )

◆ operator=()

void operator= ( const atmCoriolisUSource )
delete

◆ addSup() [1/3]

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

Reimplemented from option.

Definition at line 116 of file atmCoriolisUSource.C.

References fvMatrix::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

Reimplemented from option.

Definition at line 131 of file atmCoriolisUSource.C.

References fvMatrix::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

Reimplemented from option.

Definition at line 147 of file atmCoriolisUSource.C.

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

Here is the call graph for this function:

◆ read()

virtual bool read ( const dictionary dict)
inlinevirtual

Reimplemented from cellSetOption.

Definition at line 259 of file atmCoriolisUSource.H.


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