Cabin Outflow Valve Sizing (vehicle-design/sizing/cabin-outflow-valve-sizing)
Use when the task is sizing the cabin outflow and pressure-relief valve
effective area of a pressurized transport at the conceptual level: the
valve must pass the governing pack inflow through a choked orifice at the
cabin pressure, so the effective area follows from the choked-flow
mass-flux relation G = p sqrt(gamma/(R T)) (2/(gamma+1))^((gamma+1)/
(2(gamma-1))) as A = m_dot / G. This leaf implements the choked-flow
valve sizing step in pure Python, stdlib only. It consumes the pack mass
flow and cruise cabin pressure from vehicle-design/sizing/environmental-
control-sizing, which owns the pressurization schedule; this leaf covers
only the valve discharge sizing step for the outflow and relief cases.
Domain quick reference
- Choked-flow mass flux: G = p * sqrt(gamma/(R T)) * (2/(gamma+1))^
((gamma+1)/(2(gamma-1))), with gamma 1.4, R 287.0 J/(kg K). The
flux factor (2/(gamma+1))^((gamma+1)/(2(gamma-1))) equals 0.578704
for air, so G = 0.578704 * p * sqrt(gamma/(R T)).
- Critical pressure ratio: (2/(gamma+1))^(gamma/(gamma-1)) = 0.528282.
The flow chokes only while p_amb/p_cab stays below this threshold; at
the threshold itself the flow is not choked (strict). The rounded
0.528 lies just below the exact threshold, so a cabin ratio of 0.528
is still choked; the module applies the strict comparison against the
exact constant.
- Effective area and diameter: A = m_dot / G, D = sqrt(4*A/pi). The
area is an effective flow area, not a geometric orifice area.
- Outflow valve at cruise: sized with p_cab at the cruise cabin pressure
(75262 Pa for the 8000 ft cabin at 39,000 ft) and the cruise pack
inflow m_pack from the ECS sizing as the governing flow.
- Pressure-relief valve at the clamp: upstream pressure p_cab = p_amb +
dp_clamp (11597 + 61363 = 72960 Pa at 50,000 ft with the 8.9 psi
clamp); the same pack flow then needs a larger effective area because
the relief upstream pressure is lower than the cruise cabin pressure.
- Fit verdict: PASS when the equivalent diameter stays at or below the
nominal valve diameter limit, FAIL otherwise.
- Units are SI throughout: Pa, K, kg/s, m2, m.
- FAR 25.841 frames the cabin pressurization context; the relations
above are standard engineering methodology, summary-only.
Workflow
- Take the governing inputs from the ECS sizing leaf: pack mass flow
m_pack, cruise cabin pressure p_cab, and the ISA ambient pressure at
the sizing altitude (19677 Pa at 39,000 ft).
- Confirm the cruise flow is choked with is_choked (pressure ratio
19677/75262 = 0.2614 is well below the 0.528 threshold); the sizing
functions raise ValueError on an unchoked condition.
- Compute the cruise mass flux with choked_mass_flux at the cabin
temperature (default 288 K).
- Size the outflow valve: outflow_valve_sizing(m_pack, p_cab, p_amb,
max_valve_diameter_m) returns the choked flag, mass flux, effective
area, equivalent diameter and the PASS/FAIL fit verdict against the
nominal diameter limit.
- For the pressure-relief case, take the ISA ambient at the relief
altitude (11597 Pa at 50,000 ft) and the differential pressure clamp
(default 61363 Pa, 8.9 psi).
- Size the relief valve: relief_valve_sizing(m_pack, p_amb,
dp_clamp_pa, max_valve_diameter_m) with upstream pressure
p_amb + dp_clamp and its own choked check at the clamp ceiling.
- Compare both diameters with the nominal valve diameter limit and
report the fit verdicts with the effective areas.
- Confirm the deterministic checks with the contract test
scripts/test_cabin_outflow_valve_sizing.py.
Worked example
Reference installation: cruise at 39,000 ft with p_cab = 75262 Pa
(8000 ft cabin), pack inflow 3.156617 kg/s; relief case at 50,000 ft
with the 8.9 psi (61363 Pa) differential clamp; nominal valve diameter
limit 0.16 m.
- Cruise pressure ratio: 19677/75262 = 0.2614, below 0.528, so the
outflow is choked.
- Cruise mass flux: choked_mass_flux(75262) = 179.2499 kg/(m2 s).
- Outflow valve: outflow_valve_sizing(3.156617, 75262, 19677, 0.16)
gives area 0.017610 m2, diameter 0.14974 m (149.7 mm), fit verdict
PASS against the 0.16 m limit.
- Relief upstream pressure: 11597 + 61363 = 72960 Pa; ratio 11597/72960
= 0.1590, choked.
- Relief mass flux: 173.7672 kg/(m2 s); relief_valve_sizing(3.156617,
11597, 61363, 0.16) gives area 0.018166 m2, diameter 0.15208 m
(152.1 mm), fit verdict PASS.
- The relief valve is 3.2% larger in effective area than the outflow
valve because its upstream pressure at the clamp ceiling is lower.
Verification
- Confirm choked_mass_flux(75262) returns 179.2499 kg/(m2 s) and that
G/(p*sqrt(gamma/(R T))) equals the closed-form flux factor 0.578704
within 1e-6.
- Confirm outflow_valve_sizing(3.156617, 75262, 19677, 0.16) returns
area 0.017610 m2 within 1e-5 and diameter 0.1497 m within 1e-3, with
fit verdict PASS; against a 0.14 m limit the verdict is FAIL.
- Confirm relief_valve_sizing(3.156617, 11597, 61363, 0.16) returns
area 0.018166 m2 within 1e-5 and diameter 0.1521 m within 1e-3.
- Confirm the is_choked truth table: ratio 0.2614 -> True; 0.7 -> False;
at the critical ratio itself -> False (strict threshold).
- Confirm the area round trip: pi*(D/2)^2 recovers the effective area.
- Confirm ValueError rejection of non-positive mass flow, pressure,
temperature, differential clamp and diameter limit, and of unchoked
outflow and relief conditions (e.g. pressure ratio 0.7).
- Run the contract test offline: python3
scripts/test_cabin_outflow_valve_sizing.py (34 tests, deterministic).
Related leaves
- vehicle-design/sizing/environmental-control-sizing: computes the
governing pack inflow m_pack, the cabin pressure at cruise and the
pressurization schedule that are the inputs to this sizing step.
- vehicle-design/sizing/avionics-bay-cooling-sizing: equipment cooling
flow sizing, a separate ECS discipline that does not touch the cabin
outflow path.
- vehicle-design/sizing/aircraft-oxygen-system-sizing: the emergency
oxygen side of cabin altitude protection, complementary to the
pressure-relief path.
Pitfalls
- Sizing the outflow valve from the pressurization schedule alone: the
valve area follows from the choked-flow relation at the cruise cabin
pressure, A = m_dot / G; the schedule regimes belong to the ECS
sizing leaf and only set the operating point used here.
- Applying the relation when the flow is not choked: the mass-flux
formula is valid only below the critical pressure ratio 0.528; an
unchoked case (ratio 0.7) must raise, not silently return an area.
- Mixing the cruise and relief upstream pressures: the outflow valve
sees the cruise cabin pressure 75262 Pa, while the relief valve sees
the clamp ceiling p_amb + dp_clamp = 72960 Pa at 50,000 ft, a lower
upstream pressure that yields a 3.2% larger effective area for the
same pack flow.
- Treating the pack inflow as a valve output: m_pack is the governing
flow computed by the ECS sizing leaf from the occupant and thermal
requirements; this leaf only sizes the discharge path for it.
- Reporting effective area as geometric orifice area: A = m_dot / G is
an effective flow area; a real valve adds discharge coefficient and
trim effects that belong to a later detailed design step.
- Using sea-level ambient pressure: the cruise anchor is 19677 Pa at
39,000 ft and the relief anchor 11597 Pa at 50,000 ft; ambient at the
wrong altitude shifts the choked ratio and the area.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_cabin_outflow_valve_sizing.py
The test covers the choked-flow mass flux at the cruise and relief
worked conditions (179.2499 and 173.7672 kg/(m2 s)), the closed-form
flux identity G/(p*sqrt(gamma/(R T))) = 0.578704 within 1e-6, the
is_choked truth table with the strict critical-ratio threshold, the
outflow valve effective area 0.017610 m2 within 1e-5 and diameter
0.1497 m within 1e-3 with PASS/FAIL fit verdicts against 0.16 m and
0.14 m limits, the relief valve area 0.018166 m2 within 1e-5 and
diameter 0.1521 m within 1e-3, the area round trip through the
equivalent diameter, the relief upstream pressure as p_amb plus the
clamp, determinism, exact dict keys, and ValueError rejection of every
non-physical input and of unchoked outflow and relief conditions.
Compliance
- Standards referenced, not reproduced: FAR 25.841 is the
pressurization cabin context (cabin pressure altitude limits and the
differential pressure clamp); the choked-flow relations above are
standard engineering methodology, summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: cabin-outflow-valve-sizing3description: Use when you must size the cabin outflow valve: compute the choked-flow mass flux G = p sqrt(gamma/(R T)) (2/(gamma+1))^((gamma+1)/(2(gamma-1))) at the cruise cabin condition, divide the governing pack inflow by that flux for the outflow valve effective area, and size the pressure-relief valve effective area to dump the same pack flow at the 8.9 psi differential pressure clamp ceiling. Produces the choked-flow mass flux, the effective area and equivalent diameter for the outflow and relief cases, and a fit verdict against the nominal valve diameter limit. Trigger: cabin outflow valve sizing, outflow valve area, pressure relief valve sizing, cabin choked flow, pressurization valve, differential pressure clamp.4license: Apache-2.05---67# Cabin Outflow Valve Sizing (vehicle-design/sizing/cabin-outflow-valve-sizing)89Use when the task is sizing the cabin outflow and pressure-relief valve10effective area of a pressurized transport at the conceptual level: the11valve must pass the governing pack inflow through a choked orifice at the12cabin pressure, so the effective area follows from the choked-flow13mass-flux relation G = p sqrt(gamma/(R T)) (2/(gamma+1))^((gamma+1)/14(2(gamma-1))) as A = m_dot / G. This leaf implements the choked-flow15valve sizing step in pure Python, stdlib only. It consumes the pack mass16flow and cruise cabin pressure from vehicle-design/sizing/environmental-17control-sizing, which owns the pressurization schedule; this leaf covers18only the valve discharge sizing step for the outflow and relief cases.1920## Domain quick reference2122- Choked-flow mass flux: G = p * sqrt(gamma/(R T)) * (2/(gamma+1))^23 ((gamma+1)/(2(gamma-1))), with gamma 1.4, R 287.0 J/(kg K). The24 flux factor (2/(gamma+1))^((gamma+1)/(2(gamma-1))) equals 0.57870425 for air, so G = 0.578704 * p * sqrt(gamma/(R T)).26- Critical pressure ratio: (2/(gamma+1))^(gamma/(gamma-1)) = 0.528282.27 The flow chokes only while p_amb/p_cab stays below this threshold; at28 the threshold itself the flow is not choked (strict). The rounded29 0.528 lies just below the exact threshold, so a cabin ratio of 0.52830 is still choked; the module applies the strict comparison against the31 exact constant.32- Effective area and diameter: A = m_dot / G, D = sqrt(4*A/pi). The33 area is an effective flow area, not a geometric orifice area.34- Outflow valve at cruise: sized with p_cab at the cruise cabin pressure35 (75262 Pa for the 8000 ft cabin at 39,000 ft) and the cruise pack36 inflow m_pack from the ECS sizing as the governing flow.37- Pressure-relief valve at the clamp: upstream pressure p_cab = p_amb +38 dp_clamp (11597 + 61363 = 72960 Pa at 50,000 ft with the 8.9 psi39 clamp); the same pack flow then needs a larger effective area because40 the relief upstream pressure is lower than the cruise cabin pressure.41- Fit verdict: PASS when the equivalent diameter stays at or below the42 nominal valve diameter limit, FAIL otherwise.43- Units are SI throughout: Pa, K, kg/s, m2, m.44- FAR 25.841 frames the cabin pressurization context; the relations45 above are standard engineering methodology, summary-only.4647## Workflow48491. Take the governing inputs from the ECS sizing leaf: pack mass flow50 m_pack, cruise cabin pressure p_cab, and the ISA ambient pressure at51 the sizing altitude (19677 Pa at 39,000 ft).522. Confirm the cruise flow is choked with is_choked (pressure ratio53 19677/75262 = 0.2614 is well below the 0.528 threshold); the sizing54 functions raise ValueError on an unchoked condition.553. Compute the cruise mass flux with choked_mass_flux at the cabin56 temperature (default 288 K).574. Size the outflow valve: outflow_valve_sizing(m_pack, p_cab, p_amb,58 max_valve_diameter_m) returns the choked flag, mass flux, effective59 area, equivalent diameter and the PASS/FAIL fit verdict against the60 nominal diameter limit.615. For the pressure-relief case, take the ISA ambient at the relief62 altitude (11597 Pa at 50,000 ft) and the differential pressure clamp63 (default 61363 Pa, 8.9 psi).646. Size the relief valve: relief_valve_sizing(m_pack, p_amb,65 dp_clamp_pa, max_valve_diameter_m) with upstream pressure66 p_amb + dp_clamp and its own choked check at the clamp ceiling.677. Compare both diameters with the nominal valve diameter limit and68 report the fit verdicts with the effective areas.698. Confirm the deterministic checks with the contract test70 scripts/test_cabin_outflow_valve_sizing.py.7172## Worked example7374Reference installation: cruise at 39,000 ft with p_cab = 75262 Pa75(8000 ft cabin), pack inflow 3.156617 kg/s; relief case at 50,000 ft76with the 8.9 psi (61363 Pa) differential clamp; nominal valve diameter77limit 0.16 m.7879- Cruise pressure ratio: 19677/75262 = 0.2614, below 0.528, so the80 outflow is choked.81- Cruise mass flux: choked_mass_flux(75262) = 179.2499 kg/(m2 s).82- Outflow valve: outflow_valve_sizing(3.156617, 75262, 19677, 0.16)83 gives area 0.017610 m2, diameter 0.14974 m (149.7 mm), fit verdict84 PASS against the 0.16 m limit.85- Relief upstream pressure: 11597 + 61363 = 72960 Pa; ratio 11597/7296086 = 0.1590, choked.87- Relief mass flux: 173.7672 kg/(m2 s); relief_valve_sizing(3.156617,88 11597, 61363, 0.16) gives area 0.018166 m2, diameter 0.15208 m89 (152.1 mm), fit verdict PASS.90- The relief valve is 3.2% larger in effective area than the outflow91 valve because its upstream pressure at the clamp ceiling is lower.9293## Verification9495- Confirm choked_mass_flux(75262) returns 179.2499 kg/(m2 s) and that96 G/(p*sqrt(gamma/(R T))) equals the closed-form flux factor 0.57870497 within 1e-6.98- Confirm outflow_valve_sizing(3.156617, 75262, 19677, 0.16) returns99 area 0.017610 m2 within 1e-5 and diameter 0.1497 m within 1e-3, with100 fit verdict PASS; against a 0.14 m limit the verdict is FAIL.101- Confirm relief_valve_sizing(3.156617, 11597, 61363, 0.16) returns102 area 0.018166 m2 within 1e-5 and diameter 0.1521 m within 1e-3.103- Confirm the is_choked truth table: ratio 0.2614 -> True; 0.7 -> False;104 at the critical ratio itself -> False (strict threshold).105- Confirm the area round trip: pi*(D/2)^2 recovers the effective area.106- Confirm ValueError rejection of non-positive mass flow, pressure,107 temperature, differential clamp and diameter limit, and of unchoked108 outflow and relief conditions (e.g. pressure ratio 0.7).109- Run the contract test offline: python3110 scripts/test_cabin_outflow_valve_sizing.py (34 tests, deterministic).111112## Related leaves113114- vehicle-design/sizing/environmental-control-sizing: computes the115 governing pack inflow m_pack, the cabin pressure at cruise and the116 pressurization schedule that are the inputs to this sizing step.117- vehicle-design/sizing/avionics-bay-cooling-sizing: equipment cooling118 flow sizing, a separate ECS discipline that does not touch the cabin119 outflow path.120- vehicle-design/sizing/aircraft-oxygen-system-sizing: the emergency121 oxygen side of cabin altitude protection, complementary to the122 pressure-relief path.123124## Pitfalls125126- Sizing the outflow valve from the pressurization schedule alone: the127 valve area follows from the choked-flow relation at the cruise cabin128 pressure, A = m_dot / G; the schedule regimes belong to the ECS129 sizing leaf and only set the operating point used here.130- Applying the relation when the flow is not choked: the mass-flux131 formula is valid only below the critical pressure ratio 0.528; an132 unchoked case (ratio 0.7) must raise, not silently return an area.133- Mixing the cruise and relief upstream pressures: the outflow valve134 sees the cruise cabin pressure 75262 Pa, while the relief valve sees135 the clamp ceiling p_amb + dp_clamp = 72960 Pa at 50,000 ft, a lower136 upstream pressure that yields a 3.2% larger effective area for the137 same pack flow.138- Treating the pack inflow as a valve output: m_pack is the governing139 flow computed by the ECS sizing leaf from the occupant and thermal140 requirements; this leaf only sizes the discharge path for it.141- Reporting effective area as geometric orifice area: A = m_dot / G is142 an effective flow area; a real valve adds discharge coefficient and143 trim effects that belong to a later detailed design step.144- Using sea-level ambient pressure: the cruise anchor is 19677 Pa at145 39,000 ft and the relief anchor 11597 Pa at 50,000 ft; ambient at the146 wrong altitude shifts the choked ratio and the area.147148## Behavior contract (gate 3)149150Run the deterministic contract test (stdlib unittest, offline):151152 python3 scripts/test_cabin_outflow_valve_sizing.py153154The test covers the choked-flow mass flux at the cruise and relief155worked conditions (179.2499 and 173.7672 kg/(m2 s)), the closed-form156flux identity G/(p*sqrt(gamma/(R T))) = 0.578704 within 1e-6, the157is_choked truth table with the strict critical-ratio threshold, the158outflow valve effective area 0.017610 m2 within 1e-5 and diameter1590.1497 m within 1e-3 with PASS/FAIL fit verdicts against 0.16 m and1600.14 m limits, the relief valve area 0.018166 m2 within 1e-5 and161diameter 0.1521 m within 1e-3, the area round trip through the162equivalent diameter, the relief upstream pressure as p_amb plus the163clamp, determinism, exact dict keys, and ValueError rejection of every164non-physical input and of unchoked outflow and relief conditions.165166## Compliance167168- Standards referenced, not reproduced: FAR 25.841 is the169 pressurization cabin context (cabin pressure altitude limits and the170 differential pressure clamp); the choked-flow relations above are171 standard engineering methodology, summary-only per standards-map.yaml.172- compliance: STANDARDS-REF, gated: false.