DOI: 10.18419/darus-4818
title: Data for: Validating a Numerical Model for Calco-Carbonic Reactive Flow in a Laboratory Scale Fracture Analog

description: &lt;p&gt;This dataset contains laboratory‑experiment data and simulation data for the publication
&lt;strong&gt;Validating a Numerical Model for Calco‑Carbonic Reactive Flow in a Laboratory Scale Fracture Analog.&lt;/strong&gt;
For missing details see the attached README.md&lt;/p&gt;

&lt;p&gt;To create the graphs in the publication, download &lt;strong&gt;fracture_analog.tar.xz&lt;/strong&gt;.
Make sure that you have the dependencies shown in &lt;strong&gt;requirements_paper_2025.txt&lt;/strong&gt;.
The scripts can recreate the graphs directly with Python.&lt;/p&gt;

&lt;p&gt;The structure of the dataset in &lt;strong&gt;fracture_analog.tar.xz&lt;/strong&gt; is as follows:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;experimentalDataset&lt;/strong&gt; – contains the relevant experimental data set.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;ftb&lt;/strong&gt; – contains the simulation data organized in folders for each case.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;python&lt;/strong&gt; – contains Python scripts that allow reproducing the publication graphs. Data created with the scripts are also saved in dedicated folders.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;stg&lt;/strong&gt; – contains the initializers for the simulations in &lt;strong&gt;ftb&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Create Figures&lt;/h1&gt;

&lt;p&gt;To reproduce the plots and figures in the paper, go into the folder containing the Python scripts:&lt;/p&gt;

&lt;pre&gt;
&lt;kbd&gt;cd fracture_analog/python&lt;/kbd&gt;
&lt;/pre&gt;

&lt;p&gt;Typical usage (run from the &lt;code&gt;python&lt;/code&gt; folder):&lt;/p&gt;

&lt;pre&gt;
&lt;kbd&gt;python plot.py # shows help&lt;/kbd&gt;
&lt;kbd&gt;python plot.py time --show --save&lt;/kbd&gt;
&lt;kbd&gt;python plot.py da --save --out-dir ./my_figures&lt;/kbd&gt;
&lt;kbd&gt;python plot.py sherwood&lt;/kbd&gt;
&lt;/pre&gt;

&lt;p&gt;If neither &lt;code&gt;--save&lt;/code&gt; nor &lt;code&gt;--show&lt;/code&gt; is supplied, the script defaults to both actions.&lt;/p&gt;

&lt;h1&gt;Python scripts (folder &lt;code&gt;python&lt;/code&gt;)&lt;/h1&gt;

&lt;p&gt;The main entry point is &lt;strong&gt;plot.py&lt;/strong&gt;. It provides three sub‑commands:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;code&gt;time&lt;/code&gt; – concentration vs. time.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;da&lt;/code&gt; – Damköhler‑number curves.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;sherwood&lt;/code&gt; – Sherwood‑number curves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common options (apply before the sub‑command):&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;code&gt;--save&lt;/code&gt; – write each figure to a PDF (default folder: &lt;code&gt;fracture_analog/python/figures&lt;/code&gt;).&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;--show&lt;/code&gt; – display the interactive Matplotlib window.&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;--out-dir DIR&lt;/code&gt; – destination directory for saved PDFs (used with &lt;code&gt;--save&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additional plotting scripts:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;plot_outlet_contours.py&lt;/strong&gt; – generates Figure D2.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;plot_plug_flow_contours.py&lt;/strong&gt; – generates Figure D3.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Reproducing the VTK files&lt;/h1&gt;

&lt;p&gt;The raw simulation outputs have the extension “.dumux” (e.g., &lt;code&gt;t_u_list-00000.dumux&lt;/code&gt;).
If you are interested in inspecting the VTK contour plots we recommend the following strategy:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;Clone the repository:
 &lt;a href="https://git.iws.uni-stuttgart.de/dumux-pub/wendel2025a"&gt;https://git.iws.uni-stuttgart.de/dumux-pub/wendel2025a&lt;/a&gt;
 into a folder that contains only the code.&lt;/li&gt;
 &lt;li&gt;Enter the cloned folder (&lt;code&gt;wendel2025a&lt;/code&gt;) and execute the install script:
 &lt;pre&gt;./installscript.sh&lt;/pre&gt;
 This will clone, configure, and build the main parts.&lt;/li&gt;
 &lt;li&gt;Build the VTK reconstruction binary:
 &lt;pre&gt;
cd ~/wendel2025a/build-cmake/appl/forcedtoptobottom/ftb2Dyz/
make Reconstructvtk_forcedflow_toptobottom_2DYZ
 &lt;/pre&gt;
 &lt;/li&gt;
 &lt;li&gt;Run the binary on a case folder, supplying the full path:
 &lt;pre&gt;
/full/path/to/Reconstructvtk_forcedflow_toptobottom_2DYZ -i params.input -o output.vtk
 &lt;/pre&gt;
 &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can customize the VTK output granularity via the &lt;code&gt;SteppingStride&lt;/code&gt; parameter. Edit &lt;code&gt;params.input&lt;/code&gt; or pass the option directly, e.g.:&lt;/p&gt;

&lt;pre&gt;
cd fracture_analog/ftb/examplecase
/full/path/to/Reconstructvtk_forcedflow_toptobottom_2DYZ -BinarySolutionLoad.SteppingStride 10
&lt;/pre&gt;

&lt;p&gt;Because DuMux is not installed system‑wide, always use the full path to guarantee the correct binary is executed.&lt;/p&gt;

&lt;h2&gt;Helper scripts&lt;/h2&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;calculate_Sherwood_theory_numbers.py&lt;/strong&gt; – computes the data shown in Tables 3 and 4; saves CSV files in &lt;code&gt;fracture_analog/python/sherwood_calculations&lt;/code&gt;.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;compare_experiment_simulation.py&lt;/strong&gt; – conducts an error analysis comparing experimental and simulation outcomes; saves
 &lt;code&gt;comparison_results_transient.csv&lt;/code&gt; (Table C1) and &lt;code&gt;comparison_results.csv&lt;/code&gt; (stationary outlet concentrations).&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;get_preexperimental_inlet_fluid_pH.py&lt;/strong&gt; – estimates the pH of the process fluid (appears in Table 1, column &lt;code&gt;pH_in&lt;/code&gt;); prints to console.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;get_surface_retreat.py&lt;/strong&gt; – estimates the surface retreat expected in the experiments; prints to console.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;interpolate_co2_diffusion_coefficients.py&lt;/strong&gt; – fits CO₂‑diffusion coefficients and prints the parameters.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;investigate_recirculation.py&lt;/strong&gt; – performs various analyses and produces CSV or console output useful for supplementary tables; creates &lt;code&gt;recirculation_table.csv&lt;/code&gt; containing Richardson numbers (Table D2).&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Folder‑structure summary&lt;/h1&gt;

&lt;p&gt;Inside the &lt;code&gt;stp&lt;/code&gt; folder are the initialization simulation raw data sets; the &lt;code&gt;ftb&lt;/code&gt; folders then contain the setups where the pump has been switched on in the experiment.
Both folders use the pattern &lt;code&gt;groupName__caseLabel&lt;/code&gt; (e.g., &lt;code&gt;dwIniClo__a6mm_pC1.0_T22&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;caseLabel&lt;/code&gt; encodes the main characteristics of the simulation:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;code&gt;aXmm&lt;/code&gt; – aperture in mm (X mm).&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;pCY.YY&lt;/code&gt; – CO₂ partial pressure in bar (Y.YY bar).&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;TZZ&lt;/code&gt; – temperature in °C (ZZ °C).&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;tAAmin&lt;/code&gt; – residence time in minutes (AA min).
 Note that a stagnant simulation setup does not need a mean residence time, so this attribute is omitted.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the stagnant‑prior (&lt;code&gt;stg&lt;/code&gt;) cases, the recommended binary is:&lt;/p&gt;

&lt;pre&gt;
build-cmake/appl/stagnant/stg2Dyz/ReconstructVtk_stagnant_2DYZ
&lt;/pre&gt;

&lt;h2&gt;Detailed explanation: Data structure of the &lt;code&gt;ftb&lt;/code&gt; data sets&lt;/h2&gt;

&lt;p&gt;Each case folder under &lt;code&gt;ftb&lt;/code&gt; contains the following files:&lt;/p&gt;

&lt;ul&gt;
 &lt;li&gt;&lt;strong&gt;params.input&lt;/strong&gt; – parameter file used to run the simulation in DuMux.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;integralQuantities.csv&lt;/strong&gt; – processing information on the outflowing fluid and total mass/moles inside the model domain.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;recirculation.csv&lt;/strong&gt; – time series of the upper and lower bounds of recirculation patterns; an absent row means no recirculation at that time.&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;sherwood.csv&lt;/strong&gt; – processing information for the Sherwood number study (section 3.4.4).&lt;/li&gt;
 &lt;li&gt;&lt;strong&gt;systemcharacteristicnumbers.txt&lt;/strong&gt; – a‑priori characteristic system information.&lt;/li&gt;
&lt;/ul&gt;
description: Python, Version 3.9