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") | |
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) |
![]() | |
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 word & | cellSetName () const noexcept |
scalar | V () const noexcept |
const labelList & | cells () const noexcept |
scalar | timeStart (scalar val) noexcept |
scalar | duration (scalar val) noexcept |
virtual bool | isActive () |
![]() | |
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< option > | clone () const |
virtual | ~option ()=default |
const word & | name () const noexcept |
const fvMesh & | mesh () const noexcept |
const dictionary & | coeffs () 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 | |
![]() | |
enum | selectionModeType { smAll, smCellSet, smCellZone, smPoints } |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
![]() | |
bool | log |
![]() | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
![]() | |
void | setSelection (const dictionary &dict) |
void | setCellSelection () |
void | setVol () |
![]() | |
void | resetApplied () |
![]() | |
scalar | timeStart_ |
scalar | duration_ |
selectionModeType | selectionMode_ |
word | cellSetName_ |
List< point > | points_ |
labelList | cells_ |
scalar | V_ |
![]() | |
const word | name_ |
const word | modelType_ |
const fvMesh & | mesh_ |
dictionary | dict_ |
dictionary | coeffs_ |
wordList | fieldNames_ |
List< bool > | applied_ |
bool | active_ |
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 182 of file atmCoriolisUSource.H.
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.
|
delete |
|
virtualdefault |
TypeName | ( | "atmCoriolisUSource" | ) |
|
delete |
Reimplemented from option.
Definition at line 116 of file atmCoriolisUSource.C.
References fvMatrix::psi(), and U.
|
virtual |
Reimplemented from option.
Definition at line 131 of file atmCoriolisUSource.C.
References fvMatrix::psi(), rho, and U.
|
virtual |
Reimplemented from option.
Definition at line 147 of file atmCoriolisUSource.C.
References Foam::constant::atomic::alpha, fvMatrix::psi(), rho, and U.
|
inlinevirtual |
Reimplemented from cellSetOption.
Definition at line 259 of file atmCoriolisUSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.