Rotor disk source. More...
Data Structures | |
struct | flapData |
Public Types | |
enum | geometryModeType { gmAuto, gmSpecified } |
enum | inletFlowType { ifFixed, ifSurfaceNormal, ifLocal } |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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 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... | |
![]() | |
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 [m2]. 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... | |
![]() | |
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... | |
![]() | |
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 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.
Source usage
Example usage:
rotorDiskSourceCoeffs { fieldNames (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 126 of file rotorDiskSource.H.
enum geometryModeType |
Enumerator | |
---|---|
gmAuto | |
gmSpecified |
Definition at line 132 of file rotorDiskSource.H.
enum inletFlowType |
Enumerator | |
---|---|
ifFixed | |
ifSurfaceNormal | |
ifLocal |
Definition at line 139 of file rotorDiskSource.H.
rotorDiskSource | ( | const word & | name, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from components.
Definition at line 469 of file rotorDiskSource.C.
References dict, and Foam::read().
|
virtual |
Destructor.
Definition at line 502 of file rotorDiskSource.C.
|
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 127 of file rotorDiskSource.C.
References correct(), polyPatch::coupled(), Foam::dimArea, Foam::endl(), forAll, Foam::identity(), Foam::Info, GeometricField::internalField(), Foam::mag(), n, IOobject::NO_READ, IOobject::NO_WRITE, Foam::reduce(), polyPatch::start(), syncTools::swapBoundaryFaceList(), Foam::type(), and Vector< scalar >::zero.
|
protected |
Create the co-ordinate system.
Definition at line 263 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(), test(), and Vector< scalar >::zero.
|
protected |
Construct geometry.
Definition at line 398 of file rotorDiskSource.C.
References beta(), Foam::constant::universal::c, C::C(), Foam::cos(), forAll, Foam::max(), psi, s(), Foam::sin(), and x.
|
protected |
Return the inlet flow field.
Definition at line 433 of file rotorDiskSource.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, U, and Vector< scalar >::zero.
|
protected |
Helper function to write rotor values.
Definition at line 162 of file rotorDiskSourceTemplates.C.
References Foam::abort(), Foam::dimless, Foam::FatalError, FatalErrorInFunction, forAll, Foam::name(), IOobject::NO_READ, IOobject::NO_WRITE, and List::size().
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.
|
inline |
Return the cell centre positions in local rotor frame.
(Cylindrical r, theta, z)
Definition at line 42 of file rotorDiskSourceI.H.
|
inline |
Return the rotor co-ordinate system (r, theta, z)
Definition at line 48 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 36 of file rotorDiskSourceTemplates.C.
References alphaEff, Foam::atan2(), Foam::endl(), f(), forAll, Foam::Info, Foam::magSqr(), Foam::max(), Foam::min(), Foam::neg(), Foam::nl, pDyn(), Foam::constant::mathematical::pi(), Foam::radToDeg(), Foam::reduce(), rho, 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 509 of file rotorDiskSource.C.
References fvMatrix::dimensions(), Foam::dimVolume, fvMatrix::psi(), and Vector< scalar >::zero.
|
virtual |
Source term to compressible momentum equation.
Reimplemented from option.
Definition at line 549 of file rotorDiskSource.C.
References fvMatrix::dimensions(), Foam::dimVolume, fvMatrix::psi(), rho, and Vector< scalar >::zero.
|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 586 of file rotorDiskSource.C.
References Foam::degToRad(), dict, dictionary::lookup(), Foam::read(), Foam::readScalar(), and Foam::constant::mathematical::twoPi().
|
static |
Definition at line 137 of file rotorDiskSource.H.
|
static |
Definition at line 145 of file rotorDiskSource.H.
|
protected |
Reference density for incompressible case.
Definition at line 164 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 168 of file rotorDiskSource.H.
|
protected |
Number of blades.
Definition at line 171 of file rotorDiskSource.H.
|
protected |
Inlet flow type.
Definition at line 174 of file rotorDiskSource.H.
|
protected |
Inlet velocity for specified iinflow.
Definition at line 177 of file rotorDiskSource.H.
|
protected |
Tip effect [0-1].
Ratio of blade radius beyond which lift=0
Definition at line 181 of file rotorDiskSource.H.
|
protected |
Blade flap coefficients [rad/s].
Definition at line 184 of file rotorDiskSource.H.
Cell centre positions in local rotor frame.
(Cylindrical r, theta, z)
Definition at line 188 of file rotorDiskSource.H.
Rotation tensor for flap angle.
Definition at line 191 of file rotorDiskSource.H.
Inverse rotation tensor for flap angle.
Definition at line 194 of file rotorDiskSource.H.
|
protected |
Area [m2].
Definition at line 197 of file rotorDiskSource.H.
|
protected |
Rotor local cylindrical co-ordinate system (r, theta, z)
Definition at line 200 of file rotorDiskSource.H.
|
protected |
Rotor transformation co-ordinate system.
Definition at line 203 of file rotorDiskSource.H.
|
protected |
Maximum radius.
Definition at line 206 of file rotorDiskSource.H.
Trim model.
Definition at line 209 of file rotorDiskSource.H.
|
protected |
Blade data.
Definition at line 212 of file rotorDiskSource.H.
|
protected |
Profile data.
Definition at line 215 of file rotorDiskSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.