A ground control loop meters two cryogenic propellants — liquid oxygen (LOX, 90 K) and liquid hydrogen (LH2, 20 K) — into the vehicle's tanks, driving each toward a target mass split by the mixture ratio r you set:
m_LOX(target) = M·r/(r+1)
m_LH2(target) = M/(r+1)
flow_i = clamp(k·(target_i − loaded_i), 0, maxFlow)
Each tank's ullage — the vapor space above the liquid — obeys the ideal gas law. As liquid rises, the headspace volume V shrinks and pressure climbs even with no added gas; ambient heat leak also boils off a trickle of liquid into vapor, adding moles n over time:
P·V = n·R·T (R = 8.314 J/mol·K)
P = n·R·T / V_headspace
dm/dt = fill_rate − boiloff_rate
A relief valve automatically vents vapor the instant P crosses your setpoint, holding pressure near that ceiling — exactly the safety behaviour described for real launch-pad fueling systems. Faster loading rates fill the tanks sooner but compress the ullage headspace more abruptly, producing sharper pressure transients and more frequent venting; slower rates give heat-leak boil-off more time to accumulate before the tank tops off, but keep pressure closer to a steady state. Loading stops the moment each tank reaches its target mass; the sequence is READY only once both propellants are topped off and pressures have settled.
- Target ratio — sets how the total propellant budget splits between oxidizer and fuel.
- Max flow rate — the valve's capacity; higher values fill faster but overshoot pressure spikes more.
- Heat leak — how fast ambient warmth boils liquid into ullage vapor.
- Relief setpoint — the pressure at which the automatic vent fires.