Data for: Validating a Numerical Model for Calco-Carbonic Reactive Flow in a Laboratory Scale Fracture Analog

DOI

This dataset contains laboratory-experiment data and simulation data for the publication Validating a Numerical Model for Calco-Carbonic Reactive Flow in a Laboratory Scale Fracture Analog.

The structure of the dataset is as follows:

experimentalDataset – Contains the relevant experimental data set.
ftb – Contains the simulation data organized in folders for each case.
python – Contains Python scripts that allow reproducing the publication graphs. Data created with the scripts are also saved in dedicated folders.

The dataset includes optional data sets:

ftb_raw – Contains the raw simulation data for the forced flow simulations.
stg – Contains the simulation output raw data for the initializers for the simulations in ftb.

Note on Raw Data: The ftb_raw and stg folders contain raw simulation outputs (".dumux" files). If you intend to reconstruct VTK contour plots from these specific folders, please read to the Reproducing the VTK Files section at the end of this documentation. This step is not required for reproducing the publication's figures using the standard Python scripts. To create the graphs in the publication, download all files and uncheck all entries tagged with Optional Data.

Unzip the downloaded folder, navigate to it via the command line, and then execute:

tar -xzf ftb.tar.gz

to extract the data sets. The folder structure inside ftb is explained below.

Once the data files are extracted, you can execute the Python scripts. Ensure that you have the dependencies listed in requirements_paper_2025.txt installed. The scripts can recreate the graphs directly with Python.

Create Figures

To reproduce the plots and figures in the paper, navigate to the folder containing the Python scripts:

cd your_folder_name/python

Python Scripts (folder python)

The main entry point is plot.py. It provides three sub-commands:

time – Concentration vs. time.
da – Damköhler-number curves.
sherwood – Sherwood-number curves.

Common options (apply before the sub-command):

--save – Write each figure to a PDF (default folder: fracture_analog/python/figures).
--show – Display the interactive Matplotlib window.
--out-dir DIR – Destination directory for saved PDFs (used with --save).

If neither --save nor --show is supplied, the script defaults to performing both actions.

All generated figures are saved as PDF files in the figures folder (or a custom directory via --out-dir):

Files from python plot.py time (17 PDFs)

Experimental_Values.pdf – All 12 experimental time series
Initial_Grid_Simulation_Values.pdf – All 12 simulation time series (initial grid)
Grid_Convergent_Simulation_Values.pdf – All 12 simulation time series (grid-convergent)
Comparison_Experiment_Simulation_a6mmpC1.0.pdf – 6 mm, 1.0 bar CO₂ comparison
Comparison_Experiment_Simulation_a6mmpC0.5.pdf – 6 mm, 0.5 bar CO₂ comparison
Comparison_Experiment_Simulation_a2mmpC1.0.pdf – 2 mm, 1.0 bar CO₂ comparison
Comparison_Experiment_Simulation_a2mmpC0.5.pdf – 2 mm, 0.5 bar CO₂ comparison
Preexperimental_Numerical_Values_t10min_pC1.0.pdf – Pre-experimental simulations, 1.0 bar CO₂
Preexperimental_Numerical_Values_t10min_pC0.5.pdf – Pre-experimental simulations, 0.5 bar CO₂
Preexperimental_Numerical_Values_t10min_pC0.02.pdf – Pre-experimental simulations, 0.02 bar CO₂
Show_Grid_Convergence_6mm_t60min_pC1.0_T21.pdf – Grid convergence, 6 mm, 60 min
Show_Grid_Convergence_6mm_t60min_pC0.5_T21.pdf – Grid convergence, 6 mm, 60 min
Show_Grid_Convergence_6mm_t10min_pC1.0_T20.pdf – Grid convergence, 6 mm, 10 min
Show_Grid_Convergence_6mm_t10min_pC0.5_T21.pdf – Grid convergence, 6 mm, 10 min
Show_Grid_Convergence_2mm_t15min_pC1.0_T22.pdf – Grid convergence, 2 mm, 15 min
Show_Grid_Convergence_2mm_t6min_pC1.0_T20.pdf – Grid convergence, 2 mm, 6 min
Show_Grid_Convergence_2mm_t15min_pC0.5_T21.pdf – Grid convergence, 2 mm, 15 min

Files from python plot.py da (3 PDFs)

Da_carb_Experimental_Values.pdf – Experimental Damköhler numbers
Da_carb_Initial_Grid_Simulation_Values.pdf – Simulation Damköhler numbers (initial grid)
Da_carb_Grid_Convergent_Simulation_Values.pdf – Simulation Damköhler numbers (grid-convergent)

Files from python plot.py sherwood (1 PDF)

Sherwood_All.pdf – Sherwood number vs. reduced height for all cases

Additional plotting scripts:

plot_outlet_contours.py – Generates **Figure D2**. Outputs Outlet_Zoom_In_6mm_pC1.0_t10min_and_60min_T25.pdf and .png.
plot_plug_flow_contours.py – Generates **Figure D3**. Outputs Plug_Flow_2and6mm_pC1.0_t10min_T25.pdf and .png.

Other Helper Scripts

calculate_Sherwood_theory_numbers.py – Computes the data shown in Tables 3 and 4; saves CSV files in python/sherwood_calculations.
compare_experiment_simulation.py – Conducts an error analysis comparing experimental and simulation outcomes; saves
    python/error_analysis/comparison_results_transient.csv (Table C1) and python/error_analysis/comparison_results.csv (stationary outlet concentrations).
get_preexperimental_inlet_fluid_pH.py – Estimates the pH of the process fluid (appears in Table 1, column pH_in); prints to console.
get_surface_retreat.py – Estimates the surface retreat expected in the experiments; prints to console.
interpolate_co2_diffusion_coefficients.py – Fits CO₂-diffusion coefficients and prints the parameters to console.
investigate_recirculation.py – Computes Rayleigh and Richardson numbers and determines the presence of recirculation; generates python/recirculation/recirculation_table.csv containing the Richardson numbers published in **Table D2** (alongside Rayleigh numbers and a binary recirculation flag).

Folder Structure Summary

Inside the stg folder are the initialization simulation raw data sets; the ftb_raw and ftb folders contain the setups where the pump has been switched on in the experiment. Both folders use the pattern groupName__caseLabel (e.g., dwIniClo__a6mm_pC1.0_T22).

The caseLabel encodes the main characteristics of the simulation:

aXmm – Aperture in mm (X mm).
pCY.YY – CO₂ partial pressure in bar (Y.YY bar).
TZZ – Temperature in °C (ZZ °C).
tAAmin – Residence time in minutes (AA min).
    Note that a stagnant simulation setup does not require a mean residence time, so this attribute is omitted.

For the stagnant-prior (stg) cases, the recommended binary is:

build-cmake/appl/stagnant/stg2Dyz/ReconstructVtk_stagnant_2DYZ

Detailed Explanation: Data Structure of the ftb Data Sets

Each case folder under ftb contains the following files:

params.input – Parameter file used to run the simulation in DuMux.
integralQuantities.csv – Processing information on the outflowing fluid and total mass/moles inside the model domain.
recirculation.csv – Time series of the upper and lower bounds of recirculation patterns.
sherwood.csv – Processing information for the Sherwood number study (Section 3.4.4).
systemcharacteristicnumbers.txt – A-priori characteristic system information.

In ftb, all necessary files are present except for the t_u_list files, which are optional and can be found in ftb_raw. The stg folders can be skipped entirely unless detailed analysis of the initialization data is required.

Reproducing the VTK Files

The raw simulation outputs have the extension ".dumux" (e.g., t_u_list-00000.dumux). To reconstruct VTK contour plots, you must use the correct binary for the specific simulation type.

Step 1: Build the Correct Binary Ensure you have cloned the repository and built the components as described in the installation script. Then, build the specific binary for your data type:

For ftb_raw (Forced Flow)

cd ~/wendel2025a/build-cmake/appl/forcedtoptobottom/ftb2Dyz/ make Reconstructvtk_forcedflow_toptobottom_2DYZ

For stg (Stagnant Initialization)

cd ~/wendel2025a/build-cmake/appl/stagnant/stg2Dyz/ make ReconstructVtk_stagnant_2DYZ

Step 2: Run the Reconstruction Run the matching binary inside the respective case folder. Always use the full path to the binary to ensure the correct version is executed.

Example for Forced Flow (ftb):

/full/path/to/Reconstructvtk_forcedflow_toptobottom_2DYZ

Example for Stagnant (stg):

/full/path/to/ReconstructVtk_stagnant_2DYZ

You can customize the VTK output granularity via the SteppingStride parameter. Edit params.input or pass the option directly, e.g.:

cd fracture_analog/ftb/examplecase /full/path/to/Reconstructvtk_forcedflow_toptobottom_2DYZ -BinarySolutionLoad.SteppingStride 10

Python, Version 3.9

Identifier
DOI https://doi.org/10.18419/DARUS-4818
Metadata Access https://darus.uni-stuttgart.de/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.18419/DARUS-4818
Provenance
Creator Wendel, Kai ORCID logo; Keim, Leon ORCID logo; Strauch, Bettina ORCID logo; Zimmer, Martin ORCID logo; Class, Holger ORCID logo
Publisher DaRUS
Contributor Wendel, Kai; LH2_RDM
Publication Year 2026
Funding Reference DFG 508470891 ; DFG EXC 2075 - 390740016 ; DFG 327154368 - SFB 1313
Rights CC BY 4.0; info:eu-repo/semantics/openAccess; http://creativecommons.org/licenses/by/4.0
OpenAccess true
Contact Wendel, Kai (University of Stuttgart); LH2_RDM (University of Stuttgart)
Representation
Resource Type Dataset
Format text/x-python; application/pdf; text/tab-separated-values; application/gzip; application/vnd.oasis.opendocument.spreadsheet; image/png; application/json; text/plain
Size 15044; 5819; 21080; 17008; 16417; 15142; 15255; 1234; 1128; 16571; 16584; 16581; 18988; 226; 454; 22447; 430; 315; 592; 564; 437; 380; 294; 328; 238; 256; 326; 342; 17609234161; 396135566; 2911; 15978; 29809; 6024; 30012; 5675; 17340; 4356; 18420; 1533020; 136214; 8434; 7802; 7770; 9830; 45578; 1808749; 82867; 17251; 17071; 16982; 1036; 452; 588; 611; 20801; 1180; 18312; 18433; 17981; 16793; 16937; 21502; 9774498618; 8364
Version 2.0
Discipline Construction Engineering and Architecture; Earth and Environmental Science; Engineering; Engineering Sciences; Environmental Research; Fluid Mechanics; Geosciences; Heat Energy Technology, Thermal Machines, Fluid Mechanics; Mechanical and industrial Engineering; Mechanics; Mechanics and Constructive Mechanical Engineering; Natural Sciences; Thermal Engineering/Process Engineering