Applies corrections to incorporate the horizontal and vertical components of the Coriolis force for which the rotating frame is Earth. More...
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... | |
![]() | |
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 noexcept |
Return const access to the time start. More... | |
scalar | duration () const noexcept |
Return const access to the duration. More... | |
bool | inTimeLimits (const scalar timeValue) const |
True if within time limits. More... | |
selectionModeType | selectionMode () const noexcept |
Return the cell selection mode. More... | |
bool | useSubMesh () const noexcept |
True if sub-selection should be used. More... | |
const word & | cellSetName () const noexcept |
scalar | V () const noexcept |
Return const access to the total cell volume. More... | |
const labelList & | cells () const noexcept |
Return const access to the cell selection. More... | |
scalar | timeStart (scalar val) noexcept |
Adjust the time start, return the old value. More... | |
scalar | duration (scalar val) noexcept |
Adjust the duration, return the old value. More... | |
virtual bool | isActive () |
Is the source active? More... | |
![]() | |
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< option > | clone () const |
Return clone. More... | |
virtual | ~option ()=default |
Destructor. More... | |
const word & | name () const noexcept |
Return const access to the source name. More... | |
const fvMesh & | mesh () const noexcept |
Return const access to the mesh database. More... | |
const dictionary & | coeffs () const noexcept |
Return dictionary. More... | |
bool | active () const noexcept |
True if source is active. More... | |
void | setApplied (const label fieldi) |
Set the applied flag to true for field index fieldi. More... | |
bool | active (const bool on) noexcept |
Change source active flag, return previous value. 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 | |
![]() | |
enum | selectionModeType { smAll, smCellSet, smCellZone, smPoints } |
Enumeration for selection mode types. More... | |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
Return a reference to the selected fvOption model. More... | |
![]() | |
bool | log |
Switch write log to Info. More... | |
![]() | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
List of selection mode type names. More... | |
![]() | |
void | setSelection (const dictionary &dict) |
Set cell selection name or points selection from dictionary input. More... | |
void | setCellSelection () |
Set the cell selection based on user input selection mode. More... | |
void | setVol () |
Recalculate the volume. More... | |
![]() | |
void | resetApplied () |
Resize/reset applied flag list for all fieldNames_ entries. More... | |
![]() | |
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< point > | points_ |
List of points for "points" selectionMode. More... | |
labelList | cells_ |
Set of cells to apply source to. More... | |
scalar | V_ |
Sum of cell volumes. More... | |
![]() | |
const word | name_ |
Source name. More... | |
const word | modelType_ |
Model type. More... | |
const fvMesh & | mesh_ |
Reference to the mesh database. More... | |
dictionary | dict_ |
Top level source dictionary. More... | |
dictionary | coeffs_ |
Dictionary containing source coefficients. 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... | |
bool | active_ |
Source active flag. More... | |
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
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:
latitude
is limited to [0, 90], yet its value is allowed to be negative for the southern hemisphere.VSMALL
is equated to zero.Definition at line 186 of file atmCoriolisUSource.H.
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, option::resetApplied(), and WarningInFunction.
|
delete |
No copy construct.
|
virtualdefault |
Destructor.
TypeName | ( | "atmCoriolisUSource" | ) |
Runtime type information.
|
delete |
No copy assignment.
Add explicit contribution to incompressible momentum equation.
Reimplemented from option.
Definition at line 123 of file atmCoriolisUSource.C.
References fvMatrix< Type >::psi(), and U.
|
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.
|
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.
|
inlinevirtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 263 of file atmCoriolisUSource.H.