rigidBodyPropellerDisk Class Reference

Disk momentum source derived from Foam::fv::propellerDisk with support for motion of the body the propeller is attached to. More...

Inheritance diagram for rigidBodyPropellerDisk:
Collaboration diagram for rigidBodyPropellerDisk:

Public Member Functions

 TypeName ("rigidBodyPropellerDisk")
 Runtime type information. More...
 
 rigidBodyPropellerDisk (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
 rigidBodyPropellerDisk (const rigidBodyPropellerDisk &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~rigidBodyPropellerDisk ()
 Destructor. More...
 
virtual vector centre () const
 Return the current propeller centre. More...
 
label bodyID () const
 
- Public Member Functions inherited from propellerDisk
 TypeName ("propellerDisk")
 Runtime type information. More...
 
 propellerDisk (const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
 propellerDisk (const propellerDisk &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~propellerDisk ()
 Destructor. More...
 
vector force () const
 Return the current force of the fluid on the propeller. More...
 
vector moment () const
 Return the current moment of the fluid on the propeller. More...
 
virtual wordList addSupFields () const
 Return the list of fields for which the fvModel adds source term. 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 void addSup (const volScalarField &alpha, const volScalarField &rho, const volVectorField &U, fvMatrix< vector > &eqn) const
 Explicit and implicit sources for phase equations. 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 dictionary. More...
 
void operator= (const propellerDisk &)=delete
 Disallow default bitwise assignment. 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< fvModelclone () const
 Return clone. More...
 
virtual ~fvModel ()
 Destructor. More...
 
const wordname () const
 Return const access to the source name. More...
 
const wordkeyword () const
 Return name as the keyword. More...
 
const fvMeshmesh () const
 Return const access to the mesh database. More...
 
const dictionarycoeffs (const dictionary &) const
 Return the coefficients sub-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::wordfieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 
template<class AlphaRhoFieldType >
const Foam::wordfieldName (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
 

Protected Member Functions

virtual void readCoeffs (const dictionary &dict)
 Read the model coefficients. More...
 
virtual vector normal () const
 Return the current propeller normal. More...
 
- Protected Member Functions inherited from propellerDisk
virtual scalar n () const
 Return the rotation speed. More...
 
virtual void correctn (const scalar T) const
 No rotation speed correction. More...
 
scalar diskThickness (const vector &centre) const
 Computes the thickness of the disk in streamwise direction. More...
 
scalar J (const vectorField &U, const vector &nHat) const
 Return the normalised flow-rate through the disk. 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from fvModel
static const dictionarycoeffs (const word &modelType, const dictionary &)
 Return the coefficients sub-dictionary for a given model type. More...
 
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 dimensionSetsourceDims (const dimensionSet &ds)
 Return the dimensions of the matrix of a source term (base. More...
 
template<class AlphaRhoFieldType , class ... AlphaRhoFieldTypes>
static const wordfieldName (const AlphaRhoFieldType &alphaRhoField, const AlphaRhoFieldTypes &... alphaRhoFields)
 Return the name of the field associated with a source term. More...
 
template<class AlphaRhoFieldType >
static const wordfieldName (const AlphaRhoFieldType &alphaRhoField)
 Return the name of the field associated with a source term (base. More...
 
static const wordfieldName ()
 Return the name of the field associated with a source term. Special. More...
 
static autoPtr< fvModelNew (const word &name, const fvMesh &mesh, const dictionary &dict)
 Return a reference to the selected fvModel. More...
 
- Static Public Attributes inherited from fvModel
static const wordHashSet keywords
 The keywords read by this class. More...
 
- Protected Attributes inherited from propellerDisk
fvCellZone zone_
 The cellZone the fvConstraint applies to. More...
 
word phaseName_
 The name of the phase to which this fvModel applies. More...
 
word UName_
 Name of the velocity field. More...
 
vector centre_
 Propeller disk centre. More...
 
vector normal_
 Propeller disk normal direction. More...
 
scalar n_
 Rotation speed [1/s]. More...
 
scalar rotationDir_
 Rotation direction (obtained from the sign of n_) More...
 
scalar dProp_
 Propeller diameter. More...
 
scalar dHub_
 Hub diameter. More...
 
autoPtr< Function1< vector2D > > propellerFunction_
 Propeller function. More...
 
autoPtr< volVectorField::InternalforcePtr_
 
vector force_
 Current force of the fluid on the propeller. More...
 
vector moment_
 Current moment of the fluid on the propeller. More...
 
Switch log_
 Optional switch to enable logging of integral properties. More...
 
autoPtr< functionObjects::logFilelogFile_
 Optional log file. More...
 

Detailed Description

Disk momentum source derived from Foam::fv::propellerDisk with support for motion of the body the propeller is attached to.

Usage
Example usage:
diskSource
{
    type            rigidBodyPropellerDisk;

    libs            ("librigidBodyPropellerDisk.so");

    cellZone        propeller;

    body            hull;

    centre          (0 0 0);    // Centre of the propeller
    normal          (1 0 0);    // Normal direction of the propeller

    n               26.03;      // Rotation speed [1/s]

    dPropeller      0.203;      // Propeller diameter
    dHub            0.039179;   // Hub diameter

    propellerCurve
    {
        type table;

        //   J     Kt     Kq
        values
        (
            (0.10 (0.3267 0.03748))
            (0.15 (0.3112 0.03629))
            (0.20 (0.2949 0.03500))
            (0.25 (0.2777 0.03361))
            (0.30 (0.2598 0.03210))
            (0.35 (0.2410 0.03047))
            (0.40 (0.2214 0.02871))
            (0.45 (0.2010 0.02682))
            (0.50 (0.1798 0.02479))
            (0.55 (0.1577 0.02261))
            (0.60 (0.1349 0.02027))
            (0.65 (0.1112 0.01777))
            (0.70 (0.0867 0.01509))
            (0.75 (0.0614 0.01224))
            (0.80 (0.0353 0.00921))
        );
    }
}
See also
Foam::fv::propellerDisk
Source files

Definition at line 104 of file rigidBodyPropellerDisk.H.

Constructor & Destructor Documentation

◆ rigidBodyPropellerDisk() [1/2]

rigidBodyPropellerDisk ( const word name,
const word modelType,
const fvMesh mesh,
const dictionary dict 
)

Construct from components.

Definition at line 80 of file rigidBodyPropellerDisk.C.

References fvModel::coeffs(), dict, and rigidBodyPropellerDisk::readCoeffs().

Here is the call graph for this function:

◆ rigidBodyPropellerDisk() [2/2]

Disallow default bitwise copy construction.

◆ ~rigidBodyPropellerDisk()

virtual ~rigidBodyPropellerDisk ( )
inlinevirtual

Destructor.

Definition at line 152 of file rigidBodyPropellerDisk.H.

Member Function Documentation

◆ readCoeffs()

void readCoeffs ( const dictionary dict)
protectedvirtual

Read the model coefficients.

Reimplemented from propellerDisk.

Definition at line 50 of file rigidBodyPropellerDisk.C.

References rigidBodyModel::bodyIndex(), dict, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, and propellerDisk::readCoeffs().

Referenced by rigidBodyPropellerDisk::rigidBodyPropellerDisk().

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

◆ normal()

Foam::vector normal ( ) const
protectedvirtual

Return the current propeller normal.

Reimplemented from propellerDisk.

Definition at line 72 of file rigidBodyPropellerDisk.C.

◆ TypeName()

TypeName ( "rigidBodyPropellerDisk"  )

Runtime type information.

◆ centre()

Foam::vector centre ( ) const
virtual

Return the current propeller centre.

Reimplemented from propellerDisk.

Definition at line 66 of file rigidBodyPropellerDisk.C.

Referenced by propellerDiskForce::restrain().

Here is the caller graph for this function:

◆ bodyID()

label bodyID ( ) const
inline

Definition at line 161 of file rigidBodyPropellerDisk.H.

Referenced by propellerDiskForce::restrain().

Here is the caller graph for this function:

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