# BET Disk Model
The BET (Blade Element Theory) Disk model in Flow360 simulates the effect of rotor or propeller blades using blade element theory without requiring a detailed blade mesh.
# 📝 BET Disk Configuration
The Blade Element Theory (BET) Disk model divides a rotor disk into a series of annular sections and applies forces based on local flow conditions and blade geometry. This provides a more accurate representation of rotor aerodynamics than simpler actuator disk models while avoiding the computational cost of fully resolved blade geometry.
# 📋 Available Parameters
Parameter | Description | Unit |
---|---|---|
Entities | Cylinder entity defining disk location and dimensions | |
Rotation Direction Rule | Rule for rotation direction and thrust direction | |
Number of Blades | Number of blades to model | |
Angular Velocity (ω) | Rotational speed of the propeller/rotor | angular velocity (e.g., rad/s, rpm) |
Reference Chord | Reference chord for sectional loadings computation | length (e.g., m) |
Loading Nodes | Number of nodes for calculating sectional thrust/torque | |
Blade Line Chord | Chord for unsteady BET Line simulation (0 for steady BET Disk) | length (e.g., m) |
Initial Blade Direction | Orientation of first blade (required for unsteady BET) | |
Tip Gap | Distance between blade tip and solid bodies | length or "inf" |
Mach Numbers | Mach numbers for airfoil polars | |
Reynolds Numbers | Reynolds numbers for airfoil polars | |
Alphas | Angle of attack values for airfoil polars | angle (e.g., deg) |
Twists | Blade twist distribution along radius | set of (radius, twist) pairs |
Chords | Blade chord distribution along radius | set of (radius, chord) pairs |
Sectional Radiuses | Radial locations for polar data | length array (e.g., m) |
Sectional Polars | Lift and drag coefficient arrays | set of 3D coefficient arrays |
# 🔍 Detailed Descriptions
# Entities
The cylinder entity that defines the location and dimensions of the disk. The cylinder's center, axis, outer radius, and height are taken as the rotation center, rotation axis, radius, and thickness of the BET Disk, respectively.
- Default: None (required parameter)
- Example:
Cylinder(name="bet_disk", center=(0,0,0), axis=(1,0,0), outer_radius=0.5, height=0.03)
- Notes: The cylinder entity must be properly sized and positioned to represent the rotor disk.
# Rotation Direction Rule
The rule for relating rotation direction and thrust direction.
- Default: "rightHand"
- Options: "rightHand" or "leftHand"
- Notes: Determines whether the rotor follows the right-hand or left-hand rule for rotation relative to the thrust axis.
# Number of Blades
The number of blades to model in the BET simulation.
- Default: None (required parameter)
- Range: 1-10
- Notes: Must be a positive integer, representing the physical blade count of the propeller or rotor.
# Angular Velocity (ω)
The rotational speed of the propeller or rotor.
- Default: None (required parameter)
- Example:
812.31 * u.rpm
or85.06 * u.rad / u.s
- Notes: Can be specified in various angular velocity units such as rad/s or rpm.
# Reference Chord
Dimensional reference chord used to compute sectional blade loadings.
- Default: None (required parameter)
- Example:
0.1 * u.m
- Notes: This value is used in the calculation of sectional thrust and torque coefficients.
# Loading Nodes
Number of nodes used to compute the sectional thrust and torque coefficients.
- Default: None (required parameter)
- Range: 1-1000
- Example: 20
- Notes: Recommended value is 20. More nodes provide more detailed radial loading distribution at the cost of computation time.
# Blade Line Chord
Dimensional chord to use if performing an unsteady BET Line simulation.
- Default:
0 * u.m
- Example:
0.1 * u.m
- Notes: Default of 0.0 indicates a steady BET Disk simulation. Set to a positive value for unsteady BET Line simulation.
# Initial Blade Direction
Orientation of the first blade in the BET model.
- Default: None
- Example:
[1, 0, 0]
- Notes: Must be specified if performing an unsteady BET Line simulation. Defines the starting position of the first blade.
# Tip Gap
Dimensional distance between blade tip and solid bodies to define a tip loss factor.
- Default: "inf"
- Example:
0.01 * u.m
or "inf" - Notes: "inf" represents an open propeller with no tip loss reduction from nearby structures. A finite value represents the gap between blade tips and structures like ducts.
# Mach Numbers
Mach numbers associated with airfoil polars provided in Sectional Polars.
- Default: None (required parameter)
- Example:
[0, 0.3, 0.6]
- Notes: These values correspond to the first dimension of the lift and drag coefficient arrays.
# Reynolds Numbers
Reynolds numbers associated with the airfoil polars provided in Sectional Polars.
- Default: None (required parameter)
- Example:
[1e6, 2e6, 3e6]
- Notes: These values correspond to the second dimension of the lift and drag coefficient arrays.
# Alphas
Angle of attack values associated with airfoil polars provided in Sectional Polars.
- Default: None (required parameter)
- Example:
[-5, 0, 5, 10, 15] * u.deg
- Notes: Must be in ascending order. These values correspond to the third dimension of the lift and drag coefficient arrays.
# Twists
A list of objects specifying the twist in degrees as a function of radial location.
- Default: None (required parameter)
- Example:
[BETDiskTwist(radius=0.1*u.m, twist=10*u.deg), BETDiskTwist(radius=0.5*u.m, twist=2*u.deg)]
- Notes: Twist angles are typically higher near the hub and lower near the tip. No duplicate radial locations are allowed.
# Chords
A list of objects specifying the blade chord as a function of the radial location.
- Default: None (required parameter)
- Example:
[BETDiskChord(radius=0.1*u.m, chord=0.05*u.m), BETDiskChord(radius=0.5*u.m, chord=0.03*u.m)]
- Notes: Chord lengths typically vary along the blade, often wider at mid-span than at hub or tip. No duplicate radial locations are allowed.
# Sectional Radiuses
A list of the radial locations at which lift and drag coefficients are specified in Sectional Polars.
- Default: None (required parameter)
- Example:
[0.1, 0.3, 0.5] * u.m
- Notes: Must match the number of elements in Sectional Polars.
# Sectional Polars
A list of objects for every radial location specified in Sectional Radiuses, containing 3D arrays of lift and drag coefficients.
- Default: None (required parameter)
- Example: See Python API documentation
- Notes: The 3D arrays have dimensions corresponding to [Mach Numbers] × [Reynolds Numbers] × [Alphas].
# 🔍 File Input Options
Flow360 provides multiple ways to set up BET Disk models through file imports:
# XROTOR Format
Import propeller geometry and performance data from XROTOR files.
- Notes:
- XROTOR is a common low-fidelity rotor analysis tool
- The XROTOR translator extracts blade geometry, twist and chord distribution, and sectional polars
- Some parameters (RPM, number of blades) in the XROTOR file are ignored and must be specified separately
# DFDC Format
Import ducted fan geometry and performance data from DFDC files.
- Notes:
- Similar to XROTOR but designed for ducted fans
- The duct part of the DFDC input file is NOT used
- To simulate a ducted fan, mesh the duct geometry separately and position the BET disk correctly
# C81 Format
Import airfoil data using the C81 format common in helicopter analysis (Python API only).
- Notes:
- C81 files contain sectional aerodynamic coefficients for various Mach and Reynolds numbers
- Multiple C81 files can be used for different radial sections
# XFoil Format
Import airfoil data generated from XFoil analysis (Python API only).
- Notes:
- XFoil is a common airfoil analysis tool
- Data includes airfoil polars at various angles of attack
💡 Tips
- For initial simulations, start with the BET Disk (steady) approach before moving to BET Line (unsteady)
- Ensure sufficient mesh resolution across the disk thickness (at least 20 nodes recommended)
- Base thrust and pitch distribution on experimental or analytical data when possible
- Verify that your airfoil polar data covers the full range of expected operating conditions
- For open rotors, use "inf" for the tip gap parameter
- For ducted fans, set the tip gap to the actual distance between blade tips and duct wall
- Use appropriate rotation direction rule based on your propeller configuration
- When using file imports, check that the imported data is consistent with your geometry
❓ Frequently Asked Questions
When should I use BET Disk instead of a simpler Actuator Disk?
Use BET Disk when you need a more accurate representation of blade aerodynamics, including effects of blade geometry, twist distribution, and airfoil characteristics. BET is more accurate for predicting wake structures and performance variations with flow conditions.
What's the difference between BET Disk and BET Line?
BET Disk is a steady-state model that averages the effect of all blades across the entire disk. BET Line is time-accurate and models individual blades, capturing periodic effects. Use BET Disk for steady simulations and BET Line when blade passing effects are important.
How do I select appropriate airfoil polars?
Use polar data for the actual airfoils used in your blade design. If unavailable, choose similar airfoils and adjust for differences in thickness and camber. Ensure data covers the full range of expected angles of attack and Mach numbers.
What should I set for the number of loading nodes?
The recommended value is 20, which provides good resolution of spanwise loading variations without excessive computational cost. Increase for highly loaded or complex blade designs.
How do I handle the hub region?
The hub is typically modeled as a non-active region. The inner portion of the disk where the hub is located will not contribute to thrust or torque calculations.
Can I model contra-rotating propellers?
Yes, create two separate BET Disk models with opposite rotation directions, positioned in sequence along the flow path.
What's the relevance of the tip gap parameter?
This parameter affects the tip loss calculation. Use "inf" for open rotors. For ducted propellers, set it to the actual gap between blade tips and the duct, which will reduce tip losses.
📊 Common Applications
# Helicopter Rotors
- Main and tail rotors
- Can capture thrust, torque, and general wake characteristics
- Useful for interference effects in multi-rotor configurations
# Aircraft Propellers
- Fixed-wing propulsion
- Tilt-rotor applications
- Ducted propellers
- Contra-rotating configurations
# Marine Propulsors
- Ship propellers
- Submarine propulsors
- Waterjet systems
# Wind Turbines
- Allows analysis of turbine performance
- Useful for wind farm analysis where multiple turbines interact
🐍 Python API Usage Example
Below is an example of how to configure a BET Disk model using the Flow360 Python API:
# Example (for reference only, not included in GUI documentation)
bet_disk = fl.BETDisk(
entities=[fl.Cylinder(
name="bet_disk",
center=(0,0,0)*fl.u.m,
axis=(1,0,0),
outer_radius=0.5*fl.u.m,
height=0.03*fl.u.m,
)],
rotation_direction_rule="rightHand",
number_of_blades=3,
omega=800*fl.u.rpm,
chord_ref=0.1*fl.u.m,
n_loading_nodes=20,
mach_numbers=[0],
reynolds_numbers=[1e6],
twists=[
fl.BETDiskTwist(radius=0.1*fl.u.m, twist=30*fl.u.deg),
fl.BETDiskTwist(radius=0.5*fl.u.m, twist=5*fl.u.deg)
],
chords=[
fl.BETDiskChord(radius=0.1*fl.u.m, chord=0.05*fl.u.m),
fl.BETDiskChord(radius=0.5*fl.u.m, chord=0.03*fl.u.m)
],
alphas=[-10, -5, 0, 5, 10, 15]*fl.u.deg,
sectional_radiuses=[0.1, 0.5]*fl.u.m,
sectional_polars=[
fl.BETDiskSectionalPolar(
lift_coeffs=[[[0.0, 0.2, 0.4, 0.8, 1.0, 0.9]]],
drag_coeffs=[[[0.01, 0.01, 0.02, 0.04, 0.1, 0.2]]]
),
fl.BETDiskSectionalPolar(
lift_coeffs=[[[0.0, 0.3, 0.6, 0.9, 1.1, 1.0]]],
drag_coeffs=[[[0.01, 0.01, 0.015, 0.03, 0.08, 0.15]]]
)
]
)