-
Notifications
You must be signed in to change notification settings - Fork 0
Model 02 Haldane Equation
Applies to constant-depth segments (stay at one depth for time
// js/decoModel.js:108-111
export function haldaneEquation(initialPressure, alveolarPressure, time, halfTime) {
const k = getRateConstant(halfTime);
return alveolarPressure + (initialPressure - alveolarPressure) * Math.exp(-k * time);
}Where
// js/decoModel.js:84-86
export function getAlveolarN2Pressure(ambientPressure, n2Fraction = N2_FRACTION) {
return (ambientPressure - WATER_VAPOR_PRESSURE) * n2Fraction;
}With n2Fraction changes to the new gas's N₂-equivalent fraction (for trimix,
Compartment TC1 (variant C,
Rate constant:
Ambient pressure at 20 m:
Alveolar N₂ at depth:
Initial tissue N₂ (surface saturation on air):
Tissue pressure after 10 min (two half-times):
Verification: after two half-times the tissue should have closed 75% of the initial
// js/decoModel.js:838 (signature)
export function simulateDepthTime(tissuePressures, depth, time, n2Fraction)Iterates over all 16 compartments applying the Haldane equation at constant depth, returning a new tissues object. Called from calculateTissueLoading() (js/decoModel.js:1178) whenever two consecutive waypoints have the same depth.
-
Model-03-Schreiner-Equation — the generalization for when depth changes linearly. Haldane is the degenerate case with
$R = 0$ . - Algo-01-Ascent-Simulation — how Haldane drives level-segment tissue loading inside the full simulation loop.
- References — original Bühlmann sources.