Applies cell-based momentum sources on velocity (i.e. U) within a specified cylindrical region to approximate the mean effects of rotor forces.
More...


Classes | |
| struct | flapData |
Public Types | |
| enum | geometryModeType { gmAuto, gmSpecified } |
| Options for the geometry type specification. More... | |
| enum | inletFlowType { ifFixed, ifSurfaceNormal, ifLocal } |
| Options for the inlet flow type specification. More... | |
Public Types inherited from cellSetOption | |
| enum | selectionModeType { smAll, smCellSet, smCellZone, smPoints, smGeometric, smCellType } |
| 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... | |
| rotorDiskSource (const rotorDiskSource &)=delete | |
| No copy construct. More... | |
| void | operator= (const rotorDiskSource &)=delete |
| No copy assignment. More... | |
| virtual | ~rotorDiskSource ()=default |
| 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) |
| Add explicit contribution to momentum equation. More... | |
| virtual void | addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi) |
| Add explicit contribution 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 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... | |
| bool | useSubMesh () const noexcept |
| True if sub-selection should be used. More... | |
| selectionModeType | selectionMode () const noexcept |
| Return the cell selection mode. More... | |
| const wordRes & | selectionNames () const noexcept |
| Return const access to the selection names (set or zone selection) More... | |
| const wordRe & | zoneName () const |
| Return const access to the first set/zone name. More... | |
| 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... | |
| const word & | cellSetName () const |
| The name of the cell set/zone [as a word] for "cellSet" / "cellZone" selection modes) 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 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< 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 | 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... | |
Static Public Attributes | |
| static const Enum< geometryModeType > | geometryModeTypeNames_ |
| Names for geometryModeType. More... | |
| static const Enum< inletFlowType > | inletFlowTypeNames_ |
| Names for inletFlowType. More... | |
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 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... | |
Protected Member Functions inherited from option | |
| void | resetApplied () |
| Resize/reset applied flag list for all fieldNames_ entries. 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_ |
| Start time of fvOption. More... | |
| scalar | duration_ |
| Duration of fvOption execution starting from timeStart. More... | |
| selectionModeType | selectionMode_ |
| Cell selection mode. More... | |
| wordRes | selectionNames_ |
| Face selection names (for set or zone selections) More... | |
| List< point > | points_ |
| List of points for "points" selectionMode. More... | |
| dictionary | geometricSelection_ |
| Dictionary entries for "geometric" (topoSetCellSource) selection. 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... | |
| 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... | |
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... | |
Applies cell-based momentum sources on velocity (i.e. U) within a specified cylindrical region to approximate the mean effects of rotor forces.
U | Velocity [m/s]
Required fields:
U | Velocity [m/s]
constant/fvOptions: rotorDiskSource1 { Mandatory entries (unmodifiable) type rotorDiskSource;Mandatory entries (runtime modifiable) fields (<field1> <field2> ... <fieldN>); rhoRef 1.0; rpm 5.5; nBlades 3; inletFlowType local; geometryMode auto; tipEffect 0.96; // [0, 1] refDirection (-1 0 0 ); flapCoeffs { beta0 0.0; beta1c 0.0; beta2s 0.0; }
trimModel fixed;
blade { see bladeModel.H for documentation }
profiles { profile1 { type lookup; // lookup || series ... see lookupProfile.H or seriesProfile.H for documentation } profile2 { ... } }
Conditional mandatory entries (runtime modifiable)
when inletFlowType=fixed inletVelocity (1 0 0);
when inletFlowType=surfaceNormal inletNormalVelocity 5.0;
when geometryMode=auto pointAbove (1 0 0);
when geometryMode=specified origin (0 0 0); axis (1 0 0);
Mandatory/Optional (inherited) entries ... }
where the entries mean:
| Property | Description | Type | Reqd | Dflt |
|---|---|---|---|---|
type | Type name: rotorDiskSource | word | yes | - |
fields | Names of operand fields | wordList | yes | - |
rhoRef | Reference density for incompressible case | scalar | yes | - |
rpm | Rotational speed [rad/s] | scalar | yes | - |
nBlades | Number of rotor blades | label | yes | - |
tipEffect | Ratio of blade radius beyond which lift=0 | scalar | yes | - |
refDirection | Reference direction used as reference for psi angle | vector | yes | - |
beta0 | Coning angle [deg] | scalar | yes | - |
beta1c | Lateral flapping coeff (cos coeff) [deg] | scalar | yes | - |
beta2s | Longitudinal flapping coeff (sin coeff) [deg] | scalar | yes | - |
inletFlowType | Inlet flow type specification | word | yes | - |
inletVelocity | Inlet velocity [m/s] | vector | cndtnl | - |
inletNormalVelocity | Inlet normal velocity magnitude | scalar | cndtnl | - |
geometryMode | Geometry mode specification | word | yes | - |
pointAbove | Correct the axis direction using a point above the rotor | vector | cndtnl | - |
origin | Origin of the specified coordinate system | vector | cndtnl | - |
axis | Axis of the specified coordinate system | vector | cndtnl | - |
trimModel | Trim model specification | word | yes | - |
blade | Blade properties | dictionary | yes | - |
The inherited entries are elaborated in:
Options for the inletFlowType entry:
fixed | Use a specified velocity
local | Use local flow conditions
surfaceNormal | Use a specified normal velocity (positive towards rotor)Options for the geometryMode entry:
auto | Determine rotor coordinate system from selected cells
specified | Use a specified coordinate systemOptions for the trimModel entry:
fixed | Fixed blade/angle characteristics
targetForce | Target thrust/torque by using time-variant blade characs.rpm is positive anti-clockwise when looking along -ve lift direction.Definition at line 326 of file rotorDiskSource.H.
| enum geometryModeType |
Options for the geometry type specification.
| Enumerator | |
|---|---|
| gmAuto | |
| gmSpecified | |
Definition at line 337 of file rotorDiskSource.H.
| enum inletFlowType |
Options for the inlet flow type specification.
| Enumerator | |
|---|---|
| ifFixed | |
| ifSurfaceNormal | |
| ifLocal | |
Definition at line 351 of file rotorDiskSource.H.
| rotorDiskSource | ( | const word & | name, |
| const word & | modelType, | ||
| const dictionary & | dict, | ||
| const fvMesh & | mesh | ||
| ) |
Construct from components.
Definition at line 439 of file rotorDiskSource.C.
References dict, and Foam::read().

|
delete |
No copy construct.
|
virtualdefault |
Destructor.
|
protected |
Check data.
Definition at line 69 of file rotorDiskSource.C.
References Foam::abort(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.

|
protected |
Set the face areas per cell, and optionally correct the rotor axis.
Definition at line 121 of file rotorDiskSource.C.
References Foam::fieldTypes::area, correct, Foam::ensightOutput::debug, Foam::dimArea, Foam::endl(), forAll, Foam::identity(), Foam::Info, Foam::mag(), n, IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, pbm, pp(), Foam::reduce(), syncTools::swapBoundaryFaceList(), Foam::type(), and Foam::Zero.

|
protected |
Create the coordinate system.
Definition at line 257 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.
Rcyl_.reset(coordSys_.R(cc).ptr());
Definition at line 371 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 406 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 168 of file rotorDiskSourceTemplates.C.
References Foam::abort(), Foam::dimless, Foam::FatalError, FatalErrorInFunction, field(), forAll, Foam::name(), tmp< T >::New(), IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, Foam::HashTableOps::values(), and Foam::Zero.

| TypeName | ( | "rotorDisk" | ) |
Runtime type information.
|
delete |
No copy assignment.
|
inline |
Return the reference density for incompressible case.
Definition at line 25 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 31 of file rotorDiskSourceI.H.
|
inline |
Return the cell centre positions in local rotor frame.
(Cylindrical r-theta-z)
Definition at line 37 of file rotorDiskSourceI.H.
|
inline |
Return the rotor coordinate system (r-theta-z)
Definition at line 44 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 32 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, Foam::output(), pDyn(), Foam::constant::mathematical::pi(), Foam::radToDeg(), Foam::reduce(), rho, Foam::transform(), Foam::constant::mathematical::twoPi(), Foam::type(), and U.

Add explicit contribution to momentum equation.
Reimplemented from option.
Definition at line 471 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), regIOobject::write(), and Foam::Zero.

|
virtual |
Add explicit contribution to compressible momentum equation.
Reimplemented from option.
Definition at line 506 of file rotorDiskSource.C.
References fvMatrix< Type >::dimensions(), Foam::dimVolume, fvMatrix< Type >::psi(), rho, regIOobject::write(), and Foam::Zero.

|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 538 of file rotorDiskSource.C.
References Foam::checkData(), Foam::ensightOutput::debug, Foam::degToRad(), dict, cellSetOption::read(), option::resetApplied(), Foam::rpmToRads(), and Foam::ensightOutput::writeField().

|
static |
Names for geometryModeType.
Definition at line 346 of file rotorDiskSource.H.
|
static |
Names for inletFlowType.
Definition at line 361 of file rotorDiskSource.H.
|
protected |
Reference density for incompressible case.
Definition at line 382 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 389 of file rotorDiskSource.H.
|
protected |
Number of blades.
Definition at line 394 of file rotorDiskSource.H.
|
protected |
Inlet flow type.
Definition at line 399 of file rotorDiskSource.H.
|
protected |
Inlet velocity for specified inflow.
Definition at line 404 of file rotorDiskSource.H.
|
protected |
Tip effect [0-1].
Ratio of blade radius beyond which lift=0
Definition at line 411 of file rotorDiskSource.H.
|
protected |
Blade flap coefficients [rad/s].
Definition at line 416 of file rotorDiskSource.H.
Cell centre positions in local rotor frame.
(Cylindrical r-theta-z)
Definition at line 423 of file rotorDiskSource.H.
Rotation tensor for flap angle.
Definition at line 428 of file rotorDiskSource.H.
|
protected |
Area [m2].
Definition at line 433 of file rotorDiskSource.H.
|
protected |
Rotor local cylindrical coordinate system (r-theta-z)
Definition at line 438 of file rotorDiskSource.H.
|
protected |
Cached rotation tensors for cylindrical coordinates.
Definition at line 443 of file rotorDiskSource.H.
|
protected |
Maximum radius.
Definition at line 448 of file rotorDiskSource.H.
Trim model.
Definition at line 453 of file rotorDiskSource.H.
|
protected |
Blade data.
Definition at line 458 of file rotorDiskSource.H.
|
protected |
Profile data.
Definition at line 463 of file rotorDiskSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.