flow360.BETDisk#
- class BETDisk[source]#
Bases:
Flow360BaseModel
BETDisk
class for defining the Blade Element Theory (BET) model inputs. For detailed information on the parameters, please refer to the BET knowledge Base. To generate the sectional polars the BET translators can be used which are outlined here with best-practices for the sectional polars inputs available here. A case study of the XV-15 rotor using the steady BET Disk method is available in Case Studies. Because a transient BET Line simulation is simply a time-accurate version of a steady-state BET Disk simulation, most of the parameters below are applicable to both methods.Note
Cylinder.center
,Cylinder.axis
,Cylinder.outer_radius
, andCylinder.height
are taken as the rotation center, rotation axis, radius, and thickness of the BETDisk, respectively.Example
>>> fl.BETDisk( ... entities=[fl.Cylinder(...)], ... rotation_direction_rule="leftHand", ... number_of_blades=3, ... omega=rpm * fl.u.rpm, ... chord_ref=14 * fl.u.inch, ... n_loading_nodes=20, ... mach_numbers=[0], ... reynolds_numbers=[1000000], ... twists=[fl.BETDiskTwist(...), ...], ... chords=[fl.BETDiskChord(...), ...], ... alphas=[-2,0,2] * fl.u.deg, ... sectional_radiuses=[13.5, 25.5] * fl.u.inch, ... sectional_polars=[fl.BETDiskSectionalPolar(...), ...] ... )
- rotation_direction_rule: Literal['leftHand', 'rightHand'] = 'rightHand'#
The rule for rotation direction and thrust direction, βrightHandβ or βleftHandβ.
- number_of_blades: Annotated[int, Strict(strict=True)] [Required]#
Number of blades to model.
- Constraints:
gt = 0
le = 10
strict = True
- omega: Annotated[_Constrained, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] [Required]#
Rotating speed.
- Constraints:
func = <function _dimensioned_type_serializer at 0x79c44aad7130>
return_type = PydanticUndefined
when_used = always
- chord_ref: Annotated[_Constrained, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] [Required]#
Dimensional reference chord used to compute sectional blade loadings.
- Constraints:
func = <function _dimensioned_type_serializer at 0x79c44aad7130>
return_type = PydanticUndefined
when_used = always
- n_loading_nodes: Annotated[int, Strict(strict=True)] [Required]#
Number of nodes used to compute the sectional thrust and torque coefficients \(C_t\) and \(C_q\), defined in Example: BET Loading Output CSV File.
- Constraints:
gt = 0
le = 1000
strict = True
- blade_line_chord: Annotated[_Constrained, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] = unyt_quantity(0, 'm')#
Dimensional chord to use if performing an unsteady BET Line simulation. Default of 0.0 is an indication to run a steady BET Disk simulation.
- Constraints:
func = <function _dimensioned_type_serializer at 0x79c44aad7130>
return_type = PydanticUndefined
when_used = always
- initial_blade_direction: Axis | None = None#
Orientation of the first blade in the BET model. Must be specified if performing an unsteady BET Line simulation.
- tip_gap: Literal['inf'] | Annotated[_Constrained, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] = 'inf'#
Dimensional distance between blade tip and solid bodies to define a tip loss factor.
- mach_numbers: List[Annotated[float, Ge(ge=0)]] [Required]#
Mach numbers associated with airfoil polars provided in
BETDiskSectionalPolar
.
- reynolds_numbers: List[Annotated[float, Gt(gt=0)]] [Required]#
Reynolds numbers associated with the airfoil polars provided in
BETDiskSectionalPolar
.
- alphas: Annotated[_VectorType, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] [Required]#
Alphas associated with airfoil polars provided in
BETDiskSectionalPolar
.- Constraints:
func = <function _dimensioned_type_serializer at 0x79c44aad7130>
return_type = PydanticUndefined
when_used = always
- twists: List[BETDiskTwist] [Required]#
A list of
BETDiskTwist
objects specifying the twist in degrees as a function of radial location.
- chords: List[BETDiskChord] [Required]#
A list of
BETDiskChord
objects specifying the blade chord as a function of the radial location.
- sectional_polars: List[BETDiskSectionalPolar] [Required]#
A list of
BETDiskSectionalPolar
objects for every radial location specified insectional_radiuses
.
- sectional_radiuses: Annotated[_VectorType, PlainSerializer(func=_dimensioned_type_serializer, return_type=PydanticUndefined, when_used=always)] [Required]#
A list of the radial locations in grid units at which \(C_l\) and \(C_d\) are specified in
BETDiskSectionalPolar
.- Constraints:
func = <function _dimensioned_type_serializer at 0x79c44aad7130>
return_type = PydanticUndefined
when_used = always