Force and Moment Coefficients#

Flow360 exports standard aerodynamic coefficients (\(C_L\), \(C_D\), \(C_F\), \(C_M\)) alongside the non-dimensional output fields. These are available in total_forces_v2.csv, surface_forces_v2.csv, and force_output_*_v2.csv, or via case.results.total_forces / case.results.surface_forces.

Attention

Force and moment coefficients use \(U_\text{ref}\) (case.params.reference_velocity), not the reference velocity scaling \(U_\text{scale}\) used for other solver fields.

BET Disk, Actuator Disk, and Porous Media report raw forces and moments (not coefficients) that use \(U_\text{scale}\) — see Raw solver output conversion or the Outputs page for their formulas.

Coefficient Definitions#

Force and moment coefficient definitions#

Property

Definition

CL

\(\text{Lift}/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref}\)

CD

\(\text{Drag}/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref}\)

CFx

\(\text{Force}_x/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref}\)

CFy

\(\text{Force}_y/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref}\)

CFz

\(\text{Force}_z/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref}\)

CMx

\(\text{Moment}_x/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref} L_\text{ref}\left[0\right]\)

CMy

\(\text{Moment}_y/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref} L_\text{ref}\left[1\right]\)

CMz

\(\text{Moment}_z/\frac{1}{2}\rho_\infty U_\text{ref}^2 A_\text{ref} L_\text{ref}\left[2\right]\)

Note

All reference values are listed in the Reference Quantities Table.

Output Conventions#

The conventions assume z-up, y-spanwise (+ starboard), x-axial (+ freestream), as shown below.

../../../_images/AxisConventions.png

Axis conventions (CRM geometry)#

Force and moment output conventions#

Output

\(CFx, CFy, CFz\)

Force coefficients (global axes)

\(CMx, CMy, CMz\)

Moment coefficients (global axes)

\(CL = CFz\cdot cos(\alpha) - CFx\cdot sin(\alpha)\)

Lift coefficient (wind axes)

\(CD = CFx\cdot cos(\alpha) cos(\beta) - CFy\cdot sin(\beta) +\) \(CFz\cdot sin(\alpha) cos(\beta)\)

Drag coefficient (wind axes)

\(CFxPressure, CFyPressure, CFzPressure\)

Pressure contributions to force coefficients (global axes)

\(CMxPressure, CMyPressure, CMzPressure\)

Pressure contributions to moment coefficients (global axes)

\(CFxSkinFriction, CFySkinFriction,\) \(CFzSkinFriction\)

Skin friction contributions to force coefficients (global axes)

\(CMxSkinFriction, CMySkinFriction,\) \(CMzSkinFriction\)

Skin friction contributions to moment coefficients (global axes)

\(CLPressure, CDPressure\)

Pressure contributions to the lift and drag coefficients

\(CLSkinFriction, CDSkinFriction\)

Skin friction contributions to the lift and drag coefficients

\(CS = CFx\cdot cos(\alpha) sin(\beta) + CFy\cdot cos(\beta) +\) \(CFz\cdot sin(\alpha) sin(\beta)\)

Side force coefficient (wind axes). Not available in the csv file and can be calculated from body forces.

Converting to Physical Units (N, N·m)#

Two conversion paths exist depending on the data source. This section is a self-contained reference for both.

Dynamic pressure#

All coefficient-based conversions start from the dynamic pressure built with \(U_\text{ref}\) (see Reference quantities for API access):

(1)#\[q_\text{ref} = \tfrac{1}{2}\,\rho_\infty\,U_\text{ref}^2 \qquad [\text{Pa}]\]
density = case.params.operating_condition.thermal_state.density
U_ref   = case.params.reference_velocity
A_ref   = case.params.reference_geometry.area
L_ref   = case.params.reference_geometry.moment_length   # 3-vector

q_ref = 0.5 * density * U_ref**2

Coefficient → Newtons / Newton-meters#

Applies to surface_forces_v2.csv, total_forces_v2.csv, force_output_*_v2.csv, and the postprocessed coefficient files (bet_force_coefficients_v2.csv, actuatorDisk_force_coefficients_v2.csv, porous_media_force_coefficients_v2.csv).

Force:

(2)#\[F\;[\text{N}] = C_F \cdot q_\text{ref} \cdot A_\text{ref}\]

Moment (per component — \(L_\text{ref}\) can differ per axis):

(3)#\[M_i\;[\text{N·m}] = C_{M_i} \cdot q_\text{ref} \cdot A_\text{ref} \cdot L_{\text{ref},\,i}\]
force_scale  = q_ref * A_ref                  # N per unit C_F
moment_scale = q_ref * A_ref * L_ref           # N·m per unit C_M (3-vector)

Lift            = CL  * force_scale             # N
Pitching_Moment = CMy * moment_scale[1]         # N·m

Tip

When q_ref, A_ref, and L_ref are retrieved through the Python API they already carry SI units, so you can call .to() directly to get the result in any target unit:

Lift    = (CL  * force_scale).to('N')
Moment  = (CMy * moment_scale[1]).to('N*m')

See Calculate Dimensional Forces for a complete worked example.

Converting Flow360 Force Outputs to SI (BET / Actuator Disk / Porous Media)#

The solver writes forces and moments in Flow360 non-dimensional units for volume models in bet_forces_v2.csv, actuatorDisk_output_v2.csv, and porous_media_output_v2.csv. These are force outputs, not aerodynamic coefficients: because they are dimensionalized using the solver’s internal scaling — reference velocity scaling \(U_\text{scale}\) and \(L_\text{gridUnit}\) — rather than the aerodynamic reference quantities \(U_\text{ref}\) and \(A_\text{ref}\), a dedicated conversion is required to recover SI forces and moments.

(4)#\[\begin{split}k_F &= \rho_\infty\,U_\text{scale}^2\,L_\text{gridUnit}^2 \\ k_M &= \rho_\infty\,U_\text{scale}^2\,L_\text{gridUnit}^3 \\ k_P &= \rho_\infty\,U_\text{scale}^3\,L_\text{gridUnit}^2\end{split}\]
(5)#\[\begin{split}F\;[\text{N}] &= F_\text{raw} \times k_F \\ M\;[\text{N·m}] &= M_\text{raw} \times k_M \\ P\;[\text{W}] &= P_\text{raw} \times k_P\end{split}\]
L_grid = project.length_unit

k_F = density * U_scale**2 * L_grid**2   # N   (force scale)
k_M = density * U_scale**2 * L_grid**3   # N·m (moment scale)
k_P = density * U_scale**3 * L_grid**2   # W   (power scale)

force_x  = raw_force_x  * k_F   # N
moment_x = raw_moment_x * k_M   # N·m

Attention

Do not mix the two paths. Coefficient files use \(U_\text{ref}\), \(A_\text{ref}\), \(L_\text{ref}\). Raw BET/AD/PM files use \(U_\text{scale}\) and \(L_\text{gridUnit}\) (scaling factors \(k_F\), \(k_M\), \(k_P\)).

Summary#

Data source

CSV files

Conversion

Surface / total coefficients

surface_forces_v2.csv, total_forces_v2.csv, force_output_*_v2.csv

\(F = C_F \cdot q_\text{ref} \cdot A_\text{ref}\)

BET/AD/PM coefficients

bet_force_coefficients_v2.csv, actuatorDisk_force_coefficients_v2.csv, porous_media_force_coefficients_v2.csv

Same as above

BET/AD/PM raw forces

bet_forces_v2.csv, actuatorDisk_output_v2.csv, porous_media_output_v2.csv

\(F = F_\text{raw} \times k_F\)

Moment coefficients

All coefficient files

\(M_i = C_{M_i} \cdot q_\text{ref} \cdot A_\text{ref} \cdot L_{\text{ref},i}\)

BET/AD/PM raw moments

Raw files above

\(M = M_\text{raw} \times k_M\)

See also