Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
rotorDiskSource Class Reference

Rotor disk source. More...

Inheritance diagram for rotorDiskSource:
Inheritance graph
[legend]
Collaboration diagram for rotorDiskSource:
Collaboration graph
[legend]

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 cylindricalCScoordSys () 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 selectionModeTypeselectionMode () const
 Return const access to the cell selection mode. More...
 
const wordcellSetName () 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 labelListcells () 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< optionclone () const
 Return clone. More...
 
virtual ~option ()
 Destructor. More...
 
const wordname () const
 Return const access to the source name. More...
 
const fvMeshmesh () const
 Return const access to the mesh database. More...
 
const dictionarycoeffs () 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...
 
Switchactive ()
 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< vectorFieldinflowVelocity (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< pointx_
 Cell centre positions in local rotor frame. More...
 
List< tensorR_
 Rotation tensor for flap angle. More...
 
List< tensorinvR_
 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< cylindricalcylindrical_
 Rotor transformation co-ordinate system. More...
 
scalar rMax_
 Maximum radius. More...
 
autoPtr< trimModeltrim_
 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< pointpoints_
 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 fvMeshmesh_
 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< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 Return a reference to the selected fvOption model. More...
 

Detailed Description

Rotor disk source.

Cell based momemtum source which approximates the mean effects of rotor forces on a cylindrical region within the domain.

Usage
Example usage:
    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:

See also
Foam::bladeModel Foam::lookupProfile Foam::seriesProfile
Source files

Definition at line 122 of file rotorDiskSource.H.

Member Enumeration Documentation

◆ geometryModeType

Enumerator
gmAuto 
gmSpecified 

Definition at line 128 of file rotorDiskSource.H.

◆ inletFlowType

Enumerator
ifFixed 
ifSurfaceNormal 
ifLocal 

Definition at line 135 of file rotorDiskSource.H.

Constructor & Destructor Documentation

◆ rotorDiskSource()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~rotorDiskSource()

~rotorDiskSource ( )
virtual

Destructor.

Definition at line 501 of file rotorDiskSource.C.

References rotorDiskSource::addSup().

Here is the call graph for this function:

Member Function Documentation

◆ checkData()

void checkData ( )
protected

Check data.

Definition at line 70 of file rotorDiskSource.C.

References Foam::abort(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::nl, and Foam::readScalar().

Here is the call graph for this function:

◆ setFaceArea()

void setFaceArea ( vector axis,
const bool  correct 
)
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(), polyPatch::start(), syncTools::swapBoundaryFaceList(), Foam::type(), Ostream::write(), and Foam::Zero.

Here is the call graph for this function:

◆ createCoordinateSystem()

void createCoordinateSystem ( )
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.

Here is the call graph for this function:

◆ constructGeometry()

void constructGeometry ( )
protected

Construct geometry.

Definition at line 397 of file rotorDiskSource.C.

References beta(), Foam::constant::universal::c, C::C(), Foam::cos(), forAll, rotorDiskSource::inflowVelocity(), Foam::max(), psi, s(), Foam::sin(), and x.

Here is the call graph for this function:

◆ inflowVelocity()

Foam::tmp< Foam::vectorField > inflowVelocity ( const volVectorField U) const
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeField()

void writeField ( const word name,
const List< Type > &  values,
const bool  writeNow = false 
) const
protected

Helper function to write rotor values.

Definition at line 162 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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeName()

TypeName ( "rotorDisk"  )

Runtime type information.

◆ rhoRef()

Foam::scalar rhoRef ( ) const
inline

Return the reference density for incompressible case.

Definition at line 30 of file rotorDiskSourceI.H.

References rotorDiskSource::rhoRef_.

◆ omega()

Foam::scalar omega ( ) const
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_.

◆ x()

const Foam::List< Foam::point > & x ( ) const
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_.

◆ coordSys()

const Foam::cylindricalCS & coordSys ( ) const
inline

Return the rotor co-ordinate system (r, theta, z)

Definition at line 48 of file rotorDiskSourceI.H.

References rotorDiskSource::coordSys_.

◆ calculate()

void calculate ( const RhoFieldType &  rho,
const vectorField U,
const scalarField thetag,
vectorField force,
const bool  divideVolume = true,
const bool  output = true 
) const

◆ addSup() [1/2]

void addSup ( fvMatrix< vector > &  eqn,
const label  fieldi 
)
virtual

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addSup() [2/2]

void addSup ( const volScalarField rho,
fvMatrix< vector > &  eqn,
const label  fieldi 
)
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.

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
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().

Here is the call graph for this function:

Member Data Documentation

◆ geometryModeTypeNames_

const NamedEnum< fv::rotorDiskSource::geometryModeType, 2 > geometryModeTypeNames_
static

Definition at line 133 of file rotorDiskSource.H.

◆ inletFlowTypeNames_

const NamedEnum< fv::rotorDiskSource::inletFlowType, 3 > inletFlowTypeNames_
static

Definition at line 141 of file rotorDiskSource.H.

◆ rhoRef_

scalar rhoRef_
protected

Reference density for incompressible case.

Definition at line 160 of file rotorDiskSource.H.

Referenced by rotorDiskSource::rhoRef().

◆ omega_

scalar omega_
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().

◆ nBlades_

label nBlades_
protected

Number of blades.

Definition at line 167 of file rotorDiskSource.H.

◆ inletFlow_

inletFlowType inletFlow_
protected

Inlet flow type.

Definition at line 170 of file rotorDiskSource.H.

◆ inletVelocity_

vector inletVelocity_
protected

Inlet velocity for specified iinflow.

Definition at line 173 of file rotorDiskSource.H.

◆ tipEffect_

scalar tipEffect_
protected

Tip effect [0-1].

Ratio of blade radius beyond which lift=0

Definition at line 177 of file rotorDiskSource.H.

◆ flap_

flapData flap_
protected

Blade flap coefficients [rad/s].

Definition at line 180 of file rotorDiskSource.H.

◆ x_

List<point> x_
protected

Cell centre positions in local rotor frame.

(Cylindrical r, theta, z)

Definition at line 184 of file rotorDiskSource.H.

Referenced by rotorDiskSource::x().

◆ R_

List<tensor> R_
protected

Rotation tensor for flap angle.

Definition at line 187 of file rotorDiskSource.H.

◆ invR_

List<tensor> invR_
protected

Inverse rotation tensor for flap angle.

Definition at line 190 of file rotorDiskSource.H.

◆ area_

List<scalar> area_
protected

Area [m2].

Definition at line 193 of file rotorDiskSource.H.

◆ coordSys_

cylindricalCS coordSys_
protected

Rotor local cylindrical co-ordinate system (r, theta, z)

Definition at line 196 of file rotorDiskSource.H.

Referenced by rotorDiskSource::coordSys().

◆ cylindrical_

autoPtr<cylindrical> cylindrical_
protected

Rotor transformation co-ordinate system.

Definition at line 199 of file rotorDiskSource.H.

◆ rMax_

scalar rMax_
protected

Maximum radius.

Definition at line 202 of file rotorDiskSource.H.

◆ trim_

autoPtr<trimModel> trim_
protected

Trim model.

Definition at line 205 of file rotorDiskSource.H.

◆ blade_

bladeModel blade_
protected

Blade data.

Definition at line 208 of file rotorDiskSource.H.

◆ profiles_

profileModelList profiles_
protected

Profile data.

Definition at line 211 of file rotorDiskSource.H.


The documentation for this class was generated from the following files: