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

Applies sources on velocity (i.e. U) within a specified region to enable actuator disk models for aero/hydro thrust loading of horizontal axis turbines on surrounding flow field in terms of energy conversion processes. More...

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

Public Member Functions

 TypeName ("actuationDiskSource")
 
 actuationDiskSource ()=delete
 
 actuationDiskSource (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
 actuationDiskSource (const actuationDiskSource &)=delete
 
void operator= (const actuationDiskSource &)=delete
 
virtual ~actuationDiskSource ()=default
 
const vectordiskDir () const
 
scalar diskArea () const
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual bool read (const dictionary &dict)
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
virtual ~cellSetOption ()=default
 
scalar timeStart () const noexcept
 
scalar duration () const noexcept
 
bool inTimeLimits (const scalar timeValue) const
 
selectionModeType selectionMode () const noexcept
 
bool useSubMesh () const noexcept
 
const wordcellSetName () const noexcept
 
scalar V () const noexcept
 
const labelListcells () const noexcept
 
scalar timeStart (scalar val) noexcept
 
scalar duration (scalar val) noexcept
 
virtual bool isActive ()
 
- Public Member Functions inherited from option
 TypeName ("option")
 
 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)
 
autoPtr< optionclone () const
 
virtual ~option ()=default
 
const wordname () const noexcept
 
const fvMeshmesh () const noexcept
 
const dictionarycoeffs () const noexcept
 
bool active () const noexcept
 
void setApplied (const label fieldi)
 
bool active (const bool on) noexcept
 
virtual label applyToField (const word &fieldName) const
 
virtual void checkApplied () const
 
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< 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
 
virtual void writeFooter (Ostream &) const
 
virtual void writeData (Ostream &) const
 
- Public Member Functions inherited from writeFile
 writeFile (const objectRegistry &obr, const fileName &prefix, const word &name="undefined", const bool writeToFile=true)
 
 writeFile (const objectRegistry &obr, const fileName &prefix, const word &name, const dictionary &dict, const bool writeToFile=true)
 
 writeFile (const writeFile &wf)
 
virtual ~writeFile ()=default
 
virtual OFstreamfile ()
 
virtual bool writeToFile () const
 
virtual bool canWriteHeader () const
 
virtual label charWidth () const
 
virtual void writeCommented (Ostream &os, const string &str) const
 
virtual void writeTabbed (Ostream &os, const string &str) const
 
virtual void writeHeader (Ostream &os, const string &str) const
 
virtual void writeCurrentTime (Ostream &os) const
 
virtual void writeBreak (Ostream &os) const
 
template<class Type >
void writeHeaderValue (Ostream &os, const string &property, const Type &value) const
 

Protected Types

enum  forceMethodType { FROUDE, VARIABLE_SCALING }
 
enum  monitorMethodType { POINTS, CELLSET }
 

Protected Member Functions

virtual void writeFileHeader (Ostream &os)
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 
void setCellSelection ()
 
void setVol ()
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Member Functions inherited from writeFile
void initStream (Ostream &os) const
 
fileName baseFileDir () const
 
fileName baseTimeDir () const
 
virtual autoPtr< OFstreamcreateFile (const word &name, scalar timeValue) const
 
virtual autoPtr< OFstreamcreateFile (const word &name) const
 
virtual void resetFile (const word &name)
 
Omanip< int > valueWidth (const label offset=0) const
 
void operator= (const writeFile &)=delete
 

Protected Attributes

enum forceMethodType forceMethod_
 
enum monitorMethodType monitorMethod_
 
label sink_
 
scalar writeFileStart_
 
scalar writeFileEnd_
 
scalar diskArea_
 
vector diskDir_
 
autoPtr< Function1< scalar > > UvsCpPtr_
 
autoPtr< Function1< scalar > > UvsCtPtr_
 
labelList monitorCells_
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 
scalar duration_
 
selectionModeType selectionMode_
 
word cellSetName_
 
List< pointpoints_
 
labelList cells_
 
scalar V_
 
- Protected Attributes inherited from option
const word name_
 
const word modelType_
 
const fvMeshmesh_
 
dictionary dict_
 
dictionary coeffs_
 
wordList fieldNames_
 
List< boolapplied_
 
bool active_
 
- Protected Attributes inherited from writeFile
const objectRegistryfileObr_
 
const fileName prefix_
 
word fileName_
 
autoPtr< OFstreamfilePtr_
 
label writePrecision_
 
bool writeToFile_
 
bool updateHeader_
 
bool writtenHeader_
 
bool useUserTime_
 
scalar startTime_
 

Static Protected Attributes

static const Enum< forceMethodTypeforceMethodTypeNames
 
static const Enum< monitorMethodTypemonitorMethodTypeNames
 

Additional Inherited Members

- Public Types inherited from cellSetOption
enum  selectionModeType { smAll, smCellSet, smCellZone, smPoints }
 
- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 
- Public Attributes inherited from option
bool log
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 
- Static Public Attributes inherited from writeFile
static label addChars = 8
 

Detailed Description

Applies sources on velocity (i.e. U) within a specified region to enable actuator disk models for aero/hydro thrust loading of horizontal axis turbines on surrounding flow field in terms of energy conversion processes.

Available options for force computations:

  Froude          | Froude's one-dimensional ideal actuator disk method
  variableScaling | Variable-scaling actuator disk method

The expressions for Froude method:

\[ T = 2 \rho A | \vec{U_o} \cdot \vec{n} |^2 a (1-a) \]

with

\[ a = 1 - \frac{C_p}{C_T} \]

where

$ T $ = Thrust magnitude
$ \rho $ = Monitored incoming fluid density
$ A $ = Actuator disk planar surface area
$ \vec{U_o} $ = Incoming velocity spatial-averaged on monitored region
$ \vec{n} $ = Surface-normal vector of the actuator disk pointing downstream
$ a $ = Axial induction factor
$ C_p $ = Power coefficient
$ C_T $ = Thrust coefficient

The expressions for variableScaling method:

\[ T = 0.5 \rho A | \vec{U_m} \cdot \vec{n} |^2 C_T^* \]

with

\[ C_T^* = C_T \left( \frac{ |\vec{U_{ref}}| }{ |\vec{U_m}| } \right)^2 \]

where

$ T $ = Thrust magnitude
$ \rho $ = Monitored incoming fluid density
$ A $ = Actuator disk planar surface area
$ \vec{U_m} $ = Incoming velocity spatial-averaged on actuator disk
$ \vec{n} $ = Surface-normal vector of the actuator disk pointing downstream
$ \vec{U_{ref}} $ = Incoming velocity spatial-averaged on monitored region
$ C_T $ = Thrust coefficient
$ C_T^* $ = Calibrated thrust coefficient

Reference

        Froude's one-dimensional ideal actuator disk (tags:F,BJSB):
            Froude, R. E. (1889).
            On the part played in propulsion by differences of fluid pressure.
            Trans. Inst. Naval Architects, 30, 390.

            Burton, T., Jenkins, N., Sharpe, D., & Bossanyi, E. (2011).
            Wind energy handbook, 2nd edition.
            Chichester, the United Kingdom. John Wiley & Sons.
            Print ISBN:978-0-470-69975-1
            DOI:10.1002/9781119992714

        Variable-scaling method (tags:LSRMKT,LS):
            van der Laan, M. P., Sørensen, N. N., Réthoré, P. E.,
            Mann, J., Kelly, M. C., & Troldborg, N. (2015).
            The k‐ε‐fP model applied to double wind turbine
            wakes using different actuator disk force methods.
            Wind Energy, 18(12), 2223-2240.
            DOI:10.1002/we.1816

            van der Laan, M. P., Sørensen, N. N., Réthoré, P. E., Mann, J.,
            Kelly, M. C., Troldborg, N., Hansen, K. S., & Murcia, J. P. (2015).
            The k‐ε‐fP model applied to wind farms.
            Wind Energy, 18(12), 2065-2084.
            DOI:10.1002/we.1804

Sources applied to:

      U         | Velocity    [m/s]

Required fields:

      U         | Velocity    [m/s]
Usage
Minimal example by using constant/fvOptions:
actuationDiskSource1
{
    // Mandatory entries (unmodifiable)
    type            actuationDiskSource;

    // Mandatory entries (runtime modifiable)
    diskArea        40.0;
    diskDir         (1 0 0);
    Cp              <Function1>;
    Ct              <Function1>;

    // Conditional optional entries (unmodifiable)
    monitorMethod   <points|cellSet>;
    monitorCoeffs
    {
        // Option-1
        points
        (
            (p1x p1y p1z)
            (p2x p2y p2z)
            ...
        );

        // Option-2
        cellSet     <monitorCellSet>;
    }

    // Optional entries (unmodifiable)
    variant         <forceMethod>;

    // Optional entries (runtime modifiable)
    sink            true;
    writeFileStart  0;
    writeFileEnd    100;

    // Mandatory/Optional (inherited) entries
    ...
}

where the entries mean:

Property Description Type Reqd Dflt
type Type name: actuationDiskSource word yes -
diskArea Actuator disk planar surface area scalar yes -
diskDir Surface-normal vector of the actuator disk pointing downstream vector yes -
Cp Power coefficient Function1 yes -
Ct Thrust coefficient Function1 yes -
monitorMethod Type of incoming velocity monitoring method - see below word no points
variant Type of the force computation method - see below word no Froude
sink Flag for body forces to act as a source (false) or a sink (true) bool no true
writeFileStart Start time for file output scalar no 0
writeFileEnd End time for file output scalar no VGREAT

The inherited entries are elaborated in:

Options for the monitorMethod entry:

      points  | Monitor incoming velocity field at a given set of points
      cellSet | Monitor incoming velocity field at a given cellSet

Options for the variant entry:

      Froude          | Froude's one-dimensional ideal actuator disk method
      variableScaling | Variable-scaling actuator disk method
Source files

Definition at line 361 of file actuationDiskSource.H.

Member Enumeration Documentation

◆ forceMethodType

enum forceMethodType
protected
Enumerator
FROUDE 

"Froude's ideal actuator disk method"

VARIABLE_SCALING 

"Variable-scaling actuator disk method"

Definition at line 371 of file actuationDiskSource.H.

◆ monitorMethodType

enum monitorMethodType
protected
Enumerator
POINTS 

"A set of points"

CELLSET 

"A cellSet"

Definition at line 381 of file actuationDiskSource.H.

Constructor & Destructor Documentation

◆ actuationDiskSource() [1/3]

actuationDiskSource ( )
delete

◆ actuationDiskSource() [2/3]

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

Definition at line 158 of file actuationDiskSource.C.

References Foam::endl(), Foam::Info, Foam::name(), and option::resetApplied().

Here is the call graph for this function:

◆ actuationDiskSource() [3/3]

◆ ~actuationDiskSource()

virtual ~actuationDiskSource ( )
virtualdefault

Member Function Documentation

◆ writeFileHeader()

void writeFileHeader ( Ostream os)
protectedvirtual

Definition at line 63 of file actuationDiskSource.C.

References Foam::endl(), actuationDiskSource::forceMethod_, os(), and Foam::writeHeader().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "actuationDiskSource"  )

◆ operator=()

void operator= ( const actuationDiskSource )
delete

◆ diskDir()

const vector& diskDir ( ) const
inline

Definition at line 501 of file actuationDiskSource.H.

References actuationDiskSource::diskDir_.

◆ diskArea()

scalar diskArea ( ) const
inline

Definition at line 507 of file actuationDiskSource.H.

References actuationDiskSource::diskArea_.

◆ addSup() [1/3]

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

Reimplemented from option.

Reimplemented in radialActuationDiskSource.

Definition at line 231 of file actuationDiskSource.C.

◆ addSup() [2/3]

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

Reimplemented from option.

Reimplemented in radialActuationDiskSource.

Definition at line 244 of file actuationDiskSource.C.

References rho.

◆ addSup() [3/3]

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

Reimplemented from option.

Definition at line 258 of file actuationDiskSource.C.

References Foam::constant::atomic::alpha, and rho.

◆ read()

bool read ( const dictionary dict)
virtual

Reimplemented from cellSetOption.

Reimplemented in radialActuationDiskSource.

Definition at line 272 of file actuationDiskSource.C.

References dict, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, Foam::mag(), Foam::blockMeshTools::read(), and cellSetOption::read().

Referenced by radialActuationDiskSource::read().

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

Member Data Documentation

◆ forceMethodTypeNames

const Foam::Enum< Foam::fv::actuationDiskSource::forceMethodType > forceMethodTypeNames
staticprotected

Definition at line 378 of file actuationDiskSource.H.

◆ monitorMethodTypeNames

const Foam::Enum< Foam::fv::actuationDiskSource::monitorMethodType > monitorMethodTypeNames
staticprotected

Definition at line 388 of file actuationDiskSource.H.

◆ forceMethod_

enum forceMethodType forceMethod_
protected

Definition at line 394 of file actuationDiskSource.H.

Referenced by actuationDiskSource::writeFileHeader().

◆ monitorMethod_

enum monitorMethodType monitorMethod_
protected

Definition at line 397 of file actuationDiskSource.H.

◆ sink_

label sink_
protected

Definition at line 400 of file actuationDiskSource.H.

◆ writeFileStart_

scalar writeFileStart_
protected

Definition at line 403 of file actuationDiskSource.H.

◆ writeFileEnd_

scalar writeFileEnd_
protected

Definition at line 406 of file actuationDiskSource.H.

◆ diskArea_

scalar diskArea_
protected

Definition at line 409 of file actuationDiskSource.H.

Referenced by actuationDiskSource::diskArea().

◆ diskDir_

vector diskDir_
protected

Definition at line 412 of file actuationDiskSource.H.

Referenced by actuationDiskSource::diskDir().

◆ UvsCpPtr_

autoPtr<Function1<scalar> > UvsCpPtr_
protected

Definition at line 415 of file actuationDiskSource.H.

◆ UvsCtPtr_

autoPtr<Function1<scalar> > UvsCtPtr_
protected

Definition at line 418 of file actuationDiskSource.H.

◆ monitorCells_

labelList monitorCells_
protected

Definition at line 421 of file actuationDiskSource.H.


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