Complete-cycle PHREEQC validation¶
A 20-cell, 50 m column runs for 250 days: injection (0–50), storage (50–200), production (200–250). Both workflows use Soreide–Whitson and the high-rate parameter set. The reference uses five chemistry substeps per 2-day flow step; H2sim uses one split. Additional transport and clogging effects are disabled.
result = runPhreeqcValidation('ugfactRoot', referenceRoot, ...
'gridCells', 20, 'totalDays', 250, 'rate', 'highrate');
plotCompositionalPhreeqcValidation(result);
Hydrogen consumption and dissolved H₂¶
Percentages use a fixed denominator: the total prescribed ideal-gas injection at 101325 Pa and 288.15 K. This is a reaction-source quadrature diagnostic, not an independent inventory-deficit measurement. At day 250 H2sim consumes 38.857% and the reference 37.704%, a difference of 1.153 percentage points. This comparison does not establish grid or timestep convergence.
PHREEQC geochemistry over the full cycle¶
Each observable shares color limits across implementations. DIC denotes total dissolved inorganic-carbon molality, rather than only dissolved CO₂. The compositional run records 87 cell-step elemental-audit failures (maximum absolute residual 3.61 × 10⁻⁵ mol); the reference lacks the same audit. The two implementations also retain distinct acetate/nitrogen and aqueous-organic-carbon bookkeeping.
Hydrogen consumed by reaction¶
MET, ACE, and SRB sum to the total curve. At day 250 the compositional contributions are 33.357%, 5.092%, and 0.408%; the reference contributions are 32.439%, 4.879%, and 0.386%. Dissolution and unrecovered gas are excluded. Full packed outputs are retained for replotting.
Reference: UGFACT, Ahmadreza Shojaee. The adapter retains reference reaction equations and records total DIC directly from PHREEQC selected output.