rotorDisk Class Reference

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

Inheritance diagram for rotorDisk:
Collaboration diagram for rotorDisk:

Public Types

enum  geometryModeType { automatic , specified }
 
enum  inletFlowType { fixed , surfaceNormal , local }
 

Public Member Functions

 TypeName ("rotorDisk")
 Runtime type information. More...
 
 rotorDisk (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
virtual ~rotorDisk ()
 Destructor. More...
 
scalar rhoRef () const
 Return the reference density for incompressible case. More...
 
scalar omega () const
 Return the rotational speed [rad/s]. More...
 
const fvCellSet & set () const
 
const List< point > & x () const
 Return the cell centre positions in local rotor frame. More...
 
const coordinateSystems::cylindrical & coordSys () const
 Return the rotor co-ordinate system (r, theta, z) More...
 
virtual wordList addSupFields () const
 Return the list of fields for which the fvModel adds source term. 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 (const volVectorField &U, fvMatrix< vector > &eqn) const
 Source term to momentum equation. More...
 
virtual void addSup (const volScalarField &rho, const volVectorField &U, fvMatrix< vector > &eqn) const
 Source term to compressible momentum equation. More...
 
virtual bool movePoints ()
 Update for mesh motion. More...
 
virtual void topoChange (const polyTopoChangeMap &)
 Update topology using the given map. More...
 
virtual void mapMesh (const polyMeshMap &)
 Update from another mesh using the given map. More...
 
virtual void distribute (const polyDistributionMap &)
 Redistribute or update using the given distribution map. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
- Public Member Functions inherited from fvModel
 TypeName ("fvModel")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, fvModel, dictionary,(const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict),(name, modelType, mesh, dict))
 
 fvModel (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
autoPtr< fvModel > clone () const
 Return clone. More...
 
virtual ~fvModel ()
 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...
 
virtual bool addsSupToField (const word &fieldName) const
 Return true if the fvModel adds a source term to the given. More...
 
virtual scalar maxDeltaT () const
 Return the maximum time-step for stable operation. More...
 
virtual void addSup (fvMatrix< scalar > &eqn) const
 Add a source term to a field-less proxy equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const VolField< Type > &eqnField) const
 Add a source term to an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const VolField< Type > &field) const
 Return source for an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for an equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &rho, const VolField< Type > &field) const
 Return source for a compressible equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for a compressible equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > sourceProxy (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const volScalarField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const geometricOneField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > source (const geometricOneField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 Return source for a phase equation. More...
 
template<class Type >
tmp< fvMatrix< Type > > d2dt2 (const VolField< Type > &field) const
 Return source for an equation with a second time derivative. More...
 
virtual void preUpdateMesh ()
 Prepare for mesh update. More...
 
virtual void correct ()
 Correct the fvModel. More...
 
virtual bool write (const bool write=true) const
 Write fvModel data. More...
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
Foam::dimensionSet sourceDims (const dimensionSet &ds, const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
const Foam::word & fieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 
template<class AlphaRhoFieldType >
const Foam::word & fieldName (const AlphaRhoFieldType &alphaRhoField)
 
template<class Type , class ... AlphaRhoFieldTypes>
Foam::tmp< Foam::fvMatrix< Type > > sourceTerm (const VolField< Type > &eqnField, const dimensionSet &ds, const AlphaRhoFieldTypes &... alphaRhoFields) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > sourceProxy (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, const VolField< Type > &eqnField) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const geometricOneField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const volScalarField &alpha, const geometricOneField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > source (const geometricOneField &alpha, const volScalarField &rho, const VolField< Type > &field) const
 
template<class Type >
Foam::tmp< Foam::fvMatrix< Type > > d2dt2 (const VolField< Type > &field) const
 

Static Public Attributes

static const NamedEnum< geometryModeType, 2 > geometryModeTypeNames_
 
static const NamedEnum< inletFlowType, 3 > inletFlowTypeNames_
 

Additional Inherited Members

- Static Public Member Functions inherited from fvModel
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
static dimensionSet sourceDims (const dimensionSet &ds, const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 Return the dimensions of the matrix of a source term. More...
 
static const dimensionSet & sourceDims (const dimensionSet &ds)
 Return the dimensions of the matrix of a source term (base. More...
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
static const word & fieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 Return the name of the field associated with a source term. More...
 
template<class AlphaRhoFieldType >
static const word & fieldName (const AlphaRhoFieldType &alphaRhoField)
 Return the name of the field associated with a source term (base. More...
 
static const word & fieldName ()
 Return the name of the field associated with a source term. Special. More...
 
static autoPtr< fvModel > New (const word &name, const fvMesh &mesh, const dictionary &dict)
 Return a reference to the selected fvModel. More...
 
- Protected Member Functions inherited from fvModel
template<class Type >
void addSupType (const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to an equation. More...
 
template<class Type >
void addSupType (const volScalarField &rho, const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to a compressible equation. More...
 
template<class Type >
void addSupType (const volScalarField &alpha, const volScalarField &rho, const VolField< Type > &field, fvMatrix< Type > &eqn) const
 Add a source term to a phase equation. More...
 
template<class Type , class ... AlphaRhoFieldTypes>
tmp< fvMatrix< Type > > sourceTerm (const VolField< Type > &eqnField, const dimensionSet &ds, const AlphaRhoFieldTypes &... alphaRhoFields) const
 Return a source for an equation. More...
 

Detailed Description

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

Usage
Example usage:
rotorDisk1
{
    type            rotorDisk;

    U               U;          // Name of the velocity field

    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 for psi angle

    trimModel       fixed;      // Trim model; fixed or targetCoeff
    // see fixedTrim.H or targetCoeffTrim.H for documentation

    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;     // Profile model; lookup or series

            ...

            // see lookupProfile.H or seriesProfile.H for documentation
        }
        profile2
        {
            ...
        }
    }
}

Where: Valid fvModels for the geometryMode entry include:

  • auto : determine rotor coordinate system from cells
  • specified : specified coordinate system

Valid fvModels for the inletFlowType entry include:

  • fixed : specified velocity
  • local : use local flow conditions
  • surfaceNormal : specified normal velocity (positive towards rotor)
See also
Foam::bladeModel Foam::lookupProfile Foam::seriesProfile
Source files

Definition at line 122 of file rotorDisk.H.

Member Enumeration Documentation

◆ geometryModeType

Enumerator
automatic 
specified 

Definition at line 128 of file rotorDisk.H.

◆ inletFlowType

Enumerator
fixed 
surfaceNormal 
local 

Definition at line 135 of file rotorDisk.H.

Constructor & Destructor Documentation

◆ rotorDisk()

rotorDisk ( const word &  name,
const word &  modelType,
const fvMesh &  mesh,
const dictionary &  dict 
)

Construct from components.

Definition at line 506 of file rotorDisk.C.

◆ ~rotorDisk()

~rotorDisk ( )
virtual

Destructor.

Definition at line 541 of file rotorDisk.C.

Member Function Documentation

◆ 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 rotorDiskI.H.

◆ 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 rotorDiskI.H.

◆ set()

const Foam::fvCellSet & set ( ) const
inline

Definition at line 42 of file rotorDiskI.H.

◆ 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 48 of file rotorDiskI.H.

◆ coordSys()

const Foam::coordinateSystems::cylindrical & coordSys ( ) const
inline

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

Definition at line 55 of file rotorDiskI.H.

◆ addSupFields()

Foam::wordList addSupFields ( ) const
virtual

Return the list of fields for which the fvModel adds source term.

to the transport equation

Reimplemented from fvModel.

Definition at line 547 of file rotorDisk.C.

◆ 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 ( const volVectorField &  U,
fvMatrix< vector > &  eqn 
) const
virtual

Source term to momentum equation.

Definition at line 553 of file rotorDisk.C.

References Foam::fvPatchDistWave::calculate(), fvMatrix< Type >::dimensions(), Foam::dimVolume, Foam::name(), U, regIOobject::write(), and Foam::Zero.

Here is the call graph for this function:

◆ addSup() [2/2]

void addSup ( const volScalarField &  rho,
const volVectorField &  U,
fvMatrix< vector > &  eqn 
) const
virtual

Source term to compressible momentum equation.

Definition at line 593 of file rotorDisk.C.

References Foam::fvPatchDistWave::calculate(), fvMatrix< Type >::dimensions(), Foam::dimVolume, Foam::name(), rho, U, regIOobject::write(), and Foam::Zero.

Here is the call graph for this function:

◆ movePoints()

bool movePoints ( )
virtual

Update for mesh motion.

Implements fvModel.

Definition at line 631 of file rotorDisk.C.

◆ topoChange()

void topoChange ( const polyTopoChangeMap &  map)
virtual

Update topology using the given map.

Implements fvModel.

Definition at line 638 of file rotorDisk.C.

◆ mapMesh()

void mapMesh ( const polyMeshMap &  map)
virtual

Update from another mesh using the given map.

Implements fvModel.

Definition at line 644 of file rotorDisk.C.

◆ distribute()

void distribute ( const polyDistributionMap &  map)
virtual

Redistribute or update using the given distribution map.

Implements fvModel.

Definition at line 650 of file rotorDisk.C.

◆ read()

bool read ( const dictionary &  dict)
virtual

Read source dictionary.

Reimplemented from fvModel.

Definition at line 656 of file rotorDisk.C.

References dict, and fvModel::read().

Here is the call graph for this function:

Member Data Documentation

◆ geometryModeTypeNames_

const Foam::NamedEnum< Foam::fv::rotorDisk::geometryModeType, 2 > geometryModeTypeNames_
static

Definition at line 133 of file rotorDisk.H.

◆ inletFlowTypeNames_

const Foam::NamedEnum< Foam::fv::rotorDisk::inletFlowType, 3 > inletFlowTypeNames_
static

Definition at line 141 of file rotorDisk.H.


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