estimate_bullet_length_m

Function estimate_bullet_length_m 

Source
pub fn estimate_bullet_length_m(diameter_m: f64, mass_kg: f64) -> f64
Expand description

Estimate a bullet’s length (meters) from its diameter and mass using a constant-effective-density cylinder model (MBA-1135).

Replaces the historical mass-blind diameter * 4.5 fallback: two bullets of the same caliber but very different weights get very different lengths, which is what the Miller stability formula and the enhanced spin-drift / Magnus models actually need.

Model: L = mass / (rho_eff * (pi/4) * d^2) with rho_eff = 7600 kg/m^3, then the length/diameter ratio is clamped to [1.2, 6.5] calibers so pathological inputs stay physical without stretching common handgun bullets to rifle-like proportions.

Returns 0.0 for non-physical inputs (mass_kg <= 0 or diameter_m <= 0); callers that need a non-zero length should fall back to their historical literal in that case.