High-resolution three-dimensional X-ray micro-computed tomography (µ-CT) was used to quantify steady-state relative permeability and pore-scale flow behavior of hydrogen (H 2 ) and carbon dioxide (CO 2 ) in a water-wet carbonate rock under subsurface conditions. This work presents a direct comparison of CO 2 and H 2 storage through pore-scale comparisons of their steady-state relative permeability, pore occupancy, connectivity, and trapping within the same rock enabling predictions of their contrasting storage behavior. The results show that CO 2 had higher gas relative permeability than H 2 at comparable brine saturations, indicating that CO 2 maintained more effective connected flow pathways through the pore network. After brine flooding, the residual H 2 saturation was higher than the residual CO 2 saturation, indicating stronger snap-off and disconnection of H 2 during imbibition. Pore occupancy and ganglia analysis showed that both gases preferentially occupied larger pores and throats, but their filling and connectivity pathways differed. CO 2 occupied a broader range of connected pore and throat elements, whereas H 2 formed larger ganglia in some cases but remained more prone to remobilization and disconnection. Capillary pressure measurements were consistent with these observations, with lower capillary pressure associated with larger and more connected gas clusters, and higher capillary pressure linked to disconnected residual gas. These results are specific to the investigated carbonate sample not all carbonate rocks, given the wide variability in pore structure, vug development, and microporosity among carbonate reservoirs. These findings highlight the importance of gas-specific pore-scale behavior for predicting CO 2 storage security and H 2 storage and recovery efficiency in subsurface reservoirs.
No takes yet. Share an insight, caveat, or question.
AlZaabi et al. (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: