Energy Carriers#

This page covers the four energy pathways: electricity (grid decarbonisation), liquid hydrogen, jet fuel/SAF (including PtL), and methane.

Electricity#

Implementation status: Partial (coverage matrix row Electricity). Default: linear decarbonisation. The low-carbon CI is a user input per the RST (ci_elec_lc, DL-129 — previously a hardcoded 50 gCO₂/kWh floor), and setting curve_elec_lc drives grid CI through the market-share curve family (half-S, full-S, linear, accelerating, piecewise, flat, pulse — DL-161) instead of the legacy linear interpolation. Remaining divergence: CASCADE’s α_lowcarbon has no stated value in the RST. Source: src/engine/saf.ts:gridCIAt, gridCIAtFor Test evidence: tests/dl129-grid-ci-lowcarbon.spec.ts, tests/curve-shapes-flat-pulse.spec.ts, tests/ptl-stoich.spec.ts (monotonicity cases)

Grid carbon intensity declines linearly from today’s value (grid, default 400 gCO₂/kWh) to an ambition-selected 2050 target:

\[CI_{elec}(y) = CI_0 + \big(CI_{2050} - CI_0\big)\,t, \qquad t = \frac{y - 2019}{2050 - 2019}\]
\[CI_{2050} = CI_0\,(1 - p) + 50\,p\]

where \(p\) is the low-carbon share at 2050 from the energy-ambition table (60/82/92/98/100 % for levels 1–5) and 50 gCO₂/kWh is the assumed renewables residual floor. In per-MJ terms the engine divides by 3.6.

Hydrogen — LH₂ delivered carbon intensity#

Implementation status: Exact for the delivered-LH₂ closed form (DL-024, 5-case equation-level parity incl. SMR blends and boil-off); Partial for the production-mix dynamics (coverage matrix row Hydrogen) Source: src/engine/cascade.ts:computeLCA (CI block), src/engine/cascade.ts:h2ElysShareAt, src/engine/saf.ts:ciGh2At Test evidence: tests/hydrogen-pathways.spec.ts

The full delivered-CI chain — production mix, liquefaction, vapor loss and boil-off recovery (cf. CASCADE Hydrogen, eqs. hydrogen_electrolysis_CI, hydrogen_SMR_CI, hydrogen_vapor_loss_boiloff_recovery) — as implemented:

\[CI_{elys} = \varepsilon_{elys}\, CI_{elec}, \qquad \varepsilon_{elys} = \frac{1}{\eta_{elys}}, \qquad CI_{elec} = \frac{CI_{grid}}{3.6}\]
\[CI_{SMR} = \varepsilon_{SMR}\, CI_{elec} + CI_{SMR,const} = 0.045\, CI_{elec} + 85.95\]
\[CI_{prod} = (1 - s_{SMR})\, CI_{elys} + s_{SMR}\, CI_{SMR}\]
\[CI_{LH_2,del} = \frac{CI_{prod} + CI_{elec}\, n_{liq}\,(1 + f_{BOR} f_{loss})\, \varepsilon_{liq} + (1 - f_{BOR})\, f_{loss}\, 96.7} {1 - f_{loss}\,(1 - f_{BOR})}\]

with \(\varepsilon_{liq} = 3.6 \cdot e_{liq} / 120\) (liquefaction kWh/kg → MJ electricity per MJ H₂; default 12 kWh/kg), \(f_{loss}\) the vapor-loss fraction (vap, default 2 %), \(f_{BOR}\) the boil-off recovery fraction (bor, default 50 %), \(n_{liq} = 1\), and 96.7 gCO₂e/MJ the climate intensity of vented hydrogen (\(\mathrm{GWP}_{100} = 11.6\); [Sand et al., 2023, Warwick and others, 2023]). The denominator is the produced-vs-delivered correction: fuel that evaporates in transit must be produced but never reaches the aircraft (see Energy Demand for the demand-side use of the same identity).

The electrolysis share of production follows a year-varying adoption curve (h2ElysShareAt; default half-S, entry 2 % in 2019 → 70 % in 2050) with a historical freeze: pre-2024 values hold at the entry value so the calibrated 2019–2023 baseline never shifts retroactively (h2_historical_frozen, default true).

A superconducting-motor efficiency gain sc scales the delivered CI by \((1 - sc/100)\) (see HyFlux Extensions).

Jet fuel and SAF#

Implementation status: Simplified (coverage matrix rows Jet Fuel, SAF — per-feedstock blend with static CORSIA CIs; PtL two-track) Source: src/engine/saf.ts:safBlend, src/engine/saf.ts:feedstockCI, src/engine/saf.ts:ptlStoichCI Test evidence: tests/ptl-stoich.spec.ts, tests/cascade-parity.spec.ts

Seven feedstocks each follow their own adoption curve (distinct start/end years, peak share and shape; cf. CASCADE Jet Fuel, blend equations). At year \(y\):

\[X_i(y) = X_{i,max} \cdot s_i\!\left(\frac{y - t_{i,start}} {t_{i,end} - t_{i,start}}\right), \qquad X_{tot} = \min\!\Big(\sum_i X_i,\; C_{amb}\Big)\]

where \(C_{amb}\) is the energy-ambition ceiling on total SAF share at 2050 (35/50/65/78/85 % for levels 1–5), applied as a pro-rata scale-back. Feedstock defaults: HEFA-UCO (CI 13.9, peak 12 %), FT-MSW (28.4, 18 %), FT-Miscanthus (20.2, 14 %), ATJ (32.8, 16 %), PtL-Wind (dynamic, 20 %), PtL-Grid (dynamic, 5 %), LCAF (65.0, 3 %) — static CIs from CORSIA default life-cycle values [ICAO, 2022].

Blend CI and the energy wedge:

\[CI_{blend}(y) = \frac{\sum_i X_i(y)\, CI_i(y)}{\sum_i X_i(y)}, \qquad \Delta_{en} = G_{gross}\, X_{tot}\left(1 - \frac{CI_{blend}}{CI_{JetA1}}\right)\]

PtL stoichiometric formulation (DL-024). Two-track via ptl_model; the default 'cascade_stoich' implements the CASCADE jet-fuel PtL-CI formulation:

\[CI_{PtL}(y) = \varepsilon_{PtL,elec}\, CI_{elec}(y) + \varepsilon_{PtL,H_2}\, CI_{GH_2}(y)\]

with \(\varepsilon_{PtL,elec} = 0.61\) MJ/MJ (FT-reactor + DAC electricity + net heat bundle, efuels_elec_ei), \(\varepsilon_{PtL,H_2} = 1.4\) MJ_H₂/MJ_SAF from FT stoichiometry — \((2n{+}1)\,H_2 + n\,CO \rightarrow C_nH_{2n+2} + n\,H_2O\) with RWGS \(CO_2 + H_2 \rightarrow CO + H_2O\); CASCADE reports 1.36–1.42 (cf. CASCADE Jet Fuel, ptl-saf-ci) — and \(CI_{GH_2}\) the gaseous-hydrogen production CI blended over electrolysis and SMR by the shared smr_share (DL-026; \(CI_{GH_2} = (1-s)\,CI_{elec}/\eta + s\,CI_{SMR}\)). Electricity source is grid-linked or a dedicated constant supply (efuels_ci_elec; the wind variant is always dedicated). The legacy track 'legacy_factor' keeps \(CI_{PtL} = \max(5,\; \varepsilon\, CI_{elec} + 8)\) with \(\varepsilon = 0.32\) (wind) / 0.87 (grid). Deviation: the stoichiometric track has no artificial floor — dedicated zero-carbon supply drives CI toward zero, the physically correct behaviour.

Methane#

Implementation status: All 11 Methane page equations implemented (DL-134); values two-track per DL-130 (see the F1 warning below). Fossil/bio CIs conditionally validated; NEC/DW/WW category split landed DL-048; editable \(f_{loss}\) year trajectory DL-081 (leakage-trajectory.ts); grid-linked liquefaction CI \(\varepsilon_{liq}\,CI_{elec}(t)\) DL-162; downstream vapour-loss compounding DL-134 (methane-stoichiometry.ts:downstreamVapourLoss). Source: src/engine/saf.ts:methaneBlend, src/engine/saf.ts:ciCh4PtgAt, src/engine/saf.ts:ch4LossTermsAt, src/engine/methane-stoichiometry.ts Test evidence: tests/methane-parity.spec.ts, tests/carrier-conservation.spec.ts, tests/methane-split.spec.ts, tests/leakage-trajectory.spec.ts, tests/methane-stoichiometry.spec.ts

Methane displaces Jet-A1 like SAF, on its own adoption curve (ch4_share, entry/saturation years, shape). The blend mixes three pathways whose shares renormalise to \(\sum X = 1\):

\[CI_{CH_4,blend} = X_{bio}\, CI_{bio} + X_{PtG}\, CI_{PtG}(y) + (1 - X_{bio} - X_{PtG})\, CI_{fossil}\]

with fossil LNG WTW 68 and bio-methane WTW 22 gCO₂e/MJ (defaults; combustion-only 55 both). The e-methane (PtG) lifecycle CI (DL-032; cf. CASCADE Methane, eq. methane_ptg_ci):

\[CI_{PtG}(y) = \frac{CI_{elec}(y)\,\varepsilon_{PtG} + CI_{GH_2}(y)\,\varepsilon_{H_2}}{1 - f_{loss}} + f_{loss}\, CI_{CH_4,loss} + \varepsilon_{liq}\, CI_{elec}(y)\]

with \(\varepsilon_{PtG} = 0.25\) (DAC electricity + net heat), \(\varepsilon_{H_2} = 1.14\) MJ_H₂/MJ_CH₄ (stoichiometric, \(CO_2 + 4H_2 \rightarrow CH_4 + 2H_2O\)), \(\varepsilon_{liq} = 0.04\) (CH₄ liquefaction), \(f_{loss} = 1.6\%\) and \(CI_{CH_4,loss} = 558\) gCO₂e/MJ. All constants editable.

UI (DL-032). The Energy & Fuels modal exposes methane as its fourth top-level tab set (4d. Methane in EnergyFuelsModal.tsx), with four sub-tabs:

  • 🏠 Home — pathway summary table (shares, CIs, computed 2050 PtG CI), the methane adoption CurveEditor (entry/saturation years, share, shape), and the pathway-mix sliders: bio-methane fraction (ch4_bio_frac) and e-methane fraction (ch4_ptg_frac), with fossil LNG shown as the implicit remainder. Over-specified mixes (bio + PtG > 100 %) raise an inline warning; the engine normalises pro-rata so \(\sum X = 1\).

  • Fossil LNG — WTW CI slider (default 68 gCO₂e/MJ) with a live vs-Jet-A1 reduction readout.

  • Bio-Methane — WTW CI slider (default 22 gCO₂e/MJ); the tab notes the CASCADE NEC/dry-waste/wet-waste split and HyFlux’s single-bio-bucket simplification (the engine-side split landed later, DL-048).

  • e-Methane (PtG) — live computed-CI readout (2050, current settings) plus sliders for every PtG constant: ch4_eps_ptg, ch4_eps_h2 (RST value 1.14), ch4_eps_liq, ch4_f_loss and ci_ch4_loss (whose hint records the F1 558-vs-596 inconsistency).

Warning

Methane-parity findings (Boeing documentation inconsistencies), recorded in the claim register:

  • F1 — CASCADE’s published \(CI_{CH_4,loss} = 558\) contradicts its own inputs: \(\mathrm{GWP}_{100} = 29.8 \times 1000 / 50\ \mathrm{MJ/kg} = 596\). The published 558 back-implies GWP 27.9 — a 6.4 % internal documentation inconsistency. The frozen parity track adopts the published 558 (evidence-register central; the derived 596 is selectable via ci_ch4_loss — DL-022, BC-13). DL-130 made this two-track: CURRENT_EVIDENCE modules default to the derived 596 (and to the Sabatier LHV floor \(\varepsilon_{H_2,PtG} = 1.20636\) over the published 1.14, which sits 5.4 % below the stoichiometric minimum), with the published values reproduced under CASCADE_PARITY (src/engine/basis.ts).

  • F2\(f_{loss}\) appears inside the defining equation for \(CI_{loss}\) and as a multiplier in the CI equations — a notational double-count. HyFlux adopts the single-multiplier reading.

Carrier conservation (DL-033)#

Implementation status: Fixed (aggregate-mix constraint enforced; in-code DL-033 label — the decision log assigns DL-033 to Workstream B, a recorded numbering collision) Source: src/engine/cascade.ts:computeLCA (energy-wedge carrier scale) Test evidence: tests/carrier-conservation.spec.ts (10 tests, including the DL-032 PtG pathway cases)

CASCADE constrains all fuel-carrier market shares to sum to 1 (cf. CASCADE Jet Fuel / Methane, aggregate-mix equations). HyFlux specifies the SAF and methane adoption curves independently, so an aggressive scenario could over-subscribe the energy wedge (SAF 85 % + CH₄ 50 % = 135 % of fuel energy displaced). The sweep therefore scales both carriers pro-rata when their shares exceed the budget:

\[s_{carrier} = \min\!\Big(1,\; \frac{1}{X_{SAF} + X_{CH_4}}\Big)\]
\[\Delta_{en} = G_{gross}\, s_{carrier} \Big[ X_{SAF}\Big(1 - \frac{CI_{blend}}{CI_{JetA1}}\Big) + X_{CH_4}\Big(1 - \frac{CI_{CH_4,blend}}{CI_{JetA1}}\Big) \Big]\]

The fix is bit-identical whenever \(X_{SAF} + X_{CH_4} \le 1\) — always true for the frozen baseline (ch4_share defaults to 0, so \(s_{carrier} = 1\)). Tests pin the over-subscribed pro-rata value, the never-more-than-100 %-of-gross bound, the conservation identity under over-subscription, the untouched within-budget regime, and the methane-off default identity.

Known deviations / limitations#

  • Electricity decarb defaults to linear; the market-share curve family incl. half-S is opt-in via curve_elec_lc (DL-161), and α_lowcarbon is never valued in the RST.

  • The time-varying h2_elec_share curve is not yet threaded into ciGh2At — the GH₂ track uses the same static smr_share as the LH₂ chain (consistent, but coarser; recorded residual).

  • SMR share applies even to dedicated-supply PtL variants (SMR feedstock is fossil methane regardless of electricity source; documented).

  • Methane: the NEC/dry-waste/wet-waste category split (DL-048, tests/methane-split.spec.ts) and downstream vapour-loss compounding (DL-134, methane-stoichiometry.ts) are implemented; the compounding enters production as a single already-compounded f_loss fraction rather than per-stage inputs.

  • Non-CO₂ radiative-forcing indices (rfi_*) are display-only.