Rotor disk source. More...
Classes | |
struct | flapData |
Public Types | |
enum | geometryModeType { gmAuto, gmSpecified } |
enum | inletFlowType { ifFixed, ifSurfaceNormal, ifLocal } |
Public Types inherited from cellSetOption | |
enum | selectionModeType { smPoints, smCellSet, smCellZone, smAll } |
Enumeration for selection mode types. More... | |
Public Member Functions | |
TypeName ("rotorDisk") | |
Runtime type information. More... | |
rotorDiskSource (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
virtual | ~rotorDiskSource () |
Destructor. More... | |
scalar | rhoRef () const |
Return the reference density for incompressible case. More... | |
scalar | omega () const |
Return the rotational speed [rad/s]. More... | |
const List< point > & | x () const |
Return the cell centre positions in local rotor frame. More... | |
const coordSystem::cylindrical & | coordSys () const |
Return the rotor coordinate system (r-theta-z) More... | |
template<class RhoFieldType > | |
void | calculate (const RhoFieldType &rho, const vectorField &U, const scalarField &thetag, vectorField &force, const bool divideVolume=true, const bool output=true) const |
Calculate forces. More... | |
virtual void | addSup (fvMatrix< vector > &eqn, const label fieldi) |
Source term to momentum equation. More... | |
virtual void | addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi) |
Source term to compressible 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 selectionModeType & | selectionMode () const |
Return const access to the cell selection mode. More... | |
const word & | cellSetName () 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 labelList & | cells () 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< option > | clone () const |
Return clone. More... | |
virtual | ~option ()=default |
Destructor. More... | |
const word & | name () const |
Return const access to the source name. More... | |
const fvMesh & | mesh () const |
Return const access to the mesh database. More... | |
const dictionary & | coeffs () 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... | |
Switch & | active () |
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< 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 Enum< geometryModeType > | geometryModeTypeNames_ |
static const Enum< inletFlowType > | inletFlowTypeNames_ |
Static Public Attributes inherited from cellSetOption | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
List of selection mode type names. More... | |
Protected Member Functions | |
void | checkData () |
Check data. More... | |
void | setFaceArea (vector &axis, const bool correct) |
Set the face areas per cell, and optionally correct the rotor axis. More... | |
void | createCoordinateSystem () |
Create the coordinate system. More... | |
void | constructGeometry () |
Construct geometry. More... | |
tmp< vectorField > | inflowVelocity (const volVectorField &U) const |
Return the inlet flow field. More... | |
template<class Type > | |
void | writeField (const word &name, const List< Type > &values, const bool writeNow=false) const |
Helper function to write rotor values. 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 | |
scalar | rhoRef_ |
Reference density for incompressible case. More... | |
scalar | omega_ |
Rotational speed [rad/s]. More... | |
label | nBlades_ |
Number of blades. More... | |
inletFlowType | inletFlow_ |
Inlet flow type. More... | |
vector | inletVelocity_ |
Inlet velocity for specified inflow. More... | |
scalar | tipEffect_ |
Tip effect [0-1]. More... | |
flapData | flap_ |
Blade flap coefficients [rad/s]. More... | |
List< point > | x_ |
Cell centre positions in local rotor frame. More... | |
List< tensor > | Rcone_ |
Rotation tensor for flap angle. More... | |
List< scalar > | area_ |
Area [m2]. More... | |
coordSystem::cylindrical | coordSys_ |
Rotor local cylindrical coordinate system (r-theta-z) More... | |
autoPtr< tensorField > | Rcyl_ |
Cached rotation tensors for cylindrical coordinates. More... | |
scalar | rMax_ |
Maximum radius. More... | |
autoPtr< trimModel > | trim_ |
Trim model. More... | |
bladeModel | blade_ |
Blade data. More... | |
profileModelList | profiles_ |
Profile data. 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 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... | |
Protected Attributes inherited from option | |
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... | |
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< option > | New (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... | |
Rotor disk source.
Cell based momemtum source which approximates the mean effects of rotor forces on a cylindrical region within the domain.
fields (U); // names of fields on which to apply source nBlades 3; // number of blades tipEffect 0.96; // normalised radius above which lift = 0 inletFlowType local; // inlet flow type specification geometryMode auto; // geometry specification refDirection (-1 0 0); // reference direction // - used as reference for psi angle trimModel fixed; // fixed || targetForce flapCoeffs { beta0 0; // coning angle [deg] beta1c 0; // lateral flapping coeff (cos coeff) beta2s 0; // longitudinal flapping coeff (sin coeff) } blade { // see bladeModel.H for documentation } profiles { profile1 { type lookup; // lookup || series ... // see lookupProfile.H or seriesProfile.H for documentation } profile2 { ... } }
Where: Valid options for the geometryMode
entry include:
Valid options for the inletFlowType
entry include:
Definition at line 127 of file rotorDiskSource.H.
enum geometryModeType |
Enumerator | |
---|---|
gmAuto | |
gmSpecified |
Definition at line 133 of file rotorDiskSource.H.
enum inletFlowType |
Enumerator | |
---|---|
ifFixed | |
ifSurfaceNormal | |
ifLocal |
Definition at line 140 of file rotorDiskSource.H.
rotorDiskSource | ( | const word & | name, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from components.
Definition at line 447 of file rotorDiskSource.C.
References dict, and Foam::read().
|
virtual |
Destructor.
Definition at line 478 of file rotorDiskSource.C.
|
protected |
Check data.
Definition at line 76 of file rotorDiskSource.C.
References Foam::abort(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
Set the face areas per cell, and optionally correct the rotor axis.
Definition at line 129 of file rotorDiskSource.C.
References Foam::fieldTypes::area, correct(), polyPatch::coupled(), Foam::expressions::patchExpr::debug, Foam::dimArea, Foam::endl(), forAll, Foam::identity(), Foam::Info, Foam::mag(), n, IOobject::NO_READ, IOobject::NO_WRITE, Foam::reduce(), polyPatch::start(), syncTools::swapBoundaryFaceList(), Foam::type(), and Foam::Zero.
|
protected |
Create the coordinate system.
Definition at line 265 of file rotorDiskSource.C.
References C::C(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::gSum(), Foam::Info, Foam::mag(), Foam::nl, Vector< Cmpt >::normalise(), Foam::constant::mathematical::pi(), Foam::reduce(), Foam::sqrt(), and Foam::Zero.
|
protected |
Construct geometry.
Rcyl_.reset(coordSys_.R(cc).ptr());
Definition at line 379 of file rotorDiskSource.C.
References beta(), Foam::constant::universal::c, Foam::cos(), forAll, Foam::max(), psi, s, Foam::sin(), and x.
|
protected |
Return the inlet flow field.
Definition at line 414 of file rotorDiskSource.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, tmp< T >::New(), U, and Foam::Zero.
|
protected |
Helper function to write rotor values.
Definition at line 175 of file rotorDiskSourceTemplates.C.
References Foam::abort(), Foam::dimless, Foam::FatalError, FatalErrorInFunction, field(), forAll, Foam::name(), tmp< T >::New(), IOobject::NO_READ, IOobject::NO_WRITE, Foam::HashTableOps::values(), and Foam::Zero.
TypeName | ( | "rotorDisk" | ) |
Runtime type information.
|
inline |
Return the reference density for incompressible case.
Definition at line 32 of file rotorDiskSourceI.H.
References rotorDiskSource::rhoRef_.
|
inline |
Return the rotational speed [rad/s].
Positive anti-clockwise when looking along -ve lift direction
Definition at line 38 of file rotorDiskSourceI.H.
|
inline |
Return the cell centre positions in local rotor frame.
(Cylindrical r-theta-z)
Definition at line 44 of file rotorDiskSourceI.H.
|
inline |
Return the rotor coordinate system (r-theta-z)
Definition at line 51 of file rotorDiskSourceI.H.
void calculate | ( | const RhoFieldType & | rho, |
const vectorField & | U, | ||
const scalarField & | thetag, | ||
vectorField & | force, | ||
const bool | divideVolume = true , |
||
const bool | output = true |
||
) | const |
Calculate forces.
Definition at line 39 of file rotorDiskSourceTemplates.C.
References alphaEff(), Foam::atan2(), Foam::endl(), f(), forAll, Foam::Info, Foam::invTransform(), Foam::magSqr(), Foam::max(), Foam::min(), Foam::neg(), Foam::nl, pDyn(), Foam::constant::mathematical::pi(), Foam::radToDeg(), Foam::reduce(), rho, Foam::transform(), Foam::constant::mathematical::twoPi(), Foam::type(), U, Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Source term to momentum equation.
Reimplemented from option.
Definition at line 485 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), and Foam::Zero.
|
virtual |
Source term to compressible momentum equation.
Reimplemented from option.
Definition at line 520 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), rho, and Foam::Zero.
|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 552 of file rotorDiskSource.C.
References Foam::checkData(), Foam::expressions::patchExpr::debug, Foam::degToRad(), dict, Foam::blockMeshTools::read(), Foam::rpmToRads(), and Foam::ensightOutput::writeField().
|
static |
Definition at line 138 of file rotorDiskSource.H.
|
static |
Definition at line 146 of file rotorDiskSource.H.
|
protected |
Reference density for incompressible case.
Definition at line 165 of file rotorDiskSource.H.
Referenced by rotorDiskSource::rhoRef().
|
protected |
Rotational speed [rad/s].
Positive anti-clockwise when looking along -ve lift direction
Definition at line 169 of file rotorDiskSource.H.
|
protected |
Number of blades.
Definition at line 172 of file rotorDiskSource.H.
|
protected |
Inlet flow type.
Definition at line 175 of file rotorDiskSource.H.
|
protected |
Inlet velocity for specified inflow.
Definition at line 178 of file rotorDiskSource.H.
|
protected |
Tip effect [0-1].
Ratio of blade radius beyond which lift=0
Definition at line 182 of file rotorDiskSource.H.
|
protected |
Blade flap coefficients [rad/s].
Definition at line 185 of file rotorDiskSource.H.
Cell centre positions in local rotor frame.
(Cylindrical r-theta-z)
Definition at line 189 of file rotorDiskSource.H.
Rotation tensor for flap angle.
Definition at line 192 of file rotorDiskSource.H.
|
protected |
Area [m2].
Definition at line 195 of file rotorDiskSource.H.
|
protected |
Rotor local cylindrical coordinate system (r-theta-z)
Definition at line 198 of file rotorDiskSource.H.
|
protected |
Cached rotation tensors for cylindrical coordinates.
Definition at line 201 of file rotorDiskSource.H.
|
protected |
Maximum radius.
Definition at line 204 of file rotorDiskSource.H.
Trim model.
Definition at line 207 of file rotorDiskSource.H.
|
protected |
Blade data.
Definition at line 210 of file rotorDiskSource.H.
|
protected |
Profile data.
Definition at line 213 of file rotorDiskSource.H.