Extract BET and Actuator Disk Forces

Extract BET and Actuator Disk Forces#

Two snippets demonstrate how to post-process disk-model results from a completed case and report the loads as dimensional quantities:

  • the integrated loads of a BET disk (converted to SI) plus its radial loading distribution,

  • the integrated loads of an actuator disk, converted to SI units.

BET Disk Loads#

import flow360 as fl

case = fl.Case.from_cloud(case_id="your-case-id")
results = case.results

# Integrated BET disk loads. to_base("SI") converts the non-dimensional solver
# output into dimensional forces and moments (e.g. Disk0_Force_x in Newtons).
results.bet_forces.to_base("SI")
print(results.bet_forces.as_dataframe())

# Radial distribution of the blade loading, resolved per disk and per blade.
# These are non-dimensional coefficients (thrust/torque coefficient per section).
bet_radial = results.bet_forces_radial_distribution.as_dataframe()
bet_radial.plot(
    x="Disk0_All_Radius",
    y=["Disk0_Blade0_All_ThrustCoeff", "Disk0_Blade0_All_TorqueCoeff"],
    xlabel="Radius",
    title="BET disk radial distribution",
)
../../_images/bet_radial_distribution.png

Example output: the BET disk thrust and torque coefficient distributions along the blade radius.#

Actuator Disk Loads#

import flow360 as fl

case = fl.Case.from_cloud(case_id="your-case-id")
results = case.results

# Non-dimensional actuator disk loads versus pseudo step.
print(results.actuator_disks.as_dataframe())

# Convert the loads to the SI unit system, then read them back as dimensional
# power, force and moment.
results.actuator_disks.to_base("SI")
actuator_disk_si = results.actuator_disks.as_dataframe()

actuator_disk_si.plot(
    x="pseudo_step",
    y=["Disk0_Power", "Disk0_Force", "Disk0_Moment"],
    xlabel="Pseudo Step",
    subplots=True,
    title="Actuator disk loads (SI)",
)

Notes#

  • Use Case.from_cloud(case_id="...") to retrieve a completed case from the cloud.

  • bet_forces holds the integrated BET disk loads. Call to_base("SI") to convert them to dimensional forces and moments (e.g. Disk0_Force_x in Newtons) before reading them back with as_dataframe().

  • bet_forces_radial_distribution resolves the loading per disk and per blade along the radius (columns such as Disk0_All_Radius and Disk0_Blade0_All_ThrustCoeff). These are non-dimensional coefficients; the client does not provide a dimensional radial output.

  • actuator_disks holds the actuator-disk power, force and moment. Call to_base("SI") to convert the non-dimensional loads to the SI unit system (Disk0_Power in Watts, Disk0_Force in Newtons, Disk0_Moment in Newton-metres) before reading them back with as_dataframe().