180#ifndef rotorDiskSource_H
181#define rotorDiskSource_H
207 public fv::cellSetOption
287 autoPtr<tensorField>
Rcyl_;
293 autoPtr<trimModel>
trim_;
324 const List<Type>& values,
325 const bool writeNow =
false
362 inline scalar
rhoRef()
const;
366 inline scalar
omega()
const;
379 template<
class RhoFieldType>
382 const RhoFieldType&
rho,
386 const bool divideVolume =
true,
Enum is a wrapper around a list of names/values that represent particular enumeration (or int) values...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Blade model class calculates:
A cylindrical coordinate system (r-theta-z). The coordinate system angle theta is always in radians.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
Intermediate abstract class for handling cell-set options for the derived fvOptions.
const word & name() const noexcept
Return const access to the source name.
const fvMesh & mesh() const noexcept
Return const access to the mesh database.
Applies cell-based momentum sources on velocity (i.e. U) within a specified cylindrical region to app...
scalar omega_
Rotational speed [rad/s].
static const Enum< geometryModeType > geometryModeTypeNames_
Names for geometryModeType.
void calculate(const RhoFieldType &rho, const vectorField &U, const scalarField &thetag, vectorField &force, const bool divideVolume=true, const bool output=true) const
Calculate forces.
scalar rhoRef_
Reference density for incompressible case.
const coordSystem::cylindrical & coordSys() const
Return the rotor coordinate system (r-theta-z)
scalar rhoRef() const
Return the reference density for incompressible case.
void setFaceArea(vector &axis, const bool correct)
Set the face areas per cell, and optionally correct the rotor axis.
rotorDiskSource(const rotorDiskSource &)=delete
No copy construct.
void checkData()
Check data.
List< scalar > area_
Area [m2].
scalar tipEffect_
Tip effect [0-1].
const List< point > & x() const
Return the cell centre positions in local rotor frame.
inletFlowType inletFlow_
Inlet flow type.
void constructGeometry()
Construct geometry.
void writeField(const word &name, const List< Type > &values, const bool writeNow=false) const
Helper function to write rotor values.
coordSystem::cylindrical coordSys_
Rotor local cylindrical coordinate system (r-theta-z)
scalar rMax_
Maximum radius.
virtual bool read(const dictionary &dict)
Read source dictionary.
List< point > x_
Cell centre positions in local rotor frame.
bladeModel blade_
Blade data.
tmp< vectorField > inflowVelocity(const volVectorField &U) const
Return the inlet flow field.
scalar omega() const
Return the rotational speed [rad/s].
void createCoordinateSystem()
Create the coordinate system.
flapData flap_
Blade flap coefficients [rad/s].
vector inletVelocity_
Inlet velocity for specified inflow.
inletFlowType
Options for the inlet flow type specification.
List< tensor > Rcone_
Rotation tensor for flap angle.
TypeName("rotorDisk")
Runtime type information.
label nBlades_
Number of blades.
virtual ~rotorDiskSource()=default
Destructor.
virtual void addSup(fvMatrix< vector > &eqn, const label fieldi)
Add explicit contribution to momentum equation.
autoPtr< tensorField > Rcyl_
Cached rotation tensors for cylindrical coordinates.
autoPtr< trimModel > trim_
Trim model.
profileModelList profiles_
Profile data.
static const Enum< inletFlowType > inletFlowTypeNames_
Names for inletFlowType.
void operator=(const rotorDiskSource &)=delete
No copy assignment.
geometryModeType
Options for the geometry type specification.
Base class for profile models.
A class for managing temporary objects.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
A class for handling words, derived from Foam::string.
GeometricField< vector, fvPatchField, volMesh > volVectorField
static Ostream & output(Ostream &os, const IntRange< T > &range)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.