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 cylindricalCS & | coordSys () const |
Return the rotor co-ordinate 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 () |
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 () |
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 NamedEnum< geometryModeType, 2 > | geometryModeTypeNames_ |
static const NamedEnum< inletFlowType, 3 > | inletFlowTypeNames_ |
Static Public Attributes inherited from cellSetOption | |
static const NamedEnum< selectionModeType, 4 > | selectionModeTypeNames_ |
Word 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 co-ordinate 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... | |
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 iinflow. 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 > | R_ |
Rotation tensor for flap angle. More... | |
List< tensor > | invR_ |
Inverse rotation tensor for flap angle. More... | |
List< scalar > | area_ |
Area [m^2]. More... | |
cylindricalCS | coordSys_ |
Rotor local cylindrical co-ordinate system (r, theta, z) More... | |
autoPtr< cylindrical > | cylindrical_ |
Rotor transformation co-ordinate system. 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 cell set 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... | |
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 122 of file rotorDiskSource.H.
enum geometryModeType |
Enumerator | |
---|---|
gmAuto | |
gmSpecified |
Definition at line 128 of file rotorDiskSource.H.
enum inletFlowType |
Enumerator | |
---|---|
ifFixed | |
ifSurfaceNormal | |
ifLocal |
Definition at line 135 of file rotorDiskSource.H.
rotorDiskSource | ( | const word & | name, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from components.
Definition at line 468 of file rotorDiskSource.C.
References Foam::read().
Referenced by rotorDiskSource::inflowVelocity().
|
virtual |
Destructor.
Definition at line 501 of file rotorDiskSource.C.
References rotorDiskSource::addSup().
|
protected |
Check data.
Definition at line 70 of file rotorDiskSource.C.
References Foam::abort(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::nl, and Foam::readScalar().
|
protected |
Set the face areas per cell, and optionally correct the rotor axis.
Definition at line 126 of file rotorDiskSource.C.
References polyPatch::coupled(), Foam::dimArea, Foam::endl(), forAll, Foam::identity(), Foam::Info, Foam::mag(), n, IOobject::NO_READ, IOobject::NO_WRITE, patchi, Foam::reduce(), Sf(), polyPatch::start(), syncTools::swapBoundaryFaceList(), Foam::type(), Ostream::write(), and Foam::Zero.
|
protected |
Create the co-ordinate system.
Definition at line 262 of file rotorDiskSource.C.
References C::C(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::gSum(), Foam::Info, Foam::mag(), Foam::nl, Foam::constant::mathematical::pi(), Foam::reduce(), Foam::sqrt(), and Foam::Zero.
|
protected |
Construct geometry.
Definition at line 397 of file rotorDiskSource.C.
References Foam::constant::universal::c, C::C(), Foam::cos(), forAll, rotorDiskSource::inflowVelocity(), Foam::max(), psi, s(), Foam::sin(), and x.
|
protected |
Return the inlet flow field.
Definition at line 432 of file rotorDiskSource.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, GeometricField< Type, PatchField, GeoMesh >::primitiveField(), rotorDiskSource::rotorDiskSource(), and Foam::Zero.
Referenced by rotorDiskSource::constructGeometry().
|
protected |
Helper function to write rotor values.
Definition at line 159 of file rotorDiskSourceTemplates.C.
References Foam::abort(), Foam::dimless, Foam::FatalError, FatalErrorInFunction, forAll, IOobject::NO_READ, IOobject::NO_WRITE, tmp< T >::ref(), List< T >::size(), and Foam::Zero.
Referenced by rotorDiskSource::calculate().
TypeName | ( | "rotorDisk" | ) |
Runtime type information.
|
inline |
Return the reference density for incompressible case.
Definition at line 30 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 36 of file rotorDiskSourceI.H.
References rotorDiskSource::omega_.
|
inline |
Return the cell centre positions in local rotor frame.
(Cylindrical r, theta, z)
Definition at line 42 of file rotorDiskSourceI.H.
References rotorDiskSource::x_.
|
inline |
Return the rotor co-ordinate system (r, theta, z)
Definition at line 48 of file rotorDiskSourceI.H.
References rotorDiskSource::coordSys_.
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 36 of file rotorDiskSourceTemplates.C.
References Foam::atan2(), Foam::endl(), f(), forAll, Foam::Info, Foam::magSqr(), Foam::max(), Foam::min(), Foam::neg(), Foam::nl, pDyn(), Foam::radToDeg(), Foam::reduce(), Foam::sign(), Foam::constant::mathematical::twoPi(), Foam::type(), rotorDiskSource::writeField(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Source term to momentum equation.
Reimplemented from option.
Definition at line 508 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), regIOobject::write(), and Foam::Zero.
Referenced by rotorDiskSource::~rotorDiskSource().
|
virtual |
Source term to compressible momentum equation.
Reimplemented from option.
Definition at line 548 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), regIOobject::write(), and Foam::Zero.
|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 585 of file rotorDiskSource.C.
References Foam::degToRad(), dictionary::lookup(), Foam::blockMeshTools::read(), Foam::readScalar(), and Foam::constant::mathematical::twoPi().
|
static |
Definition at line 133 of file rotorDiskSource.H.
|
static |
Definition at line 141 of file rotorDiskSource.H.
|
protected |
Reference density for incompressible case.
Definition at line 160 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 164 of file rotorDiskSource.H.
Referenced by rotorDiskSource::omega().
|
protected |
Number of blades.
Definition at line 167 of file rotorDiskSource.H.
|
protected |
Inlet flow type.
Definition at line 170 of file rotorDiskSource.H.
|
protected |
Inlet velocity for specified iinflow.
Definition at line 173 of file rotorDiskSource.H.
|
protected |
Tip effect [0-1].
Ratio of blade radius beyond which lift=0
Definition at line 177 of file rotorDiskSource.H.
|
protected |
Blade flap coefficients [rad/s].
Definition at line 180 of file rotorDiskSource.H.
Cell centre positions in local rotor frame.
(Cylindrical r, theta, z)
Definition at line 184 of file rotorDiskSource.H.
Referenced by rotorDiskSource::x().
Rotation tensor for flap angle.
Definition at line 187 of file rotorDiskSource.H.
Inverse rotation tensor for flap angle.
Definition at line 190 of file rotorDiskSource.H.
|
protected |
Area [m^2].
Definition at line 193 of file rotorDiskSource.H.
|
protected |
Rotor local cylindrical co-ordinate system (r, theta, z)
Definition at line 196 of file rotorDiskSource.H.
Referenced by rotorDiskSource::coordSys().
|
protected |
Rotor transformation co-ordinate system.
Definition at line 199 of file rotorDiskSource.H.
|
protected |
Maximum radius.
Definition at line 202 of file rotorDiskSource.H.
Trim model.
Definition at line 205 of file rotorDiskSource.H.
|
protected |
Blade data.
Definition at line 208 of file rotorDiskSource.H.
|
protected |
Profile data.
Definition at line 211 of file rotorDiskSource.H.