pub fn openrocket_fin_set_roll_kg_m2(
fins: &FinSet,
body_radius_m: f64,
mass_kg: f64,
) -> Option<f64>Expand description
The roll inertia OpenRocket 24.12 gives a fin set about its own center of mass, kg·m², inferred
from its output, not taken from its source (which is GPL and not read). For two or more fins,
whose center is on the rocket’s axis, it is the set’s mass m spread evenly along a thin rod
from the body at R out to R + hₑ,
I = m (R² + R hₑ + hₑ²/3), hₑ² = A h / c_r,where A is one fin’s planform area, h its span and c_r its root chord: a rectangle’s own
span, shorter for a fin that narrows outward. For one fin it is the same rod about its own
middle, m hₑ²/12. validation/oracles/openrocket/conventions.py measured it on rectangles of
two chords, two spans and two body radii, a trapezoid, a triangle, an ellipse (OpenRocket’s
30-sided polygon), one fin, and fins with a rounded or airfoil section, a tab or fillets: every
one to 1e-12 on the probe’s structure but the ellipse (by its polygon) and a cant (2.66e-5). A
tab’s mass takes the planform’s value, and the section and thickness play no part. hpr’s own is
the exact integral of r² over the fin (FinSet::mass_properties); the two agree on a
rectangle without a tab, but for the thickness (ADR-062).
mass_kg is the set’s, all fins together. None for a planform hpr-design refuses, a count
of zero, or a radius or mass that is negative or not finite.