DOI: 10.5061/dryad.dr7sqvb81
title: Data from: Flow heterogeneity controls dissolution dynamics in topologically complex rocks

description: Rock dissolution is a common subsurface geochemical reaction affecting
 pore space properties, crucial for reservoir stimulation, carbon storage,
 and geothermal energy. Predictive models for dissolution remain limited
 due to incomplete understanding of the mechanisms involved. We examine the
 influence of flow, transport, and reaction regimes on mineral dissolution
 using time-resolved data from 3D rocks. We find that initial pore
 structure significantly influences the dissolution pattern, with reaction
 rates up to two orders of magnitude lower than batch conditions given
 solute and fluid-solid boundary constraints. Flow unevenness determines
 the location and rate of dissolution. We propose two models describing
 expected dissolution patterns and effective reaction rates based on
 dimensionless metrics for flow, transport, and reaction. Finally, we
 analyze feedback between evolving flow and pore structure to understand
 conditions that regulate/reinforce dissolution hotspots. Our findings
 underscore the major impact of flow arrangement on reaction front
 propagation and provide a foundation for controlling dissolution hotspots.
description: This data set contains (a) the initial steady-state Eulerian flow
 field at the pore-scale and (b) the temporal evolution of the dissolution
 reaction rate for various rock samples considered in this study. Briefly,
 for resolving the flow field, binary 3D rock images at time t=0 are used
 as the geometric boundaries in which the Navier-Stokes equations are
 solved numerically with the finite volume method (FlowDict, Math2Market).
 The boundary conditions imposed a uniform pressure gradient of 1kPa at
 opposite boundaries of each sample volume. For tracking the evolution of
 the reaction rate, reactive transport simulations are performed with the
 Digital Rock Physics module of GeoDict (Math2Market), starting with the
 initial rock image. Briefly, each dissolution simulation is run in
 so-called batches. During each batch, (i) the pore geometry is updated,
 (ii) the flow within that geometry is resolved to achieve an average
 linear velocity corresponding to the desired Peclet number of the study
 (iii) N=50,000 acidified particles are tracked in the domain via a
 flux-weighted injection, and (iv) collisions between particles and the
 solid surface are recorded. At the end of a batch, the solid voxels where
 collisions occurred are removed to update the geometry for the next batch.
 Only one voxel layer is permitted to be dissolved in each batch.  Steps
 i-iv are repeated for each batch until the sample meets quasi-equilibrium
 for its reaction rate (i.e., dre/dt &lt; 5%).
description: # Flow heterogeneity controls dissolution reaction behavior in geologic
 porous media --- This dataset contains flow field and effective reaction
 rate information for 26 different dissolution rock experiments and
 simulations. Specifics on the imposed hydrodynamics (Peclet, Damkohler,
 and Kinetic numbers), initial flow heterogeneity (percolation threshold),
 mineralogy and batch reaction rate, converged effective reaction rate, and
 microtomography scan dimensions and resolution are given in a summary
 table (`DataSummaryTable.csv`). This file contains the sample dimensions
 (nx, ny, nz) in units of pixels; the voxel size in microns; initial_pc,
 Pe, advective Damkohler (adv_Da), and diffusive Damkohler (diff_Da) in
 dimensionless units; batch reaction rate and converged effective reaction
 rate in units of mol/m^2 s; and reaction ratio in dimensionless units. The
 Eulerian flow fields were computed in the pore space of each sample’s
 segmented microtomography scan using the FlowDict module of GeoDict, a
 commercial digital porous material simulator. This software employs the
 finite volume method to solve the classical set of Navier-Stokes equations
 with the steady state condition. For the boundary conditions of the
 computation, a uniform pressure gradient of 1 kPa was set on two opposite
 faces of the sample volume. This flow field is provided as the magnitude
 of the three directional components in meters per second
 (`vel_magnitude.raw`). Accessing flow field data in .raw format can be
 done with any programming software, including Python, MATLAB, and FIJI.
 The dissolution information is given by a timeseries of the effective
 reaction rate (`effective_reaction_rate.txt`). The effective reaction
 rates were computed in accordance with Equation 4 from Menke et al., 2015
 (doi: 10.1021/es505789f) with units of mols per square meter per second.
 The converged effective reaction rate reported in the summary table
 (`DataSummaryTable.csv`) is computed as the the average reaction rate from
 the point of convergence to the end of the experiment/simulation.
 Convergence is reached when the rate of change of the effective reaction
 rate is less than five percent. ## Description of the data and file
 structure There is one folder (26 total) for each dissolution
 experiment/simulation. Each folder contains (i) the magnitude of the
 Eulerian flow field (`vel_magnitude.raw`) and (ii) the evolving effective
 reaction rate timeseries (`effective_reaction_rate.txt`). For the majority
 of the samples, the flow direction is in the z- or third-direction, except
 for sample 6 whose flow direction is in the x- or first-direction.
 `DataSummaryTable.csv` contains the sample label, image dimensions, voxel
 size, dissolution behavior, initial percolation threshold, Peclet number,
 Damkohler number (advective- or first-Damkohler), Kinetic number
 (diffusive- or second-Damkohler), batch reaction rate, converged effective
 reaction rate measured from experiement or simulation, reaction ratio, and
 mineralogy. `example.py` demonstrates how to run the functions defined in
 functions.py with the supplied data. `functions.py` contains functions to
 calculate the percolation threshold and effective reaction rate. ##
 Sharing/Access information Data for samples 1, 6, and 7 was derived from
 the following source: * Pereira Nunes, J. P., Bijeljic, B., and Blunt, M.
 J. (2016). Pore-space structure and average dissolution rates: A
 simulation study. Water Resources Research, 52, 7198–7212.
 [https://doi.org/10.1029/2018WR024137](https://doi.org/10.1029/2018WR024137) * Various similiar micro-CT scans can be downloaded here[[https://www.imperial.ac.uk/earth-science/research/research-groups/pore-scale-modelling/micro-ct-images-and-networks/](https://www.imperial.ac.uk/earth-science/research/research-groups/pore-scale-modelling/micro-ct-images-and-networks/)] Data for samples 2, 3, 9, 10, 11, 12, 13, 14, 15, 16, 17, and 18 was derived from the following sources: * Menke, H. P., Bijeljic, B., & Blunt, M. J. (2017). Dynamic reservoir-condition microtomography of reactive transport in complex carbonates: Effect of initial pore structure and initial brine pH. Geochimica et Cosmochimica Acta, 204, 267-285. [https://doi.org/10.1016/j.gca.2017.01.053](https://doi.org/10.1016/j.gca.2017.01.053) * Imperial College London, Qatar Carbonates And Carbon Storage Research Centre (2019): Dynamic reservoir-condition microtomography of reactive transport in complex carbonates: Effect of initial pore structure and initial brine pH in Ketton, Estaillades, and Portland Limestones. British Geological Survey. [http://www.bgs.ac.uk/ukccs/accessions/index.html#item129320](http://www.bgs.ac.uk/ukccs/accessions/index.html#item129320) Data for sample 8 was derived from the following sources: * Menke, H. P., Bijeljic, B., Andrew, M. G., & Blunt, M. J. (2015). Dynamic three-dimensional pore-scale imaging of reaction in a carbonate at reservoir conditions. Environmental science & technology, 49(7), 4407-4414. [https://doi.org/10.1021/es505789f](https://doi.org/10.1021/es505789f) * Imperial College London, Qatar Carbonates And Carbon Storage Research Centre (2018): Dynamic X-ray micro-tomography Imaging of reaction of CO2-acidified brine with limestone at reservoir conditions. British Geological Survey. [http://dx.doi.org/10.5285/35cc4916-bfe3-4713-bbd1-75aa0025cbe1](http://dx.doi.org/10.5285/35cc4916-bfe3-4713-bbd1-75aa0025cbe1) Data for samples 19, 20, 21, and 22 was derived from the following sources: * Al-Khulaifi, Y., Lin, Q., Blunt, M. J., & Bijeljic, B. (2019). Pore-scale dissolution by CO2 saturated brine in a multimineral carbonate at reservoir conditions: Impact of physical and chemical heterogeneity. Water Resources Research, 55, 3171–3193. [https://doi.org/10.1029/2018WR024137](https://doi.org/10.1029/2018WR024137) * Al-Khulaifi, Y.; Lin, Q.; Blunt, M.J., and Bijeljic, B. (2019): Pore-Scale Dissolution by CO2 Saturated Brine in a Multi-Mineral Carbonate at Reservoir Conditions: Impact of Physical and Chemical Heterogeneity. British Geological Survey. (Dataset). [http://dx.doi.org/10.5285/52b08e7f-9fba-40a1-b0b5-dda9a3c83be2](http://dx.doi.org/10.5285/52b08e7f-9fba-40a1-b0b5-dda9a3c83be2) Data for samples 23, 24, 25, and 26 was derived from the following sources: * Al-Khulaifi, Y., Lin, Q., Blunt, M. J., & Bijeljic, B. (2018). Reservoir-condition pore-scale imaging of dolomite reaction with supercritical CO2 acidified brine: Effect of pore-structure on reaction rate using velocity distribution analysis. International Journal of Greenhouse Gas Control, 68, 99-111. [https://doi.org/10.1016/j.ijggc.2017.11.011](https://doi.org/10.1016/j.ijggc.2017.11.011) * Lin, Qingyang; Al-Khulaifi, Yousef; Blunt, Martin J.; Bijeljic, Branko (2017). Reservoir-Condition Pore-Scale Imaging of Dolomite Reaction with Supercritical CO2 Acidified Brine: Effect of Pore-Structure on Reaction Rate using Velocity Distribution Analysis. figshare. Dataset. [https://doi.org/10.6084/m9.figshare.5589949.v2](https://doi.org/10.6084/m9.figshare.5589949.v2) ## Code/Software All included codes can be run in Python (tested in v.3.9.5) and require the following libraries: numpy (tested in v.1.25.2), pandas (tested in v.1.2.4), scikit-image (tested in v.0.18.1, imported as skimage in code). In order to run example.py, one will need to ensure (i) functions.py is in the same folder as example.py and (ii) the 'directory' variable (line 7, as uploaded) is customized to the correct data location. Both example.py and functions.py are fully commented to document what the code is doing.