Main Rotor Sizing (flight-mechanics/performance/rotorcraft-main-rotor-sizing)
Use when you must size the main rotor of a single-main-rotor rotorcraft
from the takeoff weight and the design ceilings, rather than analyze a
rotor whose geometry is already given. The weight-borne hover thrust
T = m * g0 against the chosen main-rotor-disk-loading ceiling sets the
disk area and radius, the rotor-thrust-coefficient follows from
momentum theory at the rotor tip speed, the rotor solidity closes from
the ct-over-sigma hover design point, the blade area and the constant
chord follow from the blade count on rectangular blades, and the
rotor-tip-mach number checks the tip speed against the speed of sound.
Closed-form sizing only, pure Python, stdlib only: no power term, no
inflow solve, no figure of merit, no blade-element sections, no
compressibility corrections beyond the tip Mach check. The geometry it
produces feeds the rotorcraft performance leaves that consume a given
rotor: hover power, forward flight, climb, autorotation, ground effect
and turn. Pairs with flight-mechanics/performance/rotorcraft-tail-rotor-
sizing, which applies the identical disk sizing inversion to the
anti-torque rotor with its own torque-balance inputs.
Domain quick reference
- Weight-borne hover thrust: T = m * g0, g0 = 9.80665 m/s2, at the
takeoff mass m.
- Disk area at the ceiling: A = T / DL_max, with DL_max the chosen
main-rotor-disk-loading ceiling (250-500 Pa band, 350 Pa worked).
- Disk radius: R = sqrt(A / PI).
- Achieved disk loading: T / A equals DL_max exactly when the disk is
sized with that ceiling.
- Hover thrust coefficient (momentum theory): CT = T / (rho * A *
Vtip^2) with A = PI * R^2, Vtip the rotor tip speed (200-230 m/s
band, 210 m/s worked), rho = 1.225 kg/m3 at sea level.
- Ceiling identity: at the sized disk CT = DL_max / (rho * Vtip^2), so
the thrust coefficient is independent of the rotor size.
- Solidity closure: sigma = CT / (CT/sigma)_design from the ct-over-
sigma hover design point (0.10-0.14 band, 0.12 worked); the closure
round trip sigma * (CT/sigma)_design recovers CT.
- Blade area: A_b = sigma * A. Constant blade chord on rectangular
blades: c = A_b / (b * R) from the blade count b; the solidity
identity sigma = b * c * R / A recovers the input.
- Rotor tip Mach: M_tip = Vtip / a with a the speed of sound
(340.3 m/s sea level).
- SI units throughout: N, m, m2, Pa, m/s.
- FAR-29 frames transport rotorcraft certification context; the
relations above are standard engineering methodology, summary-only.
Workflow
- Fix the design point: takeoff mass m and the design ceilings, the
main-rotor-disk-loading ceiling, the ct-over-sigma hover design
point, the blade count and the rotor tip speed, with the weight-borne
hover thrust T = m * G0.
- Size the disk from the weight against the ceiling with
disk_area_and_radius and confirm the disk sits exactly at the
main-rotor-disk-loading ceiling (thrust over area round trip and
PI * radius**2 recovering the area).
- Compute the rotor-thrust-coefficient at the rotor tip speed with
hover_thrust_coefficient and cross-check the ceiling identity
CT = disk_loading_max / (rho * tip_speed**2).
- Close the rotor solidity from the ct-over-sigma design point with
solidity_closure and check the design-point round trip CT / sigma.
- Lay out the rectangular blades with blade_area_chord, total blade
area and constant blade chord from the blade count, verifying the
solidity identity sigma = b * c * R / A.
- Check the rotor-tip-mach number with tip_mach against the speed of
sound; subcritical at sea level, so no compressibility correction
enters the sizing.
- Close out with the deterministic contract test
scripts/test_rotorcraft_main_rotor_sizing.py.
Worked example
Primary state: helicopter takeoff mass m = 4500 kg, main-rotor-disk-
loading ceiling DL_max = 350 Pa, ct-over-sigma design point 0.12,
blade count b = 4, rotor tip speed Vtip = 210 m/s, rho = 1.225 kg/m3,
speed of sound a = 340.3 m/s. Module outputs:
- Thrust: T = W = 4500 * 9.80665 = 44129.925 N (weight-borne hover
reference).
- Disk area: A = 44129.925 / 350 = 126.0855 m2.
- Disk radius: R = sqrt(126.0855 / PI) = 6.3352 m.
- Achieved disk loading: T / A = 350.0 Pa, exactly the ceiling.
- Thrust coefficient: CT = 44129.925 / (1.225 * 126.0855 * 210^2) =
0.006479, and the ceiling identity 350.0 / (1.225 * 210^2) gives the
same 0.006479.
- Solidity closure: sigma = 0.006479 / 0.12 = 0.053990; the design
point check CT / sigma = 0.1200.
- Blade area: A_b = 0.053990 * 126.0855 = 6.8073 m2.
- Blade chord: c = 6.8073 / (4 * 6.3352) = 0.2686 m, blade aspect
ratio R / c = 23.58 (rectangular constant-chord blades); the
solidity check b * c * R / A = 0.053990.
- Tip Mach: M_tip = 210.0 / 340.3 = 0.61710, comfortably subcritical
at sea level, so no compressibility correction enters the sizing.
The light 350 Pa ceiling gives a large disk (about 126 m2, R = 6.34 m)
and hence a low hover thrust coefficient, so the 0.12 design point
closes at sigma about 0.054 with a 0.269 m chord. At fixed tip speed
and design point the solidity scales linearly with the ceiling,
sigma = DL_max / (rho * Vtip^2 * (CT/sigma)_design), about 0.092 at a
600 Pa ceiling.
Secondary state: m = 3000 kg, DL_max = 300 Pa, ct_over_sigma = 0.10,
b = 4, Vtip = 210 m/s: W = 29419.950 N, A = 98.0665 m2,
R = 5.5871 m, achieved disk loading 300.0 Pa, CT = 0.005553,
sigma = 0.055532 (CT / sigma = 0.1000), blade area 5.4459 m2, chord
0.2437 m, and M_tip = 0.61710 unchanged at the fixed tip speed.
Verification
- Confirm disk_area_and_radius(44129.925, 350.0) returns (126.0855,
6.3352) and that thrust / area equals 350.0 Pa exactly, the disk
sized at the ceiling; PI * radius**2 recovers the area.
- Confirm hover_thrust_coefficient(44129.925, 1.225, 6.3352, 210.0)
returns 0.006479, equal to the ceiling identity 350.0 / (1.225 *
210^2); the value is independent of the rotor size at a fixed
ceiling and tip speed.
- Confirm solidity_closure(0.006479, 0.12) returns 0.053990 and that
the closure round trip sigma * 0.12 recovers the thrust coefficient
(design-point check CT / sigma = 0.1200).
- Confirm blade_area_chord(0.053990, 126.0855, 4, 6.3352) returns
(6.8073, 0.2686) and the solidity identity 4 * 0.2686 * 6.3352 /
126.0855 recovers 0.053990.
- Confirm tip_mach(210.0, 340.3) returns 0.61710.
- Confirm the disk radius scales with the square root of the mass at a
fixed ceiling (6.3352 m at 4500 kg against 5.5871 m at 3000 kg) and
that the tip Mach is unchanged when only the mass or the ceiling
changes at a fixed tip speed.
- Convention cross-check: disk_area_and_radius(1851.8519, 300.0)
returns (6.1728, 1.4017), matching the rotorcraft-tail-rotor-sizing
worked example for the shared A = T / DL_max inversion applied to its
own anti-torque thrust; the torque-balance inputs never enter here.
- Confirm every non-positive thrust, disk loading, air density, radius,
tip speed, thrust coefficient, ct-over-sigma design point, solidity,
area and speed of sound, every blade count below 1 and every
fractional blade count raises ValueError (15 rejection classes).
- No RNG anywhere: repeated runs give identical floats.
- Run the contract test offline: python3
scripts/test_rotorcraft_main_rotor_sizing.py (35 tests,
deterministic).
Pitfalls
- Sizing on a radius that is already given: this leaf derives the disk
radius from the takeoff weight and the disk-loading ceiling; the
rotorcraft performance siblings (hover, forward flight, climb, turn)
all consume a given radius and solidity and never size the rotor.
- Writing the ceiling with the hover sibling's token: the sizing
ceiling is the main-rotor-disk-loading compound; rotor-disk-loading
belongs to rotorcraft-hover-performance for a given rotor.
- Closing solidity from a rounded thrust coefficient: the closure runs
on the module thrust coefficient of the sized rotor (0.006479 into
0.12 gives 0.053990); round CT to fewer decimals first and the
division drifts out of the 1e-6 window.
- Forgetting the blade count in the chord: the chord is the total blade
area spread over b * R, so doubling the blade count halves the chord
at a fixed solidity and disk.
- Reading the achieved disk loading as below the ceiling: A = T/DL_max
sizes the disk at the ceiling, so the achieved T / A equals DL_max
exactly and the CT ceiling identity holds.
- Non-positive thrust, disk loading, rho, radius, tip speed, thrust
coefficient, design point, solidity, area or speed of sound, and
blade counts below 1 or fractional raise ValueError; runs are
deterministic (no RNG).
Related leaves
- flight-mechanics/performance/rotorcraft-hover-performance: the OGE
hover power and figure of merit for the main rotor sized here.
- flight-mechanics/performance/rotorcraft-tail-rotor-sizing: the
identical disk sizing inversion applied to the anti-torque rotor from
the torque balance.
- flight-mechanics/performance/rotorcraft-forward-flight-performance:
forward flight power of the sized main rotor.
- flight-mechanics/performance/rotorcraft-vertical-climb-performance:
climb power states of the sized main rotor.
- flight-mechanics/performance/rotorcraft-turn-performance: the turn
closure that reuses a given hover rotor at n times the weight.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_rotorcraft_main_rotor_sizing.py
The test covers the primary worked example chain (4500 kg at the 350 Pa
ceiling, 0.12 design point, 4 blades, 210 m/s) and the secondary
3000 kg / 300 Pa / 0.10 state against the spec anchors, every function
against its defining equation, the ceiling and radius round trips, the
ceiling identity of the thrust coefficient, the solidity closure round
trip, the blade solidity identity, the tip Mach invariance, the shared
inversion cross-check with the sibling worked anchor, run-to-run
determinism, and ValueError rejection of every non-physical input
class.
Compliance
- Standards referenced, not reproduced: FAR-29 is a regulatory
standard; the main rotor sizing relations above are standard
engineering methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: rotorcraft-main-rotor-sizing3description: Use when you must size the main rotor of a single-main-rotor rotorcraft from the takeoff weight and design ceilings: the main-rotor-disk-loading ceiling sets the disk area and radius, the rotor-thrust-coefficient follows from momentum theory at the chosen rotor tip speed, the rotor solidity closes from the ct-over-sigma hover design point, the blade area and chord follow from the blade count on constant-chord blades, and the rotor-tip-mach number checks the tip speed against the speed of sound. Produces the disk area, radius, thrust coefficient, solidity, blade area, chord and tip mach that gate a main rotor sizing pass before the power leaves consume the geometry. Sizing only: closed-form inversions from weight, no rotor power, no flight-state performance; the geometry-consuming rotorcraft leaves keep their owners. Trigger: main rotor sizing, disk loading ceiling, ct-over-sigma, rotor tip speed.4license: Apache-2.05---67# Main Rotor Sizing (flight-mechanics/performance/rotorcraft-main-rotor-sizing)89Use when you must size the main rotor of a single-main-rotor rotorcraft10from the takeoff weight and the design ceilings, rather than analyze a11rotor whose geometry is already given. The weight-borne hover thrust12T = m * g0 against the chosen main-rotor-disk-loading ceiling sets the13disk area and radius, the rotor-thrust-coefficient follows from14momentum theory at the rotor tip speed, the rotor solidity closes from15the ct-over-sigma hover design point, the blade area and the constant16chord follow from the blade count on rectangular blades, and the17rotor-tip-mach number checks the tip speed against the speed of sound.18Closed-form sizing only, pure Python, stdlib only: no power term, no19inflow solve, no figure of merit, no blade-element sections, no20compressibility corrections beyond the tip Mach check. The geometry it21produces feeds the rotorcraft performance leaves that consume a given22rotor: hover power, forward flight, climb, autorotation, ground effect23and turn. Pairs with flight-mechanics/performance/rotorcraft-tail-rotor-24sizing, which applies the identical disk sizing inversion to the25anti-torque rotor with its own torque-balance inputs.2627## Domain quick reference2829- Weight-borne hover thrust: T = m * g0, g0 = 9.80665 m/s2, at the30 takeoff mass m.31- Disk area at the ceiling: A = T / DL_max, with DL_max the chosen32 main-rotor-disk-loading ceiling (250-500 Pa band, 350 Pa worked).33- Disk radius: R = sqrt(A / PI).34- Achieved disk loading: T / A equals DL_max exactly when the disk is35 sized with that ceiling.36- Hover thrust coefficient (momentum theory): CT = T / (rho * A *37 Vtip^2) with A = PI * R^2, Vtip the rotor tip speed (200-230 m/s38 band, 210 m/s worked), rho = 1.225 kg/m3 at sea level.39- Ceiling identity: at the sized disk CT = DL_max / (rho * Vtip^2), so40 the thrust coefficient is independent of the rotor size.41- Solidity closure: sigma = CT / (CT/sigma)_design from the ct-over-42 sigma hover design point (0.10-0.14 band, 0.12 worked); the closure43 round trip sigma * (CT/sigma)_design recovers CT.44- Blade area: A_b = sigma * A. Constant blade chord on rectangular45 blades: c = A_b / (b * R) from the blade count b; the solidity46 identity sigma = b * c * R / A recovers the input.47- Rotor tip Mach: M_tip = Vtip / a with a the speed of sound48 (340.3 m/s sea level).49- SI units throughout: N, m, m2, Pa, m/s.50- FAR-29 frames transport rotorcraft certification context; the51 relations above are standard engineering methodology, summary-only.5253## Workflow54551. Fix the design point: takeoff mass m and the design ceilings, the56 main-rotor-disk-loading ceiling, the ct-over-sigma hover design57 point, the blade count and the rotor tip speed, with the weight-borne58 hover thrust T = m * G0.592. Size the disk from the weight against the ceiling with60 disk_area_and_radius and confirm the disk sits exactly at the61 main-rotor-disk-loading ceiling (thrust over area round trip and62 PI * radius**2 recovering the area).633. Compute the rotor-thrust-coefficient at the rotor tip speed with64 hover_thrust_coefficient and cross-check the ceiling identity65 CT = disk_loading_max / (rho * tip_speed**2).664. Close the rotor solidity from the ct-over-sigma design point with67 solidity_closure and check the design-point round trip CT / sigma.685. Lay out the rectangular blades with blade_area_chord, total blade69 area and constant blade chord from the blade count, verifying the70 solidity identity sigma = b * c * R / A.716. Check the rotor-tip-mach number with tip_mach against the speed of72 sound; subcritical at sea level, so no compressibility correction73 enters the sizing.747. Close out with the deterministic contract test75 scripts/test_rotorcraft_main_rotor_sizing.py.7677## Worked example7879Primary state: helicopter takeoff mass m = 4500 kg, main-rotor-disk-80loading ceiling DL_max = 350 Pa, ct-over-sigma design point 0.12,81blade count b = 4, rotor tip speed Vtip = 210 m/s, rho = 1.225 kg/m3,82speed of sound a = 340.3 m/s. Module outputs:8384- Thrust: T = W = 4500 * 9.80665 = 44129.925 N (weight-borne hover85 reference).86- Disk area: A = 44129.925 / 350 = 126.0855 m2.87- Disk radius: R = sqrt(126.0855 / PI) = 6.3352 m.88- Achieved disk loading: T / A = 350.0 Pa, exactly the ceiling.89- Thrust coefficient: CT = 44129.925 / (1.225 * 126.0855 * 210^2) =90 0.006479, and the ceiling identity 350.0 / (1.225 * 210^2) gives the91 same 0.006479.92- Solidity closure: sigma = 0.006479 / 0.12 = 0.053990; the design93 point check CT / sigma = 0.1200.94- Blade area: A_b = 0.053990 * 126.0855 = 6.8073 m2.95- Blade chord: c = 6.8073 / (4 * 6.3352) = 0.2686 m, blade aspect96 ratio R / c = 23.58 (rectangular constant-chord blades); the97 solidity check b * c * R / A = 0.053990.98- Tip Mach: M_tip = 210.0 / 340.3 = 0.61710, comfortably subcritical99 at sea level, so no compressibility correction enters the sizing.100101The light 350 Pa ceiling gives a large disk (about 126 m2, R = 6.34 m)102and hence a low hover thrust coefficient, so the 0.12 design point103closes at sigma about 0.054 with a 0.269 m chord. At fixed tip speed104and design point the solidity scales linearly with the ceiling,105sigma = DL_max / (rho * Vtip^2 * (CT/sigma)_design), about 0.092 at a106600 Pa ceiling.107108Secondary state: m = 3000 kg, DL_max = 300 Pa, ct_over_sigma = 0.10,109b = 4, Vtip = 210 m/s: W = 29419.950 N, A = 98.0665 m2,110R = 5.5871 m, achieved disk loading 300.0 Pa, CT = 0.005553,111sigma = 0.055532 (CT / sigma = 0.1000), blade area 5.4459 m2, chord1120.2437 m, and M_tip = 0.61710 unchanged at the fixed tip speed.113114## Verification115116- Confirm disk_area_and_radius(44129.925, 350.0) returns (126.0855,117 6.3352) and that thrust / area equals 350.0 Pa exactly, the disk118 sized at the ceiling; PI * radius**2 recovers the area.119- Confirm hover_thrust_coefficient(44129.925, 1.225, 6.3352, 210.0)120 returns 0.006479, equal to the ceiling identity 350.0 / (1.225 *121 210^2); the value is independent of the rotor size at a fixed122 ceiling and tip speed.123- Confirm solidity_closure(0.006479, 0.12) returns 0.053990 and that124 the closure round trip sigma * 0.12 recovers the thrust coefficient125 (design-point check CT / sigma = 0.1200).126- Confirm blade_area_chord(0.053990, 126.0855, 4, 6.3352) returns127 (6.8073, 0.2686) and the solidity identity 4 * 0.2686 * 6.3352 /128 126.0855 recovers 0.053990.129- Confirm tip_mach(210.0, 340.3) returns 0.61710.130- Confirm the disk radius scales with the square root of the mass at a131 fixed ceiling (6.3352 m at 4500 kg against 5.5871 m at 3000 kg) and132 that the tip Mach is unchanged when only the mass or the ceiling133 changes at a fixed tip speed.134- Convention cross-check: disk_area_and_radius(1851.8519, 300.0)135 returns (6.1728, 1.4017), matching the rotorcraft-tail-rotor-sizing136 worked example for the shared A = T / DL_max inversion applied to its137 own anti-torque thrust; the torque-balance inputs never enter here.138- Confirm every non-positive thrust, disk loading, air density, radius,139 tip speed, thrust coefficient, ct-over-sigma design point, solidity,140 area and speed of sound, every blade count below 1 and every141 fractional blade count raises ValueError (15 rejection classes).142- No RNG anywhere: repeated runs give identical floats.143- Run the contract test offline: python3144 scripts/test_rotorcraft_main_rotor_sizing.py (35 tests,145 deterministic).146147## Pitfalls148149- Sizing on a radius that is already given: this leaf derives the disk150 radius from the takeoff weight and the disk-loading ceiling; the151 rotorcraft performance siblings (hover, forward flight, climb, turn)152 all consume a given radius and solidity and never size the rotor.153- Writing the ceiling with the hover sibling's token: the sizing154 ceiling is the main-rotor-disk-loading compound; rotor-disk-loading155 belongs to rotorcraft-hover-performance for a given rotor.156- Closing solidity from a rounded thrust coefficient: the closure runs157 on the module thrust coefficient of the sized rotor (0.006479 into158 0.12 gives 0.053990); round CT to fewer decimals first and the159 division drifts out of the 1e-6 window.160- Forgetting the blade count in the chord: the chord is the total blade161 area spread over b * R, so doubling the blade count halves the chord162 at a fixed solidity and disk.163- Reading the achieved disk loading as below the ceiling: A = T/DL_max164 sizes the disk at the ceiling, so the achieved T / A equals DL_max165 exactly and the CT ceiling identity holds.166- Non-positive thrust, disk loading, rho, radius, tip speed, thrust167 coefficient, design point, solidity, area or speed of sound, and168 blade counts below 1 or fractional raise ValueError; runs are169 deterministic (no RNG).170171## Related leaves172173- flight-mechanics/performance/rotorcraft-hover-performance: the OGE174 hover power and figure of merit for the main rotor sized here.175- flight-mechanics/performance/rotorcraft-tail-rotor-sizing: the176 identical disk sizing inversion applied to the anti-torque rotor from177 the torque balance.178- flight-mechanics/performance/rotorcraft-forward-flight-performance:179 forward flight power of the sized main rotor.180- flight-mechanics/performance/rotorcraft-vertical-climb-performance:181 climb power states of the sized main rotor.182- flight-mechanics/performance/rotorcraft-turn-performance: the turn183 closure that reuses a given hover rotor at n times the weight.184185## Behavior contract (gate 3)186187Run the deterministic contract test (stdlib unittest, offline):188189 python3 scripts/test_rotorcraft_main_rotor_sizing.py190191The test covers the primary worked example chain (4500 kg at the 350 Pa192ceiling, 0.12 design point, 4 blades, 210 m/s) and the secondary1933000 kg / 300 Pa / 0.10 state against the spec anchors, every function194against its defining equation, the ceiling and radius round trips, the195ceiling identity of the thrust coefficient, the solidity closure round196trip, the blade solidity identity, the tip Mach invariance, the shared197inversion cross-check with the sibling worked anchor, run-to-run198determinism, and ValueError rejection of every non-physical input199class.200201## Compliance202203- Standards referenced, not reproduced: FAR-29 is a regulatory204 standard; the main rotor sizing relations above are standard205 engineering methodology, summary-only per standards-map.yaml.206- compliance: STANDARDS-REF, gated: false.