<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">ADGEO</journal-id><journal-title-group>
    <journal-title>Advances in Geosciences</journal-title>
    <abbrev-journal-title abbrev-type="publisher">ADGEO</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Adv. Geosci.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1680-7359</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/adgeo-67-117-2026</article-id><title-group><article-title>Towards fully coupled Thermo-Hydro-Mechanical-Chemical (THMC) modelling in advanced reservoir engineering: GOLEM-PHREEQC</article-title><alt-title>GOLEM-PHREEQC</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>De Lucia</surname><given-names>Marco</given-names></name>
          <email>delucia@gfz.de</email>
        <ext-link>https://orcid.org/0000-0002-1186-4491</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Frigo</surname><given-names>Samuele</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Lübke</surname><given-names>Max</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Cacace</surname><given-names>Mauro</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Petrova</surname><given-names>Elena</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Hofmann</surname><given-names>Hannes</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Scheck-Wenderoth</surname><given-names>Magdalena</given-names></name>
          
        <ext-link>https://orcid.org/0000-0003-0426-8269</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Blöcher</surname><given-names>Guido</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-8589-9742</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>GFZ German Research Centre for Geosciences, Telegrafenberg, Potsdam, 14473, Germany</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Department of Engineering Geology, Institute of Applied Geosciences,  Technical University of Berlin,  Ernst-Reuter-Platz 1, Berlin, 10587, Germany</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Institute of Computer Science, University of Potsdam,  An der Bahn 2, Potsdam, 14476, Germany</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Marco De Lucia (delucia@gfz.de)</corresp></author-notes><pub-date><day>5</day><month>January</month><year>2026</year></pub-date>
      
      <volume>67</volume>
      <fpage>117</fpage><lpage>127</lpage>
      <history>
        <date date-type="received"><day>25</day><month>June</month><year>2025</year></date>
           <date date-type="accepted"><day>24</day><month>November</month><year>2025</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Marco De Lucia et al.</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026.html">This article is available from https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026.html</self-uri><self-uri xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026.pdf">The full text article is available as a PDF file from https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e151">Effective geothermal resource development requires sophisticated computational tools integrating different physical and chemical processes. This work describes a novel coupling of GOLEM, an open source simulator for thermal-hydraulic-mechanical modeling based on the MOOSE multiphysics framework, with the PHREEQC geochemical solver. GOLEM solves coupled partial differential equations governing subsurface fluid flow, heat transfer, conservative mass transport, and mechanical deformation in complex geological environments. PHREEQC is a proven and widely adopted geochemical simulator in the scientific community. The coupling to GOLEM is achieved leveraging an efficient and original wrapper based on the IPhreeqc module. The newly developed coupling of flow, transport and geochemical reactions is validated against standalone PHREEQC by means of 1D RTM benchmarks including both equilibrium and kinetic mineral reactions. A further demonstration of the capabilities of the GOLEM-PHREEQC coupling is shown, on a 2D domain with three distinct geochemical zones.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Bundesministerium für Wirtschaft und Energie</funding-source>
<award-id>03EE4056A</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e163">Exploration, planning and operational optimization of geothermal systems in porous and fractured media need powerful numerical tools that are able to capture and analyze an intricate network of coupled physical and chemical interactions between fluids and host rocks, each acting at different spatial and temporal scales <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx43 bib1.bibx22 bib1.bibx6 bib1.bibx1 bib1.bibx37" id="paren.1"><named-content content-type="pre">e.g.,</named-content></xref>. Such interactions are usually summarized as thermo-hydro-mechanical-chemical (THMC) processes, while the numerical frameworks enabling modelling of these systems are termed <italic>multiphysics</italic>. <italic>Reactive transport</italic> indicates the coupling of geochemical reactions with fluid flow and transport of solutes, including the feedbacks triggered by reactions, altering porous media and hence their permeability and mechanical characteristics. Established reactive transport simulators include RETRASO-CODEBRIGHT <xref ref-type="bibr" rid="bib1.bibx45" id="paren.2"/>, CORE-2D <xref ref-type="bibr" rid="bib1.bibx46" id="paren.3"/>, MIN3P <xref ref-type="bibr" rid="bib1.bibx31" id="paren.4"/>, HYTEC <xref ref-type="bibr" rid="bib1.bibx52" id="paren.5"/>, TOUGHREACT <xref ref-type="bibr" rid="bib1.bibx54" id="paren.6"/>, PFLOTRAN <xref ref-type="bibr" rid="bib1.bibx33" id="paren.7"/>, HP1 <xref ref-type="bibr" rid="bib1.bibx55" id="paren.8"/> and CRUNCHFLOW <xref ref-type="bibr" rid="bib1.bibx48" id="paren.9"/>. A recent overview and intercomparison of RTM codes can be found in <xref ref-type="bibr" rid="bib1.bibx49" id="text.10"/>.</p>
      <p id="d2e206">In recent years, several general-purpose and flexible multiphysics software frameworks able to couple arbitrary processes emerged, such as OpenFOAM<sup>®</sup> <xref ref-type="bibr" rid="bib1.bibx17" id="paren.11"/>, MOOSE <xref ref-type="bibr" rid="bib1.bibx16 bib1.bibx41" id="paren.12"/>, FEniCS <xref ref-type="bibr" rid="bib1.bibx28" id="paren.13"/> and COMSOL Multiphysics<sup>®</sup> <xref ref-type="bibr" rid="bib1.bibx12" id="paren.14"/>. Generally speaking, these allow users to conveniently define Partial Differential Equations (PDE) depicting the physical processes to be modelled, and the framework itself takes care of discretizing the PDEs and solving them numerically, thus leveraging robust linear and nonlinear solvers, adaptive temporal discretization, and effective spatial approximation methods implemented in advanced computational libraries such as PETSc <xref ref-type="bibr" rid="bib1.bibx2" id="paren.15"/> and Chombo <xref ref-type="bibr" rid="bib1.bibx51" id="paren.16"/>.</p>
      <p id="d2e234">Geochemical processes represent the usual computational bottleneck of reactive transport simulations and are the most complex to simulate given their high nonlinearity, the large number of variables and typically high number of parameters needed to model them. For this reason, it is in practice often preferable to leverage specialized geochemical solvers such as CHEPROO <xref ref-type="bibr" rid="bib1.bibx3" id="paren.17"/>, PHREEQC <xref ref-type="bibr" rid="bib1.bibx38" id="paren.18"/>, GEMS3K <xref ref-type="bibr" rid="bib1.bibx24" id="paren.19"/>, Orchestra <xref ref-type="bibr" rid="bib1.bibx32" id="paren.20"/> and Reaktoro <xref ref-type="bibr" rid="bib1.bibx26" id="paren.21"/>. These specialized packages are then interfaced with the multiphysics simulators to add the capability of modelling geochemical reactions. Examples of this architecture are PHAST <xref ref-type="bibr" rid="bib1.bibx40" id="paren.22"/>, PHT3D <xref ref-type="bibr" rid="bib1.bibx42" id="paren.23"/>, PorousMedia4Foam <xref ref-type="bibr" rid="bib1.bibx47" id="paren.24"/>, COMSOL-PHREEQC <xref ref-type="bibr" rid="bib1.bibx35" id="paren.25"/>, Firedrake-Reaktoro <xref ref-type="bibr" rid="bib1.bibx25" id="paren.26"/>, OpenGeoSys <xref ref-type="bibr" rid="bib1.bibx18" id="paren.27"/> and POET <xref ref-type="bibr" rid="bib1.bibx14" id="paren.28"/>.</p>
      <p id="d2e275">This contribution introduces the coupling between GOLEM <xref ref-type="bibr" rid="bib1.bibx7" id="paren.29"/> and PHREEQC <xref ref-type="bibr" rid="bib1.bibx38" id="paren.30"/> through a novel, advanced wrapper based on the IPhreeqc module <xref ref-type="bibr" rid="bib1.bibx10" id="paren.31"/>. GOLEM is a finite element application, built upon the MOOSE framework, specializing in thermal, hydraulic, and mechanical (THM) processes in fractured porous media. It solves the governing equations for single-phase fluid flow, heat transport, conservative mass transport, and mechanical deformation. PHREEQC functions as the chemical computation engine, handling equilibrium and kinetic reactions, cation exchange and surface complexation. In the following, we describe in detail the coupled simulator and provide a validation of the achieved coupling between hydrodynamic and chemical processes based on 1D benchmark scenarios involving mineral precipitation and dissolution. A further practical demonstration of current GOLEM-PHREEQC capabilities is also given, inspired by an Aquifer Thermal Energy Storage (ATES) application – a system that exploits subsurface aquifers for seasonal thermal energy storage and recovery. It is thereby showcased how the handling of geochemically heterogeneous zones is operative at this stage of development. ATES operations lead to rapid spatiotemporal variations in reservoir conditions, highlighting the necessity for high-fidelity simulation of geochemical interactions to ensure sustainable reservoir management.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Numerical Framework</title>
      <p id="d2e295">The following sections detail the numerical architecture and integration strategy for the GOLEM-IPHREEQC coupling, emphasizing the distinct capabilities of each computational component. </p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>GOLEM</title>
      <p id="d2e306">GOLEM <xref ref-type="bibr" rid="bib1.bibx7" id="paren.32"/> is an open source massively parallel computational platform for hydrothermal and geothermal modeling in heterogeneous reservoir systems, accommodating one-, two-, and three-dimensional problems through unified code architecture. GOLEM has been developed upon MOOSE <xref ref-type="bibr" rid="bib1.bibx41" id="paren.33"/>, an advanced multiphysics framework in C++ based on the finite element method.</p>
      <p id="d2e315">MOOSE itself employs rigorously tested computational libraries including libMesh <xref ref-type="bibr" rid="bib1.bibx21" id="paren.34"/> for parallel finite element functionality and comprehensive solver suites based on PETSc <xref ref-type="bibr" rid="bib1.bibx2" id="paren.35"/>, Trilinos <xref ref-type="bibr" rid="bib1.bibx19" id="paren.36"/>, and Hypre <xref ref-type="bibr" rid="bib1.bibx11" id="paren.37"/> for scalable linear and nonlinear equation solution. MOOSE provides out of the box hybrid parallelization capabilities, using Message Passing Interface (MPI) for distributed computing and multi-threading on shared-memory computers. Many computational features are built-in in MOOSE, such as adaptive mesh refinement, input/output using many scientific data formats. This modular architecture enables application developers to concentrate on physics formulation while maintaining streamlined code structures. Integrated MOOSE physics modules inherently support coupled THMC models. In particular, the <monospace>Geochemistry</monospace> module <xref ref-type="bibr" rid="bib1.bibx53" id="paren.38"/> is a promising alternative chemical solver. However, a more established, more flexible and better documented software such as PHREEQC was deemed more future-proof than this module, also in view of a significantly larger user base.</p>
      <p id="d2e337">GOLEM itself is an application derived from MOOSE and adopts a similar modular philosophy, organizing distinct physical processes within dedicated computational modules that facilitate code maintenance and enhancement. GOLEM solves nonlinear thermal-hydraulic-mechanical processes and conservative mass transport by representing fractures, faults, and wellbores as discrete lower-dimensional discontinuous elements, while capturing nonlinear interactions and property-structure relationships. Examples of such relationships are: dependence of fluid density and viscosity on state variables (pressure, temperature, concentrations) alongside material property evolution reflecting reservoir changes (e.g., porosity-permeability correlations). More details and a comprehensive overview of the implemented numerics can be found in <xref ref-type="bibr" rid="bib1.bibx7" id="text.39"/>.</p>
      <p id="d2e343">For hydrodynamics and conservative transport, primary system variables are pore pressure <inline-formula><mml:math id="M1" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> and volumetric solute concentrations <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (where <inline-formula><mml:math id="M3" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula> represents the total number of chemical species). According to Darcy's law for laminar flow, the pore pressure field is solved by combining the mass and momentum balances <xref ref-type="bibr" rid="bib1.bibx5" id="paren.40"/> for the matrix as well as the lower-dimensional elements (wells and fractures) as:

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M4" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E1"><mml:mtd><mml:mtext>1</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>b</mml:mi><mml:msub><mml:mi>S</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi>b</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo>+</mml:mo><mml:mi>Q</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E2"><mml:mtd><mml:mtext>2</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="bold">K</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>f</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mi mathvariant="bold-italic">g</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M5" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> is the pore pressure; <inline-formula><mml:math id="M6" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> is the time; <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the specific storage; <inline-formula><mml:math id="M8" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> is a source term; <inline-formula><mml:math id="M9" display="inline"><mml:mi mathvariant="bold">K</mml:mi></mml:math></inline-formula> is the permeability tensor; <inline-formula><mml:math id="M10" display="inline"><mml:mi mathvariant="italic">μ</mml:mi></mml:math></inline-formula> is the dynamic viscosity of the fluid; <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the fluid density; <inline-formula><mml:math id="M12" display="inline"><mml:mi mathvariant="bold-italic">g</mml:mi></mml:math></inline-formula> is the gravitational acceleration vector; <inline-formula><mml:math id="M13" display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula> is the fluid or Darcy velocity vector and <inline-formula><mml:math id="M14" display="inline"><mml:mi>b</mml:mi></mml:math></inline-formula> is a scale factor for fractures (aperture) and wells (diameter); <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> for porous media. Advective-dispersive mass transport of <inline-formula><mml:math id="M16" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th solute is solved according to the second Fick's law:

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M17" display="block"><mml:mrow><mml:mi>b</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi>b</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="bold-italic">q</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="bold">D</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

          In case of non-reactive (conservative) mass transport, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mi>Q</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. The effective hydrodynamic dispersion tensor <inline-formula><mml:math id="M19" display="inline"><mml:mi mathvariant="bold">D</mml:mi></mml:math></inline-formula> is defined as:

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M20" display="block"><mml:mrow><mml:mi mathvariant="bold">D</mml:mi><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>‖</mml:mo><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo>‖</mml:mo></mml:mrow></mml:mfenced><mml:mi>I</mml:mi><mml:mo>+</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>L</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="bold-italic">q</mml:mi><mml:msup><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mi mathvariant="bold-italic">T</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>‖</mml:mo><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo>‖</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          This system of coupled nonlinear equations is solved numerically by GOLEM in a fully coupled, full implicit approach, exposing to the user many capabilities offered by the MOOSE framework, including appropriate spatial discretization schemes, several choices for time-stepping and temporal integration approach, as well as many iterative solvers and preconditioners. Each of these aspects plays a critical role in ensuring the accuracy, stability, and efficiency of the solution process. For the sake of brevity, readers interested in a comprehensive discussion are referred to <xref ref-type="bibr" rid="bib1.bibx7" id="text.41"/> for further elaboration on the numerical methods and techniques employed.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>PHREEQC</title>
      <p id="d2e733">PHREEQC <xref ref-type="bibr" rid="bib1.bibx38" id="paren.42"/> is a multi-platform open source simulator for aqueous geochemistry developed by US Geological Survey. It can be considered as a de facto standard in the scientific community given its longevity and comprehensive modelling capabilities: it can namely model aqueous speciation, incorporating various activity models and thermodynamic databases; redox reactions; mineral precipitation and dissolution under both equilibrium and kinetic control; ion exchange and surface complexation, implementing several phenomenological models therefore; and finally, isotope fractionation and one-dimensional reactive transport problems. PHREEQC, implemented in C++, ships with several thermodynamic databases based on a variety of activity correction models, including extended Debye-Hückel, Pitzer and Specific Ion Interactions.  Geochemical processes in PHREEQC are described in terms of Law of Mass Action, which results in the formulation of nonlinear equilibrium system of equations subjected to charge and mass balance. Iterative Newton-Raphson method coupled with convex optimization algorithm are employed to solve the thermodynamic equilibrium system of equations; kinetic processes are integrated through Runge-Kutta or, for particularly stiff problems, the <monospace>cvode</monospace> solver. An important implementation characteristic is that all aqueous chemical reactions, including redox processes, are considered at local thermodynamic equilibrium. Kinetic control is hence only possible for heterogeneous reactions. This also means that all redox couples in solution are always simultaneously at the same potential.</p>
      <p id="d2e744">PHREEQC embeds an interpreter for the BASIC programming language, through which the user can define arbitrary kinetic laws in form of small programs, and specify custom output and computations. The software operates on textual input scripts, with a simple syntax organized in blocks with defined keywords. The results of computations are returned in form of formatted text file or, optionally, in tabular form in an additional text file, if requested by the user. Graphical User Interfaces (GUI) are available for PHREEQC, but under the hood they all leverage the text-based input-output.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>IPhreeqc and the POET wrapper</title>
      <p id="d2e755">To streamline integration and connectivity with external programming languages and other computational tools, the PHREEQC authors developed the IPhreeqc module <xref ref-type="bibr" rid="bib1.bibx10" id="paren.43"/> and the PhreeqcRM library <xref ref-type="bibr" rid="bib1.bibx39" id="paren.44"/>. PhreeqcRM facilitates the integration of PHREEQC into reactive transport simulators, offering integrated parallelization (both MPI and OpenMP) and unit conversions. However, its API (Application Programming Interface) relies primarily on PHREEQC input scripts, which on the one hand provides benefits for users experienced with the platform, but on the other is not optimal regarding the efficiency of data exchange and computational performance. IPhreeqc is a modular wrapping of the PHREEQC core and eases the coupling of the simulator to other applications, in this case specifically programming languages such as python (e.g., phreeqpy <uri>https://www.phreeqpy.com/</uri>, last access: 22 December 2025) or R <xref ref-type="bibr" rid="bib1.bibx13" id="paren.45"/>.</p>
      <p id="d2e770">The development of the POET simulator <xref ref-type="bibr" rid="bib1.bibx14 bib1.bibx29" id="paren.46"><named-content content-type="pre">POtsdam rEactive Transport,</named-content></xref> led to the implementation of an original wrapper for the IPhreeqc module. This new interface, named <monospace>litephreeqc</monospace>, is designed to eliminate, after initialization, the need for parsing or modifying PHREEQC input scripts to perform geochemical calculations. Instead, it operates directly on the in-memory data structures of the core PHREEQC engine, resulting in a much more efficient data transfer which is of particular significance in the context of large-scale simulations. The users specify the actual chemical systems, including solutes and mineral phases, by providing actual PHREEQC scripts, hence familiar to many practitioners. The POET wrapper implemented in <monospace>litephreeqc</monospace> is leveraged for the coupling of GOLEM with PHREEQC, as described in more detail in the next section.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>The GOLEM-PHREEQC Coupling</title>
      <p id="d2e793">As specified in the previous sections, GOLEM handles the thermal and fluid dynamics throughout the reservoir, whereas PHREEQC manages the geochemical processes. At the time of writing, dissolution and precipitation reactions both under equilibrium and with kinetic control, cation exchange and, partially, surface complexation are handled by the <monospace>litephreeqc</monospace> wrapper and hence usable in the GOLEM-PHREEQC coupling.</p>
      <p id="d2e799">Information exchange between GOLEM and PHREEQC relies on the MOOSE Transfer System framework, offering multiple mesh-to-mesh communication approaches (including nearest node assignment, projections, interpolations and additional methods). Data exchange protocols are typically designed to remain independent of the physical meaning of associated degrees of freedom (dof) between source and destination meshes. Input/output communication between GOLEM and PHREEQC is ensured by correlating each PHREEQC calculation, one per GOLEM elemental dof, with the finite element grid employed by GOLEM. Data reading/writing between solution arrays to/from GOLEM and PHREEQC occur at the elemental scale using the corresponding element identifier, which marks the associated dof of the active calculation. GOLEM and PHREEQC are coupled through fixed point (Picard) iteration methodology utilizing bidirectional data exchange of solute concentrations across timesteps, leveraging MOOSE's <monospace>MultiApp</monospace> infrastructure. The user can specify whether the operator-splitting coupling of transport and chemistry is to be solved iteratively (SIA, Sequential Iterative Approach) or non-iteratively (SNIA).</p>
      <p id="d2e805">A schematic representation of the coupling is given in Fig. <xref ref-type="fig" rid="F1"/>. The chemical problems assigned to initial (IC) and boundary conditions (BC) are specified by the user through baseline PHREEQC input scripts and a thermodynamic database. The <monospace>litephreeqc</monospace> wrapper runs all different geochemical problems and builds a tabular data structure containing all data needed by GOLEM to initialize the kernels for the transient transport problems. The application then updates concentrations due to transport before passing the modified data at runtime to the PHREEQC transient sub-calculation. The latter executes a batch reactive chemistry update of solutes and minerals before returning the affected variables to the transient GOLEM application. Hybrid parallelization of PHREEQC calculations utilizes the same MPI groups as GOLEM, implementing loop parallelization of the geochemical reactive calculations based on input processors through a specialized MOOSE <monospace>ExternalProblem</monospace> class.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e819">Schematic representation of the GOLEM-PHREEQC coupling, where <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are solutes and <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are mineral and gas phases.</p></caption>
          <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f01.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Validation of GOLEM-PHREEQC coupling</title>
      <p id="d2e859">The validation hereby presented is based on a classical isothermal 1D reactive transport problem initially proposed by <xref ref-type="bibr" rid="bib1.bibx15" id="text.47"/>, and which has traditionally been employed as a benchmark in many instances <xref ref-type="bibr" rid="bib1.bibx18 bib1.bibx27 bib1.bibx14" id="paren.48"/>. The simulated system includes carbonate dissolution and precipitation within a water-saturated column of porous medium initially at equilibrium with calcite <inline-formula><mml:math id="M23" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CaCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, hence with an initial pH of 9.91. The medium in the column has a porosity <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:mi mathvariant="italic">φ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.32</mml:mn></mml:mrow></mml:math></inline-formula>, and its length set to 0.5 <inline-formula><mml:math id="M25" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>. A 1 millimolal (<inline-formula><mml:math id="M26" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mmol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) magnesium chloride (<inline-formula><mml:math id="M27" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">MgCl</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) solution at pH <inline-formula><mml:math id="M28" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 7 and 25 °C is injected into the column for 350 <inline-formula><mml:math id="M29" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">5.8</mml:mn></mml:mrow></mml:math></inline-formula> h) at a constant rate corresponding to a Darcy velocity (<inline-formula><mml:math id="M31" display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula>) of <inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M33" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The arrival of the <inline-formula><mml:math id="M34" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">MgCl</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> solution triggers the dissolution of calcite and the transient precipitation of dolomite, magnesium-calcium carbonate <inline-formula><mml:math id="M35" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">CaMg</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. Once calcite in a given grid element is completely dissolved, also dolomite becomes undersaturated and redissolves.</p>
      <p id="d2e1027">For GOLEM, a quasi-3D computational domain measuring 0.5 <inline-formula><mml:math id="M36" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> in length divided into 100 uniform elements with a cross-sectional area <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M38" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>, was chosen as spatial discretization. Figure <xref ref-type="fig" rid="F2"/> visualizes the simulation grid for the benchmark. A longitudinal dispersivity <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0067</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M40" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> and a timestep of 525 <inline-formula><mml:math id="M41" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> were used in all simulations.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e1097">Mesh and model setup used for validation of the GOLEM-PHREEQC coupling against PHREEQC's own 1D reactive transport capability.</p></caption>
        <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f02.png"/>

      </fig>

      <p id="d2e1107">Thermodynamic parameters for hydrolysis, aqueous speciation, and dissolution/precipitation processes involving <inline-formula><mml:math id="M42" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Mg</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M43" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Ca</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M44" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Cl</mml:mi></mml:mrow></mml:math></inline-formula>, and carbonate species were obtained from version 12/07 of the PSI/NAGRA chemical thermodynamic database <xref ref-type="bibr" rid="bib1.bibx50" id="paren.49"/>. Both initial and inlet solutions are equilibrated with atmospheric oxygen partial pressure of <inline-formula><mml:math id="M45" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.68</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M47" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">atm</mml:mi></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.221</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M49" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula> to maintain pe at positive values. Porosity changes throughout the simulation are neglected.</p>
      <p id="d2e1201">Figure <xref ref-type="fig" rid="F3"/> shows a comparison of results from GOLEM-PHREEQC and the corresponding models computed with the 1D transport feature of PHREEQC at the end of simulation time for the case with both minerals considered at equilibrium. The results clearly demonstrate that the <inline-formula><mml:math id="M50" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">MgCl</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> solution front has advanced <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">0.3</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M52" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> into the column, causing calcite dissolution and dolomite precipitation. Total aqueous concentrations and solid phase profiles from GOLEM-PHREEQC show excellent agreement with the results from PHREEQC. The small discrepancies arise from the different spatial discretizations and numerical solution schemes for transport implemented in the two simulators: FEM for GOLEM and explicit Euler (forward time) finite differences scheme for PHREEQC. The same exercise is repeated including kinetic control of mineral reactions both for dissolution and precipitation. Here, the <monospace>phreeqc.dat</monospace> chemical thermodynamic database is used, while kinetic rate expressions for dolomite and calcite are derived from <xref ref-type="bibr" rid="bib1.bibx36" id="text.50"/>. The sole parameter needed by the rate expression is the specific surface area SSA, which was assigned as <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>  and <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M55" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for finely-ground calcite and dolomite, respectively. A summary of the parameters employed to inform the simulations is given in Table <xref ref-type="table" rid="T1"/>. The results of kinetic simulations are displayed in Fig. <xref ref-type="fig" rid="F4"/>.</p>

      <fig id="F3"><label>Figure 3</label><caption><p id="d2e1298">Validation of the GOLEM-PHREEQC coupling against standalone PHREEQC, equilibrium simulations.</p></caption>
        <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f03.png"/>

      </fig>

<table-wrap id="T1"><label>Table 1</label><caption><p id="d2e1310">Parameters of the 1D benchmark used to validate the GOLEM-PHREEQC coupling against PHREEQC in both equilibrium and kinetic models.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameter</oasis:entry>
         <oasis:entry colname="col2">Value</oasis:entry>
         <oasis:entry colname="col3">Units</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Inflow</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M57" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Porosity</oasis:entry>
         <oasis:entry colname="col2">0.32</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Initial Pressure</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M59" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Temperature</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M60" display="inline"><mml:mn mathvariant="normal">25</mml:mn></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M61" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SSA Calcite</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M63" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SSA Dolomite</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M65" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <fig id="F4"><label>Figure 4</label><caption><p id="d2e1545">Validation of the GOLEM-PHREEQC coupling against PHREEQC, kinetic simulations.</p></caption>
        <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f04.png"/>

      </fig>

      <p id="d2e1554">These two benchmarks, while being computationally light – both simulations run in under ten seconds – confirm the reliability of reactive transport outcomes achieved through the new GOLEM-PHREEQC coupling compared to standalone PHREEQC calculations. Both equilibrium and kinetic reaction mechanisms are precisely replicated.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>An Example of Zone-Heterogeneous 2D RTM Simulation: ATES</title>
      <p id="d2e1565">To further illustrate the capabilities of our new implementation in handling heterogeneity typical of real-world subsurface systems, an additional simulation was conducted. The model is inspired by the geological and hydrogeochemical characteristics of the reservoir encountered at approximately 250 <inline-formula><mml:math id="M66" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> depth by the ATES research drilling (Gt BChb 1/2015) in Berlin-Charlottenburg <xref ref-type="bibr" rid="bib1.bibx4" id="paren.51"/>. The 2D model, simplifying the original reservoir geometries, comprises two highly permeable sandy layers, each 1 <inline-formula><mml:math id="M67" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> thick of Tertiary to Upper Triassic age, separated by a 0.5 <inline-formula><mml:math id="M68" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> thick aquitard. The model setup is shown in Fig. <xref ref-type="fig" rid="F5"/>.</p>
      <p id="d2e1597">Geochemically and hydrodynamically, the three layers are initialized as distinct and independent domains, each with unique transport properties and specific solute and mineral assemblages (Table <xref ref-type="table" rid="T2"/>). The central aquitard is relatively inert due to the slow dissolution kinetics of quartz, while the sandy layers contain more reactive minerals, implemented either as kinetic or equilibrium phases. Pyrite (<inline-formula><mml:math id="M69" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">FeS</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) and kaolinite (<inline-formula><mml:math id="M70" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">Al</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">Si</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">OH</mml:mi><mml:msub><mml:mo>)</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) are the primary reactive phases of interest.</p>
      <p id="d2e1643">From an engineering perspective, the main objective of this simulation is to test the hypothesis proposed by <xref ref-type="bibr" rid="bib1.bibx44" id="text.52"/> that the anomalous <inline-formula><mml:math id="M71" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Al</mml:mi></mml:mrow></mml:math></inline-formula> release observed during previous hydraulic testing may have been triggered by the injection of oxidizing fluids. Such conditions would promote pyrite oxidation, leading to proton generation, local acidification, and the subsequent dissolution of aluminum-bearing silicates – particularly clay minerals such as kaolinite. To further explore the fate of iron (<inline-formula><mml:math id="M72" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Fe</mml:mi></mml:mrow></mml:math></inline-formula>) released during pyrite oxidation, the model includes the potential for siderite (<inline-formula><mml:math id="M73" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">FeCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) precipitation in the lower layer, driven by carbonate availability following calcite dissolution. This process is of particular interest as pore clogging due to secondary mineral precipitation may reduce long-term system performance.</p>
      <p id="d2e1676">The model domain measures 10 <inline-formula><mml:math id="M74" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M75" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2.5 <inline-formula><mml:math id="M76" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> and is discretized into a grid of 1000 <inline-formula><mml:math id="M77" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 50 cells, resulting in 50 000 dof. The domain is subdivided into three distinct units – upper layer, middle layer, and lower layer – corresponding to the previously described lithological blocks. The heterogeneous hydraulic and geochemical properties of the layers are summarized in Fig. <xref ref-type="fig" rid="F5"/> and Table <xref ref-type="table" rid="T2"/>. Fluid properties (density, viscosity) are constant and representative of reservoir conditions, corresponding to a temperature of 17 °C and a pressure of 2.1 <inline-formula><mml:math id="M78" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">MPa</mml:mi></mml:mrow></mml:math></inline-formula>. Material properties such as porosity and permeability vary between layers to simulate heterogeneous transport behavior. A fixed overpressure of 0.05 <inline-formula><mml:math id="M79" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">MPa</mml:mi></mml:mrow></mml:math></inline-formula> is applied at the left model boundary to represent oxidizing fluid injection. Both dispersivity and hydrodynamic diffusion coefficients are set to zero throughout the domain to isolate advective transport effects.</p>
      <p id="d2e1731">In terms of fluid composition, each layer is initially saturated with a specific set of minerals making use of the <monospace>phreeqc.dat</monospace> thermodynamic database. The middle layer is equilibrated with quartz, reflecting its relatively inert character. The upper layer is initially equilibrated with pyrite and kaolinite, whereas the lower layer includes calcite in addition to these phases. This results in elevated concentrations of dissolved <inline-formula><mml:math id="M80" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">HCO</mml:mi><mml:mn mathvariant="normal">3</mml:mn><mml:mo>-</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and a pH of 9.96 in the bottom layer, compared to the more neutral conditions observed in the upper and middle layers. The injected 0.3 millimolal (<inline-formula><mml:math id="M81" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mmol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) <inline-formula><mml:math id="M82" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">NaCl</mml:mi></mml:mrow></mml:math></inline-formula> solution entering from the left boundary is initially equilibrated with an oxygen partial pressure of <inline-formula><mml:math id="M83" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.00</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M85" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">atm</mml:mi></mml:mrow></mml:math></inline-formula> and a partial pressure of <inline-formula><mml:math id="M86" display="inline"><mml:mrow class="chem"><mml:msub><mml:mi mathvariant="normal">CO</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>(</mml:mo><mml:mi mathvariant="normal">g</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.38</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M88" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">atm</mml:mi></mml:mrow></mml:math></inline-formula>, resulting in a highly positive pe of 15.66 and a moderately acidic pH of 5.58. Pyrite and calcite are modeled as equilibrium phases, while the remaining minerals are under kinetic control. Rate laws were sourced from <xref ref-type="bibr" rid="bib1.bibx30" id="text.53"/>; the corresponding parameters – initial surface area SA [<inline-formula><mml:math id="M89" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kg</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>] and correction factor CF – are summarized in Table <xref ref-type="table" rid="T3"/>. Secondary precipitation of siderite is allowed only in the bottom layer, while precipitation of kaolinite and calcite is suppressed throughout the domain. The injection of oxidizing fluids from the inlet boundary results in a non-uniform transport front due to the hydraulic contrast among the layers. Darcy velocity <inline-formula><mml:math id="M90" display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula> ranges from <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.12</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M92" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the bottom layer to as low as <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.10</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M94" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the middle one, with <inline-formula><mml:math id="M95" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Cl</mml:mi></mml:mrow></mml:math></inline-formula>, which acts conservatively in this simulation, travelling between 4.5 and 7 <inline-formula><mml:math id="M96" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> within the domain during the simulation period (Fig. <xref ref-type="fig" rid="F6"/>).</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e1980">Mesh and model setup used for the heterogeneous simulation. The injected solution is equilibrated with 0.1 <inline-formula><mml:math id="M97" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">atm</mml:mi></mml:mrow></mml:math></inline-formula> partial pressure of oxygen, triggering pyrite oxidation and release of protons in the system.</p></caption>
          <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f05.png"/>

        </fig>

      <p id="d2e1997">As expected, in the two main reactive layers, the injected fluid triggers pyrite oxidation, releasing <inline-formula><mml:math id="M98" display="inline"><mml:mrow class="chem"><mml:msubsup><mml:mi mathvariant="normal">SO</mml:mi><mml:mn mathvariant="normal">4</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>-</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M99" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">Fe</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>+</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M100" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">H</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> into the fluid phase. These more acidic conditions, together with the undersaturation of kaolinite in the injected fluids, induce kaolinite dissolution and the subsequent release of <inline-formula><mml:math id="M101" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Al</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M102" display="inline"><mml:mrow class="chem"><mml:mi mathvariant="normal">Si</mml:mi></mml:mrow></mml:math></inline-formula>. In the lower layer, calcite dissolution releases carbonate, which combines with <inline-formula><mml:math id="M103" display="inline"><mml:mrow class="chem"><mml:msup><mml:mi mathvariant="normal">Fe</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>+</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> from pyrite oxidation and leads to siderite precipitation (Fig. <xref ref-type="fig" rid="F6"/>). Although only limited quartz dissolution occurs in the central aquitard, the fluid chemistry evolves due to solute contributions from the bounding layers throughout the simulation.</p>

      <fig id="F6"><label>Figure 6</label><caption><p id="d2e2076"><bold>(a)</bold> Map of total dissolved Cl concentrations at the end of simulation time. The yellow dotted lines represent the location of the profiles displayed in the other two images. <bold>(b)</bold> Concentration profiles of relevant solutes and minerals in the upper layer. Minerals, represented with dashed lines, refer to the <inline-formula><mml:math id="M104" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-axis on the right; <bold>(c)</bold> Profiles of relevant solutes and minerals in the lower layer.</p></caption>
          <graphic xlink:href="https://adgeo.copernicus.org/articles/67/117/2026/adgeo-67-117-2026-f06.png"/>

        </fig>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e2104">Initial geochemical setup used for the heterogeneous simulation (UL <inline-formula><mml:math id="M105" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Upper Layer; ML <inline-formula><mml:math id="M106" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Middle Layer; LL <inline-formula><mml:math id="M107" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Lower Layer; IS <inline-formula><mml:math id="M108" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Inlet Solution).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameter</oasis:entry>
         <oasis:entry colname="col2">Units</oasis:entry>
         <oasis:entry colname="col3">UL</oasis:entry>
         <oasis:entry colname="col4">ML</oasis:entry>
         <oasis:entry colname="col5">LL</oasis:entry>
         <oasis:entry colname="col6">IS</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">pH</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">6.653</oasis:entry>
         <oasis:entry colname="col4">6.841</oasis:entry>
         <oasis:entry colname="col5">9.963</oasis:entry>
         <oasis:entry colname="col6">5.576</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">pe</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M109" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>3.167</oasis:entry>
         <oasis:entry colname="col4">4.39</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M110" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>6.769</oasis:entry>
         <oasis:entry colname="col6">15.66</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Na</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M111" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Cl</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M116" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Si</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M121" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:mn mathvariant="normal">8.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:mn mathvariant="normal">7.96</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.35</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Al</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M125" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:mn mathvariant="normal">8.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Ca</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M129" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Fe</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M132" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.39</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.43</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">S</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M136" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:mn mathvariant="normal">8.77</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.87</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">C</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M140" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.35</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.06</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Quartz (kin)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M144" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">–</oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Pyrite (eq)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M146" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Kaolinite (kin)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M149" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Calcite (eq)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M152" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Siderite (kin)</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M154" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">mol</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">kgw</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">0.00</oasis:entry>
         <oasis:entry colname="col6">–</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="T3"><label>Table 3</label><caption><p id="d2e3219">Kinetic parameters used the heterogeneous simulation (SA <inline-formula><mml:math id="M155" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Initial Surface Area; CF <inline-formula><mml:math id="M156" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Correction Factor).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Phase</oasis:entry>
         <oasis:entry colname="col2">SA [m<sup>2</sup> kgw<sup>−1</sup>]</oasis:entry>
         <oasis:entry colname="col3">CF [–]</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Quartz</oasis:entry>
         <oasis:entry colname="col2">0.01</oasis:entry>
         <oasis:entry colname="col3">1.00</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Kaolinite</oasis:entry>
         <oasis:entry colname="col2">0.60</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Siderite</oasis:entry>
         <oasis:entry colname="col2">1.20</oasis:entry>
         <oasis:entry colname="col3">1.00</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3335">This simulation runs in <inline-formula><mml:math id="M160" display="inline"><mml:mo>∼</mml:mo></mml:math></inline-formula> 60 min using 16 cores on a compute server equipped with Intel Xeon CPU at 3.20 GHz. This example further demonstrates the capabilities of the GOLEM-PHREEQC implementation to handle reactive transport in hydraulically and geochemically heterogeneous systems, and represents a first step towards the analysis of complex real-world reservoir dynamics through open source numerical modelling. </p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Outlook and Future Developments</title>
      <p id="d2e3355">While still at an early stage of development, the GOLEM-PHREEQC coupling supports 1D/2D/3D simulations of fluid flow, rock mechanics and reactive transport, including mineral dissolution &amp; precipitation processes, cationic exchange and partial support to surface complexation. A simple mechanism to assign grid elements to distinct, heterogeneous geochemical zones is built in. While not yet fully validated at the time of writing, the coupling between heat transport and chemical reactions is also functioning. Heat transport is integral to GOLEM and used only as input for geochemical simulations in our coupling, since PHREEQC does not compute excess reaction heat.</p>
      <p id="d2e3358">The capability to utilize parallelization and high-performance computing additionally enables effective simulation of large, heterogeneous systems. Furthermore, the open source nature of this software allows users to examine, modify, and expand its source code to address specific research or engineering requirements, removing constraints and ambiguities frequently encountered with proprietary software. The successful validation establishes the groundwork for the subsequent development phase, focused on representing more sophisticated dynamic interactions between geochemical reactions and subsurface transport phenomena, notably including feedbacks to other subprocesses.</p>
      <p id="d2e3361">A full-fledged THMC simulator should incorporate feedbacks between the different physical and chemical processes. A first example of feedback under development is the dynamic update of permeability following changes in porosity due to mineral alterations. The well-established Kozeny-Carman relationship <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx8 bib1.bibx9" id="paren.54"/> is a widely adopted empirical correlation often used in reactive transport simulators to represent the feedback of chemistry on hydrodynamics. Many further feedback mechanisms still need to be implemented to achieve a more realistic description of subsurface processes, i.e., change in mechanical characteristics of the medium following chemical degradation of mineral components. The full feedback of chemical reactions on the hydrodynamic properties of the fluid (density, viscosity, heat capacity) is also subject of ongoing work, allowing fluid properties such as density and viscosity to change in response to chemical modifications in the system. This can be achieved either leveraging the aqueous model implemented in PHREEQC or by user-specified equations of state.</p>
      <p id="d2e3367">Finally, support for fractured reservoir systems is planned, enabling simulation of preferential flow channels and their interaction with reactive mechanisms. Concurrent investigations are examining the viability of integrating Reaktoro <xref ref-type="bibr" rid="bib1.bibx26" id="paren.55"/> into the GOLEM framework as an additional geochemical engine. This would provide enhanced geochemical modeling capabilities, especially for multiphase systems and advanced kinetic formulations, and leverage the On Demand Machine Learning (ODML) approach embedded in this simulator <xref ref-type="bibr" rid="bib1.bibx27" id="paren.56"/>. The recently published general interface Alquimia <xref ref-type="bibr" rid="bib1.bibx34" id="paren.57"/> represents also an interesting further option for the extension of GOLEM, since it promises the ability to swap different specialized geochemical solvers with limited programming efforts and will be explored in future.</p>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions</title>
      <p id="d2e3388">This paper presents the latest developments in the ongoing implementation of the GOLEM-PHREEQC coupling for reactive transport modeling in fully saturated heterogeneous media. With a fully functional integration of both equilibrium and kinetic reactions within heterogeneous domains, our effort is now focused on incorporating the full PHREEQC capabilities and implementing the dynamic feedbacks across processes. The open source GOLEM-PHREEQC framework demonstrates strong potential as a robust alternative to commercial software solutions for simulating multiphysics (THMC) advective-dispersive reactive transport processes in complex geothermal systems. These attributes support the broader goal of promoting the widespread adoption of multiphysics modeling platforms within the geoscientific and engineering communities, and encourages a more inclusive advancement of computational modeling practices. In addition, extending the framework to support other geochemical solvers through unified interfaces would further enhance its versatility and allow for comparative benchmarking across different modeling approaches.</p>
</sec>

      
      </body>
    <back><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d2e3395">GOLEM is open source and can be downloaded, upon registration, from <uri>https://git.gfz.de/thc/golem</uri> (last access: 22 December 2025). Note that in 2026 the domain will change to “gfz.de”. The input scripts used on this paper are part of benchmark collection available on the same platform.</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d2e3404">No data sets were used in this article.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e3410">MDL: Writing (original draft), Conceptualization, Methodology, Funding Acquisition, Software; SF: Investigation, Validation, Visualization, Writing (review and editing); ML: Software, Writing (review and editing); MC: Software, Methodology, Writing (review and editing); EP: Writing (review and editing); HH: Supervision, Writing (review and editing); MSW: Supervision, Writing (review and editing); GB: Conceptualization, Funding Acquisition, Supervision, Project Administration, Writing (review and editing).</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e3416">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e3422">Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><notes notes-type="sistatement"><title>Special issue statement</title>

      <p id="d2e3428">This article is part of the special issue “European Geosciences Union General Assembly 2025, EGU Division Energy, Resources &amp; Environment (ERE)”. It is a result of the EGU General Assembly 2025, Vienna, Austria &amp; Online, 27 April–2 May 2025.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e3434">We gratefully acknowledge the U.S. Geological Survey (USGS) and Idaho National Laboratory (INL) for providing open access to PHREEQC, including the IPhreeqc module, and MOOSE.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e3439">This research has been supported by the Bundesministerium für Wirtschaft und Energie in Project THC Prognos (grant no. 03EE4056A). The article processing charges for this open-access publication were covered by the GFZ Helmholtz Centre  for Geosciences.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e3452">This paper was edited by Giorgia Stasi and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>André et al.(2006)André, Rabemanana, and Vuataz</label><mixed-citation>André, L., Rabemanana, V., and Vuataz, F.: Influence of water-rock interactions on fracture permeability of the deep reservoir at Soultz-sous-Forêts, France, Geothermics, 35, 507–531, <ext-link xlink:href="https://doi.org/10.1016/j.geothermics.2006.09.006" ext-link-type="DOI">10.1016/j.geothermics.2006.09.006</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Balay et al.(2016)Balay, Abhyankhar, Adams, Brown, Brune, Buschelman, Dalcin, Eijkhout, Gropp, Kaushik, Knepley, Curfman McInnes, Rupp, Smith, Zampini, and Zhang</label><mixed-citation>Balay, S., Abhyankhar, S., Adams, M., Brown, J., Brune, P., Buschelman, K., Dalcin, L., Eijkhout, V., Gropp, W., Kaushik, D., Knepley, M., Curfman McInnes, L., Rupp, K., Smith, B., Zampini, S., and Zhang, H.: PETSc Users Manual, Tech. rep., Argonne National Laboratory, <ext-link xlink:href="https://doi.org/10.2172/1577437" ext-link-type="DOI">10.2172/1577437</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Bea et al.(2009)Bea, Carrera, Ayora, Batlle, and Saaltink</label><mixed-citation>Bea, S., Carrera, J., Ayora, C., Batlle, F., and Saaltink, M.: CHEPROO: A Fortran 90 object-oriented module to solve chemical processes in Earth Science models, Computers &amp; Geosciences, 35, 1098–1112, <ext-link xlink:href="https://doi.org/10.1016/j.cageo.2008.08.010" ext-link-type="DOI">10.1016/j.cageo.2008.08.010</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Blöcher et al.(2024)Blöcher, Regenspurg, Kranz, Lipus, Pei, Norden, Reinsch, Henninges, Siemon, Orenczuk, Zeilfelder, Scheytt, and Saadat</label><mixed-citation>Blöcher, G., Regenspurg, S., Kranz, S., Lipus, M., Pei, L., Norden, B., Reinsch, T., Henninges, J., Siemon, R., Orenczuk, D., Zeilfelder, S., Scheytt, T., and Saadat, A.: Best practices for characterization of High Temperature-Aquifer Thermal Energy Storage (HT-ATES) potential using well tests in Berlin (Germany) as an example, Geothermics, 116, <ext-link xlink:href="https://doi.org/10.1016/j.geothermics.2023.102830" ext-link-type="DOI">10.1016/j.geothermics.2023.102830</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Bundschuh and Suárez Arriaga(2010)</label><mixed-citation>Bundschuh, J. and Suárez Arriaga, M.: Introduction to the numerical modeling of groundwater and geothermal systems. Fundamentals of mass, energy, and solute transport in poroelastic rocks, Multiphisycs Modelling 2, CRC Press, Boca Raton, FL, ISBN 978-0-203-84810-4, <ext-link xlink:href="https://doi.org/10.1201/b10499" ext-link-type="DOI">10.1201/b10499</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Bächler and Kohl(2005)</label><mixed-citation>Bächler, D. and Kohl, T.: Coupled thermal-hydraulic-chemical modelling of enhanced geothermal systems, Geophysical Journal International, 161, 533–548, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2005.02497.x" ext-link-type="DOI">10.1111/j.1365-246X.2005.02497.x</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Cacace and Jacquey(2017)</label><mixed-citation>Cacace, M. and Jacquey, A. B.: Flexible parallel implicit modelling of coupled thermal–hydraulic–mechanical processes in fractured rocks, Solid Earth, 8, 921–941, <ext-link xlink:href="https://doi.org/10.5194/se-8-921-2017" ext-link-type="DOI">10.5194/se-8-921-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Carman(1937)</label><mixed-citation> Carman, P.: Fluid flow through granular beds, Transactions, Institution of Chemical Engineers, London, 15, 150–166, 1937.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Carman(1956)</label><mixed-citation>Carman, P.: Flow of gases through porous media, Butterworths, London, <ext-link xlink:href="https://doi.org/10.1016/0010-2180(57)90038-X" ext-link-type="DOI">10.1016/0010-2180(57)90038-X</ext-link>, 1956.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Charlton and Parkhurst(2011)</label><mixed-citation>Charlton, S. and Parkhurst, D.: Modules based on the geochemical model PHREEQC for use in scripting and programming languages, Computers &amp; Geosciences, 37, 1653–1663, <ext-link xlink:href="https://doi.org/10.1016/j.cageo.2011.02.005" ext-link-type="DOI">10.1016/j.cageo.2011.02.005</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Chow et al.(1998)Chow, Cleary, and Falgout</label><mixed-citation>Chow, E., Cleary, A., and Falgout, R.: Design of the hypre preconditioner library, in: Proc. of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing, edited by: Henderson, M., Anderson, C., and Lyons, S., SIAM Press, Yorktown Heights, New York, USA, <uri>https://www.osti.gov/biblio/8519</uri> (last access: 22 December 2025), 1998.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>COMSOL AB()</label><mixed-citation>COMSOL AB: COMSOL Multiphysics<sup>®</sup> Reference Manual, version 6.3, COMSOL AB, Stockholm, Sweden, <uri>http://www.comsol.com</uri> (last access: 15 June 2025), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>De Lucia and Kühn(2021)</label><mixed-citation>De Lucia, M. and Kühn, M.: Geochemical and reactive transport modelling in R with the RedModRphree package, Adv. Geosci., 56, 33–43, <ext-link xlink:href="https://doi.org/10.5194/adgeo-56-33-2021" ext-link-type="DOI">10.5194/adgeo-56-33-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>De Lucia et al.(2021)De Lucia, Kühn, Lindemann, Lübke, and Schnor</label><mixed-citation>De Lucia, M., Kühn, M., Lindemann, A., Lübke, M., and Schnor, B.: POET (v0.1): speedup of many-core parallel reactive transport simulations with fast DHT lookups, Geosci. Model Dev., 14, 7391–7409, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-7391-2021" ext-link-type="DOI">10.5194/gmd-14-7391-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Engesgaard and Kipp(1992)</label><mixed-citation>Engesgaard, P. and Kipp, K.: A geochemical transport model for redox-controlled movement of mineral fronts in groundwater flow systems – a case of nitrate removal by oxidation of pyrite, Water Resources Research, 28, 2829–2843, <ext-link xlink:href="https://doi.org/10.1029/92WR01264" ext-link-type="DOI">10.1029/92WR01264</ext-link>, 1992.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Gaston et al.(2009)Gaston, Newman, Hansen, and Lebrun-Grandié</label><mixed-citation>Gaston, D., Newman, C., Hansen, G., and Lebrun-Grandié, D.: MOOSE: A parallel computational framework for coupled systems of nonlinear equations, Nuclear Engineering and Design, 239, 1768–1778, <ext-link xlink:href="https://doi.org/10.1016/j.nucengdes.2009.05.021" ext-link-type="DOI">10.1016/j.nucengdes.2009.05.021</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Greenshields and Weller(2022)</label><mixed-citation> Greenshields, C. and Weller, H.: Notes on Computational Fluid Dynamics: General Principles, CFD Direct Ltd, Reading, UK, ISBN 978-1-3999-2078-0, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>He et al.(2015)He, Beyer, Fleckenstein, Jang, Kolditz, Naumov, and Kalbacher</label><mixed-citation>He, W., Beyer, C., Fleckenstein, J. H., Jang, E., Kolditz, O., Naumov, D., and Kalbacher, T.: A parallelization scheme to simulate reactive transport in the subsurface environment with OGS#IPhreeqc 5.5.7-3.1.2, Geosci. Model Dev., 8, 3333–3348, <ext-link xlink:href="https://doi.org/10.5194/gmd-8-3333-2015" ext-link-type="DOI">10.5194/gmd-8-3333-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Heroux et al.(2005)Heroux, Phipps, Salinger, Thornquist, Tuminaro, Willenbring, Williams, Stanley, Bartlett, Howle, Hoekstra, Hu, Kolda, Lehoucq, Long, and Pawlowski</label><mixed-citation>Heroux, M., Phipps, E., Salinger, A., Thornquist, H., Tuminaro, R., Willenbring, J., Williams, A., Stanley, K., Bartlett, R., Howle, V., Hoekstra, R., Hu, J., Kolda, T., Lehoucq, R., Long, K., and Pawlowski, R.: An overview of the Trilinos project, ACM T. Math. Software, 31, 397–423, <ext-link xlink:href="https://doi.org/10.1145/1089014.1089021" ext-link-type="DOI">10.1145/1089014.1089021</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Jing et al.(2002)Jing, Watanabe, Willis-Richards, and Hashida</label><mixed-citation>Jing, Z., Watanabe, K., Willis-Richards, J., and Hashida, T.: A 3-D water/rock chemical interaction model for prediction of HDR/HWR geothermal reservoir performance, Geothermics, 31, 1–28, <ext-link xlink:href="https://doi.org/10.1016/S0375-6505(00)00059-6" ext-link-type="DOI">10.1016/S0375-6505(00)00059-6</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Kirk et al.(2006)Kirk, Peterson, Stogner, and Carey</label><mixed-citation>Kirk, B., Peterson, J., Stogner, R., and Carey, G.: libMesh: a C++ library for parallel adaptive mesh refinement/coarsening simulations, Eng. Comput., 22, 237–254, <ext-link xlink:href="https://doi.org/10.1007/s00366-006-0049-3" ext-link-type="DOI">10.1007/s00366-006-0049-3</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Kiryukhin et al.(2004)Kiryukhin, Xu, Pruess, Apps, and Slovtsov</label><mixed-citation>Kiryukhin, A., Xu, T., Pruess, K., Apps, J., and Slovtsov, I.: Thermal-hydrodynamic-chemical (THC) modeling based on geothermal field data, Geothermics, 33, 349–381, <ext-link xlink:href="https://doi.org/10.1016/j.geothermics.2003.09.005" ext-link-type="DOI">10.1016/j.geothermics.2003.09.005</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Kozeny(1927)</label><mixed-citation> Kozeny, J.: Ueber kapillare Leitung des Wassers im Boden, Sitzungsberichte Wiener Akademie, 136, 271–306, 1927.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Kulik et al.(2012)Kulik, Wagner, Dmytrieva, Kosakowski, Hingerl, Chudnenko, and Berner</label><mixed-citation>Kulik, D. A., Wagner, T., Dmytrieva, S. V., Kosakowski, G., Hingerl, F. F., Chudnenko, K. V., and Berner, U. R.: GEM-Selektor geochemical modeling package: revised algorithm and GEMS3K numerical kernel for coupled simulation codes, Computational Geosciences, <ext-link xlink:href="https://doi.org/10.1007/s10596-012-9310-6" ext-link-type="DOI">10.1007/s10596-012-9310-6</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Kyas et al.(2022)Kyas, Volpatto, Saar, and Leal</label><mixed-citation>Kyas, S., Volpatto, D., Saar, M. O., and Leal, A. M. M.: Accelerated reactive transport simulations in heterogeneous porous media using Reaktoro and Firedrake, Computational Geosciences, 26, 295–327, <ext-link xlink:href="https://doi.org/10.1007/s10596-021-10126-2" ext-link-type="DOI">10.1007/s10596-021-10126-2</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Leal(2015)</label><mixed-citation>Leal, A. M. M.: Reaktoro: An open-source unified framework for modeling chemically reactive systems, <uri>https://reaktoro.org</uri> (last access: 15 June 2025), 2015.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Leal et al.(2020)Leal, Kyas, Kulik, and Saar</label><mixed-citation>Leal, A. M. M., Kyas, S., Kulik, D. A., and Saar, M. O.: Accelerating Reactive Transport Modeling: On-Demand Machine Learning Algorithm for Chemical Equilibrium Calculations, Transport in Porous Media, <ext-link xlink:href="https://doi.org/10.1007/s11242-020-01412-1" ext-link-type="DOI">10.1007/s11242-020-01412-1</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Logg et al.(2012)Logg, Mardal, and Wells</label><mixed-citation>Logg, A., Mardal, K., and Wells, G.: Automated solution of differential equations by the finite element method: The FEniCS book, Springer-Verlag, Berlin Heidelberg, <ext-link xlink:href="https://doi.org/10.1007/978-3-642-23099-8" ext-link-type="DOI">10.1007/978-3-642-23099-8</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Lübke et al.(2025)Lübke, De Lucia, Petri, and Schnor</label><mixed-citation>Lübke, M., De Lucia, M., Petri, S., and Schnor, B.: A fast MPI-based Distributed Hash-Table as Surrogate Model demonstrated in a coupled reactive transport HPC simulation, in: Proceedings of the 25th International Conference on Computational Science, Singapore, <ext-link xlink:href="https://doi.org/10.1007/978-3-031-97635-3_28" ext-link-type="DOI">10.1007/978-3-031-97635-3_28</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Marty et al.(2015)Marty, Claret, Lassin, Tremosa, Blanc, Madé, Giffaut, Cochepin, and Tournassat</label><mixed-citation>Marty, N. C., Claret, F., Lassin, A., Tremosa, J., Blanc, P., Madé, B., Giffaut, E., Cochepin, B., and Tournassat, C.: A database of dissolution and precipitation rates for clay-rocks minerals, Applied Geochemistry, 55, 108–118, <ext-link xlink:href="https://doi.org/10.1016/j.apgeochem.2014.10.012" ext-link-type="DOI">10.1016/j.apgeochem.2014.10.012</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Mayer et al.(2002)Mayer, Frind, and Blowes</label><mixed-citation>Mayer, K. U., Frind, E. O., and Blowes, D. W.: Multicomponent reactive transport modeling in variably saturated porous media using a generalized formulation for kinetically controlled reactions, Water Resources Research, 38, <ext-link xlink:href="https://doi.org/10.1029/2001wr000862" ext-link-type="DOI">10.1029/2001wr000862</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Meeussen(2003)</label><mixed-citation>Meeussen, J. C. L.: ORCHESTRA: An Object-Oriented Framework for Implementing Chemical Equilibrium Models, Environmental Science &amp; Technology, 37, 1175–1182, <ext-link xlink:href="https://doi.org/10.1021/es025597s" ext-link-type="DOI">10.1021/es025597s</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Mills et al.(2007)Mills, Lu, Lichtner, and Hammond</label><mixed-citation>Mills, R., Lu, C., Lichtner, P., and Hammond, G.: Simulating subsurface flow and transport on ultrascale computers using PFLOTRAN, Journal of Physics: Conference Series, 78, <ext-link xlink:href="https://doi.org/10.1088/1742-6596/78/1/012051" ext-link-type="DOI">10.1088/1742-6596/78/1/012051</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Molins et al.(2025)Molins, Andre, Johnson, Hammond, Sulman, Lipnikov, Day, Beisman, Svyatsky, Deng, Lichtner, Steefel, and Moulton</label><mixed-citation>Molins, S., Andre, B. J., Johnson, J. N., Hammond, G. E., Sulman, B. N., Lipnikov, K., Day, M. S., Beisman, J. J., Svyatsky, D., Deng, H., Lichtner, P. C., Steefel, C. I., and Moulton, J. D.: Alquimia v1.0: a generic interface to biogeochemical codes – a tool for interoperable development, prototyping and benchmarking for multiphysics simulators, Geosci. Model Dev., 18, 3241–3263, <ext-link xlink:href="https://doi.org/10.5194/gmd-18-3241-2025" ext-link-type="DOI">10.5194/gmd-18-3241-2025</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Nardi et al.(2014)Nardi, Idiart, Trinchero, de Vries, and Xu</label><mixed-citation>Nardi, A., Idiart, A., Trinchero, P., de Vries, L., and Xu, T.: Interface COMSOL-PHREEQC (iCP), an efficient numerical framework for the solution of coupled multiphysics and geochemistry, Computers &amp; Geosciences, 69, 10–21, <ext-link xlink:href="https://doi.org/10.1016/j.cageo.2014.04.011" ext-link-type="DOI">10.1016/j.cageo.2014.04.011</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Palandri and Kharaka(2004)</label><mixed-citation>Palandri, J. and Kharaka, Y.: A compilation of rate parameters of water-mineral interaction kinetics for application to geochemical modeling, Tech. rep., USGS, Menlo Park, California, USA, <ext-link xlink:href="https://doi.org/10.3133/ofr20041068" ext-link-type="DOI">10.3133/ofr20041068</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Pandey et al.(2018)Pandey, Vishal, and Chaudhuri</label><mixed-citation>Pandey, S., Vishal, V., and Chaudhuri, A.: Geothermal reservoir modeling in a coupled thermo-hydro-mechanical-chemical approach: A review, Earth-Science Reviews, 185, 1157–1169, <ext-link xlink:href="https://doi.org/10.1016/j.earscirev.2018.09.004" ext-link-type="DOI">10.1016/j.earscirev.2018.09.004</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Parkhurst and Appelo(2013)</label><mixed-citation>Parkhurst, D. and Appelo, C.: Description of Input and Examples for PHREEQC Version 3 – A Computer Program for Speciation, Batch-Reaction, One-Dimensional Transport, and Inverse Geochemical Calculations, Tech. Rep. 6-A43, U.S. Geological Survey, Reston, VA, <ext-link xlink:href="https://doi.org/10.3133/tm6A43" ext-link-type="DOI">10.3133/tm6A43</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Parkhurst and Wissmeier(2015)</label><mixed-citation>Parkhurst, D. and Wissmeier, L.: PhreeqcRM: A reaction module for transport simulators based on the geochemical model PHREEQC, Adv. Water Resour., 83, 176–189, <ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2015.06.001" ext-link-type="DOI">10.1016/j.advwatres.2015.06.001</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Parkhurst et al.(2010)Parkhurst, Kipp, and Charlton</label><mixed-citation>Parkhurst, D., Kipp, K., and Charlton, S.: PHAST Version 2-A Program for Simulating Groundwater Flow, Solute Transport, and Multicomponent Geochemical Reactions, Tech. Rep. 6-A35, U.S. Geological Survey, <ext-link xlink:href="https://doi.org/10.3133/tm6A35" ext-link-type="DOI">10.3133/tm6A35</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Permann et al.(2020)Permann, Gaston, Andrš, Carlsen, Kong, Lindsay, Miller, Peterson, Slaughter, Stogner, and Martineau</label><mixed-citation>Permann, C., Gaston, D., Andrš, D., Carlsen, R., Kong, F., Lindsay, A., Miller, J., Peterson, J., Slaughter, A., Stogner, R., and Martineau, R.: MOOSE: Enabling massively parallel multiphysics simulation, SoftwareX, 11, <ext-link xlink:href="https://doi.org/10.1016/j.softx.2020.100430" ext-link-type="DOI">10.1016/j.softx.2020.100430</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Prommer et al.(1999)Prommer, Davis, and Barry</label><mixed-citation> Prommer, H., Davis, G., and Barry, D.: PHT3D-a three-dimensional biogeochemical transport model for modelling natural and enhanced remediation, in: Proceedings of the Contaminated Site Remediation: Challenges Posed by Urban and Industrial Contaminants, Fremantle, Western Australia, 21–25, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Rabemanana et al.(2003)Rabemanana, Durst, Bächler, Vuataz, and Kohl</label><mixed-citation>Rabemanana, V., Durst, P., Bächler, D., Vuataz, F., and Kohl, T.: Geochemical modelling of the Soultz-sous-Forêts Hot Fractured Rock system: comparison of two reservoirs at 3.8 and 5 km depth, Geothermics, 32, 645–653, <ext-link xlink:href="https://doi.org/10.1016/S0375-6505(03)00069-5" ext-link-type="DOI">10.1016/S0375-6505(03)00069-5</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Regenspurg et al.(2020)Regenspurg, Alawi, Norden, Vieth-Hillebrand, Blöcher, Kranz, Scheytt, Horn, Burckhardt, Rach, and Saadat</label><mixed-citation>Regenspurg, S., Alawi, M., Norden, B., Vieth-Hillebrand, A., Blöcher, G., Kranz, S., Scheytt, T., Horn, F., Burckhardt, O., Rach, O., and Saadat, A.: Effect of cold and hot water injection on the chemical and microbial composition of an aquifer and implication for its use as an aquifer thermal energy storage, Geothermics, 84, <ext-link xlink:href="https://doi.org/10.1016/j.geothermics.2019.101747" ext-link-type="DOI">10.1016/j.geothermics.2019.101747</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Saaltink et al.(2004)Saaltink, Batlle, Carrera, and Olivella</label><mixed-citation> Saaltink, M., Batlle, F., Carrera, J., and Olivella, S.: RETRASO, a code for modeling reactive transport in saturated and unsaturated porous media, Geologica Acta, 2, 235–251, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Samper et al.(2003)Samper, Yang, and Montenegro</label><mixed-citation>Samper, J., Yang, C., and Montenegro, L.: CORE2D version 4: A Code for Non-Isothermal Water Flow and Reactive Solute Transport, User's Manual, Tech. rep., University of La Coruña, Spain, <uri>https://inis.iaea.org/records/vgeyd-xc106</uri> (last  access: 22 December 2025), 2003.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Soulaine et al.(2021)Soulaine, Pavuluri, Claret, and Tournassat</label><mixed-citation>Soulaine, C., Pavuluri, S., Claret, F., and Tournassat, C.: porousMedia4Foam: Multi-scale open-source platform for hydro-geochemical simulations with OpenFOAM, Environmental Modelling &amp; Software, 145, 105199, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2021.105199" ext-link-type="DOI">10.1016/j.envsoft.2021.105199</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Steefel(2009)</label><mixed-citation>Steefel, C.: CrunchFlow: Software for Modeling Multicomponent Reactive Flow and Transport, Tech. rep., Earth Sciences Division, Lawrence Berkeley National Laboratory, Berkeley, CA, <uri>https://www.netl.doe.gov/sites/default/files/netl-file/CrunchFlow-Manual.pdf</uri> (last access: 22 December 2025), 2009. </mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Steefel et al.(2014)Steefel, Appelo, Arora, Jacques, Kalbacher, Kolditz, Lagneau, Lichtner, Mayer, Meeussen, Molins, Moulton, Shao, Šimůnek, Spycher, Yabusaki, and Yeh</label><mixed-citation>Steefel, C. I., Appelo, C. A. J., Arora, B., Jacques, D., Kalbacher, T., Kolditz, O., Lagneau, V., Lichtner, P. C., Mayer, K. U., Meeussen, J. C. L., Molins, S., Moulton, D., Shao, H., Šimůnek, J., Spycher, N., Yabusaki, S. B., and Yeh, G. T.: Reactive transport codes for subsurface environmental simulation, Computational Geosciences, 19, 445–478, <ext-link xlink:href="https://doi.org/10.1007/s10596-014-9443-x" ext-link-type="DOI">10.1007/s10596-014-9443-x</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Thoenen et al.(2014)Thoenen, Hummel, Berner, and Curti</label><mixed-citation> Thoenen, T., Hummel, W., Berner, U., and Curti, E.: The PSI/Nagra Chemical Thermodynamic Data Base 12/07, Tech. Rep. PSI Report 14-04, Paul Scherrer Institute, Villigen, Switzerland, ISSN 1019-0643, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Trebotich et al.(2008)Trebotich, Van Straalen, Graves, and Colella</label><mixed-citation>Trebotich, D., Van Straalen, B., Graves, D., and Colella, P.: Performance of embedded boundary methods for CFD with complex geometry, Journal of Physics: Conference Series, 125, <ext-link xlink:href="https://doi.org/10.1088/1742-6596/125/1/012083" ext-link-type="DOI">10.1088/1742-6596/125/1/012083</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Van der Lee et al.(2003)Van der Lee, de Windt, Lagneau, and Goblet</label><mixed-citation>Van der Lee, J., de Windt, L., Lagneau, V., and Goblet, P.: Module-oriented modeling of reactive transport with HYTEC, Computers &amp; Geosciences, 29, 265–275, <ext-link xlink:href="https://doi.org/10.1016/S0098-3004(03)00004-9" ext-link-type="DOI">10.1016/S0098-3004(03)00004-9</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Wilkins et al.(2021)Wilkins, Green, Harbour, and Podgorney</label><mixed-citation>Wilkins, A., Green, C., Harbour, L., and Podgorney, R.: The MOOSE geochemistry module, Journal of Open Source Software, 6, 3314, <ext-link xlink:href="https://doi.org/10.21105/joss.03314" ext-link-type="DOI">10.21105/joss.03314</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Xu et al.(2011)Xu, Spycher, Sonnenthal, Zhang, Zheng, and Pruess</label><mixed-citation>Xu, T., Spycher, N., Sonnenthal, E., Zhang, G., Zheng, L., and Pruess, K.: TOUGHREACT Version 2.0: A simulator for subsurface reactive transport under non-isothermal multiphase flow conditions, Computers &amp; Geosciences, 37, 763–774, <ext-link xlink:href="https://doi.org/10.1016/j.cageo.2010.10.007" ext-link-type="DOI">10.1016/j.cageo.2010.10.007</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Šimůnek et al.(2006)Šimůnek, Jacques, van Genuchten, and Mallants</label><mixed-citation>Šimůnek, J., Jacques, D., van Genuchten, M., and Mallants, D.: Multicomponent geochemical transport modeling using HYDRUS-1D and HP1, Journal of the American Water Resources Association, 42, 1537–1547, <ext-link xlink:href="https://doi.org/10.1111/j.1752-1688.2006.tb06019.x" ext-link-type="DOI">10.1111/j.1752-1688.2006.tb06019.x</ext-link>, 2006.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Towards fully coupled Thermo-Hydro-Mechanical-Chemical (THMC) modelling in advanced reservoir engineering: GOLEM-PHREEQC</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>André et al.(2006)André, Rabemanana, and Vuataz</label><mixed-citation>
      
André, L., Rabemanana, V., and Vuataz, F.: Influence of water-rock
interactions on fracture permeability of the deep reservoir at
Soultz-sous-Forêts, France, Geothermics, 35, 507–531,
<a href="https://doi.org/10.1016/j.geothermics.2006.09.006" target="_blank">https://doi.org/10.1016/j.geothermics.2006.09.006</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Balay et al.(2016)Balay, Abhyankhar, Adams, Brown, Brune, Buschelman,
Dalcin, Eijkhout, Gropp, Kaushik, Knepley, Curfman McInnes, Rupp, Smith,
Zampini, and Zhang</label><mixed-citation>
      
Balay, S., Abhyankhar, S., Adams, M., Brown, J., Brune, P., Buschelman, K.,
Dalcin, L., Eijkhout, V., Gropp, W., Kaushik, D., Knepley, M.,
Curfman McInnes, L., Rupp, K., Smith, B., Zampini, S., and Zhang, H.: PETSc
Users Manual, Tech. rep., Argonne National Laboratory, <a href="https://doi.org/10.2172/1577437" target="_blank">https://doi.org/10.2172/1577437</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Bea et al.(2009)Bea, Carrera, Ayora, Batlle, and Saaltink</label><mixed-citation>
      
Bea, S., Carrera, J., Ayora, C., Batlle, F., and Saaltink, M.: CHEPROO: A
Fortran 90 object-oriented module to solve chemical processes in Earth
Science models, Computers &amp; Geosciences, 35, 1098–1112,
<a href="https://doi.org/10.1016/j.cageo.2008.08.010" target="_blank">https://doi.org/10.1016/j.cageo.2008.08.010</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Blöcher et al.(2024)Blöcher, Regenspurg, Kranz, Lipus, Pei, Norden,
Reinsch, Henninges, Siemon, Orenczuk, Zeilfelder, Scheytt, and
Saadat</label><mixed-citation>
      
Blöcher, G., Regenspurg, S., Kranz, S., Lipus, M., Pei, L., Norden, B.,
Reinsch, T., Henninges, J., Siemon, R., Orenczuk, D., Zeilfelder, S.,
Scheytt, T., and Saadat, A.: Best practices for characterization of High
Temperature-Aquifer Thermal Energy Storage (HT-ATES) potential using well
tests in Berlin (Germany) as an example, Geothermics, 116,
<a href="https://doi.org/10.1016/j.geothermics.2023.102830" target="_blank">https://doi.org/10.1016/j.geothermics.2023.102830</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Bundschuh and Suárez Arriaga(2010)</label><mixed-citation>
      
Bundschuh, J. and Suárez Arriaga, M.: Introduction to the numerical modeling
of groundwater and geothermal systems. Fundamentals of mass, energy, and
solute transport in poroelastic rocks, Multiphisycs Modelling 2, CRC Press,
Boca Raton, FL, ISBN 978-0-203-84810-4, <a href="https://doi.org/10.1201/b10499" target="_blank">https://doi.org/10.1201/b10499</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Bächler and Kohl(2005)</label><mixed-citation>
      
Bächler, D. and Kohl, T.: Coupled thermal-hydraulic-chemical modelling of
enhanced geothermal systems, Geophysical Journal International, 161,
533–548, <a href="https://doi.org/10.1111/j.1365-246X.2005.02497.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2005.02497.x</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Cacace and Jacquey(2017)</label><mixed-citation>
      
Cacace, M. and Jacquey, A. B.: Flexible parallel implicit modelling of coupled thermal–hydraulic–mechanical processes in fractured rocks, Solid Earth, 8, 921–941, <a href="https://doi.org/10.5194/se-8-921-2017" target="_blank">https://doi.org/10.5194/se-8-921-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Carman(1937)</label><mixed-citation>
      
Carman, P.: Fluid flow through granular beds, Transactions, Institution of
Chemical Engineers, London, 15, 150–166, 1937.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Carman(1956)</label><mixed-citation>
      
Carman, P.: Flow of gases through porous media, Butterworths, London, <a href="https://doi.org/10.1016/0010-2180(57)90038-X" target="_blank">https://doi.org/10.1016/0010-2180(57)90038-X</a>, 1956.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Charlton and Parkhurst(2011)</label><mixed-citation>
      
Charlton, S. and Parkhurst, D.: Modules based on the geochemical model PHREEQC
for use in scripting and programming languages, Computers &amp; Geosciences, 37,
1653–1663, <a href="https://doi.org/10.1016/j.cageo.2011.02.005" target="_blank">https://doi.org/10.1016/j.cageo.2011.02.005</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Chow et al.(1998)Chow, Cleary, and Falgout</label><mixed-citation>
      
Chow, E., Cleary, A., and Falgout, R.: Design of the hypre preconditioner
library, in: Proc. of the SIAM Workshop on Object Oriented Methods for
Inter-operable Scientific and Engineering Computing, edited by: Henderson, M.,
Anderson, C., and Lyons, S., SIAM Press, Yorktown Heights, New York, USA, <a href="https://www.osti.gov/biblio/8519" target="_blank"/> (last access: 22 December 2025),
1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>COMSOL AB()</label><mixed-citation>
      
COMSOL AB: COMSOL Multiphysics<span style="position:relative; bottom:0.5em; " class="text">®</span> Reference Manual, version 6.3,
COMSOL AB, Stockholm, Sweden, <a href="http://www.comsol.com" target="_blank"/> (last access: 15 June 2025),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>De Lucia and Kühn(2021)</label><mixed-citation>
      
De Lucia, M. and Kühn, M.: Geochemical and reactive transport modelling in R with the RedModRphree package, Adv. Geosci., 56, 33–43, <a href="https://doi.org/10.5194/adgeo-56-33-2021" target="_blank">https://doi.org/10.5194/adgeo-56-33-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>De Lucia et al.(2021)De Lucia, Kühn, Lindemann, Lübke, and
Schnor</label><mixed-citation>
      
De Lucia, M., Kühn, M., Lindemann, A., Lübke, M., and Schnor, B.: POET (v0.1): speedup of many-core parallel reactive transport simulations with fast DHT lookups, Geosci. Model Dev., 14, 7391–7409, <a href="https://doi.org/10.5194/gmd-14-7391-2021" target="_blank">https://doi.org/10.5194/gmd-14-7391-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Engesgaard and Kipp(1992)</label><mixed-citation>
      
Engesgaard, P. and Kipp, K.: A geochemical transport model for redox-controlled
movement of mineral fronts in groundwater flow systems – a case of nitrate
removal by oxidation of pyrite, Water Resources Research, 28, 2829–2843,
<a href="https://doi.org/10.1029/92WR01264" target="_blank">https://doi.org/10.1029/92WR01264</a>, 1992.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Gaston et al.(2009)Gaston, Newman, Hansen, and
Lebrun-Grandié</label><mixed-citation>
      
Gaston, D., Newman, C., Hansen, G., and Lebrun-Grandié, D.: MOOSE: A parallel
computational framework for coupled systems of nonlinear equations, Nuclear
Engineering and Design, 239, 1768–1778,
<a href="https://doi.org/10.1016/j.nucengdes.2009.05.021" target="_blank">https://doi.org/10.1016/j.nucengdes.2009.05.021</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Greenshields and Weller(2022)</label><mixed-citation>
      
Greenshields, C. and Weller, H.: Notes on Computational Fluid Dynamics: General
Principles, CFD Direct Ltd, Reading, UK, ISBN 978-1-3999-2078-0, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>He et al.(2015)He, Beyer, Fleckenstein, Jang, Kolditz, Naumov, and
Kalbacher</label><mixed-citation>
      
He, W., Beyer, C., Fleckenstein, J. H., Jang, E., Kolditz, O., Naumov, D., and Kalbacher, T.: A parallelization scheme to simulate reactive transport in the subsurface environment with OGS#IPhreeqc 5.5.7-3.1.2, Geosci. Model Dev., 8, 3333–3348, <a href="https://doi.org/10.5194/gmd-8-3333-2015" target="_blank">https://doi.org/10.5194/gmd-8-3333-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Heroux et al.(2005)Heroux, Phipps, Salinger, Thornquist, Tuminaro,
Willenbring, Williams, Stanley, Bartlett, Howle, Hoekstra, Hu, Kolda,
Lehoucq, Long, and Pawlowski</label><mixed-citation>
      
Heroux, M., Phipps, E., Salinger, A., Thornquist, H., Tuminaro, R.,
Willenbring, J., Williams, A., Stanley, K., Bartlett, R., Howle, V.,
Hoekstra, R., Hu, J., Kolda, T., Lehoucq, R., Long, K., and Pawlowski, R.: An
overview of the Trilinos project, ACM T. Math. Software, 31, 397–423,
<a href="https://doi.org/10.1145/1089014.1089021" target="_blank">https://doi.org/10.1145/1089014.1089021</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Jing et al.(2002)Jing, Watanabe, Willis-Richards, and
Hashida</label><mixed-citation>
      
Jing, Z., Watanabe, K., Willis-Richards, J., and Hashida, T.: A 3-D water/rock
chemical interaction model for prediction of HDR/HWR geothermal reservoir
performance, Geothermics, 31, 1–28, <a href="https://doi.org/10.1016/S0375-6505(00)00059-6" target="_blank">https://doi.org/10.1016/S0375-6505(00)00059-6</a>,
2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Kirk et al.(2006)Kirk, Peterson, Stogner, and Carey</label><mixed-citation>
      
Kirk, B., Peterson, J., Stogner, R., and Carey, G.: libMesh: a C++ library for
parallel adaptive mesh refinement/coarsening simulations, Eng. Comput., 22,
237–254, <a href="https://doi.org/10.1007/s00366-006-0049-3" target="_blank">https://doi.org/10.1007/s00366-006-0049-3</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Kiryukhin et al.(2004)Kiryukhin, Xu, Pruess, Apps, and
Slovtsov</label><mixed-citation>
      
Kiryukhin, A., Xu, T., Pruess, K., Apps, J., and Slovtsov, I.:
Thermal-hydrodynamic-chemical (THC) modeling based on geothermal field data,
Geothermics, 33, 349–381, <a href="https://doi.org/10.1016/j.geothermics.2003.09.005" target="_blank">https://doi.org/10.1016/j.geothermics.2003.09.005</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Kozeny(1927)</label><mixed-citation>
      
Kozeny, J.: Ueber kapillare Leitung des Wassers im Boden, Sitzungsberichte
Wiener Akademie, 136, 271–306, 1927.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Kulik et al.(2012)Kulik, Wagner, Dmytrieva, Kosakowski, Hingerl,
Chudnenko, and Berner</label><mixed-citation>
      
Kulik, D. A., Wagner, T., Dmytrieva, S. V., Kosakowski, G., Hingerl, F. F.,
Chudnenko, K. V., and Berner, U. R.: GEM-Selektor geochemical modeling
package: revised algorithm and GEMS3K numerical kernel for coupled simulation
codes, Computational Geosciences, <a href="https://doi.org/10.1007/s10596-012-9310-6" target="_blank">https://doi.org/10.1007/s10596-012-9310-6</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Kyas et al.(2022)Kyas, Volpatto, Saar, and Leal</label><mixed-citation>
      
Kyas, S., Volpatto, D., Saar, M. O., and Leal, A. M. M.: Accelerated reactive
transport simulations in heterogeneous porous media using Reaktoro and
Firedrake, Computational Geosciences, 26, 295–327,
<a href="https://doi.org/10.1007/s10596-021-10126-2" target="_blank">https://doi.org/10.1007/s10596-021-10126-2</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Leal(2015)</label><mixed-citation>
      
Leal, A. M. M.: Reaktoro: An open-source unified framework for modeling
chemically reactive systems, <a href="https://reaktoro.org" target="_blank"/> (last access:
15 June 2025), 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Leal et al.(2020)Leal, Kyas, Kulik, and Saar</label><mixed-citation>
      
Leal, A. M. M., Kyas, S., Kulik, D. A., and Saar, M. O.: Accelerating
Reactive Transport Modeling: On-Demand Machine Learning
Algorithm for Chemical Equilibrium Calculations, Transport in Porous
Media, <a href="https://doi.org/10.1007/s11242-020-01412-1" target="_blank">https://doi.org/10.1007/s11242-020-01412-1</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Logg et al.(2012)Logg, Mardal, and Wells</label><mixed-citation>
      
Logg, A., Mardal, K., and Wells, G.: Automated solution of differential
equations by the finite element method: The FEniCS book, Springer-Verlag,
Berlin Heidelberg, <a href="https://doi.org/10.1007/978-3-642-23099-8" target="_blank">https://doi.org/10.1007/978-3-642-23099-8</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Lübke et al.(2025)Lübke, De Lucia, Petri, and
Schnor</label><mixed-citation>
      
Lübke, M., De Lucia, M., Petri, S., and Schnor, B.: A fast MPI-based
Distributed Hash-Table as Surrogate Model demonstrated in a coupled reactive
transport HPC simulation, in: Proceedings of the 25th International
Conference on Computational Science, Singapore, <a href="https://doi.org/10.1007/978-3-031-97635-3_28" target="_blank">https://doi.org/10.1007/978-3-031-97635-3_28</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Marty et al.(2015)Marty, Claret, Lassin, Tremosa, Blanc, Madé,
Giffaut, Cochepin, and Tournassat</label><mixed-citation>
      
Marty, N. C., Claret, F., Lassin, A., Tremosa, J., Blanc, P., Madé, B.,
Giffaut, E., Cochepin, B., and Tournassat, C.: A database of dissolution and
precipitation rates for clay-rocks minerals, Applied Geochemistry, 55,
108–118, <a href="https://doi.org/10.1016/j.apgeochem.2014.10.012" target="_blank">https://doi.org/10.1016/j.apgeochem.2014.10.012</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Mayer et al.(2002)Mayer, Frind, and Blowes</label><mixed-citation>
      
Mayer, K. U., Frind, E. O., and Blowes, D. W.: Multicomponent reactive
transport modeling in variably saturated porous media using a generalized
formulation for kinetically controlled reactions, Water Resources Research,
38, <a href="https://doi.org/10.1029/2001wr000862" target="_blank">https://doi.org/10.1029/2001wr000862</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Meeussen(2003)</label><mixed-citation>
      
Meeussen, J. C. L.: ORCHESTRA: An Object-Oriented Framework for Implementing
Chemical Equilibrium Models, Environmental Science &amp; Technology, 37,
1175–1182, <a href="https://doi.org/10.1021/es025597s" target="_blank">https://doi.org/10.1021/es025597s</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Mills et al.(2007)Mills, Lu, Lichtner, and Hammond</label><mixed-citation>
      
Mills, R., Lu, C., Lichtner, P., and Hammond, G.: Simulating subsurface flow
and transport on ultrascale computers using PFLOTRAN, Journal of Physics:
Conference Series, 78, <a href="https://doi.org/10.1088/1742-6596/78/1/012051" target="_blank">https://doi.org/10.1088/1742-6596/78/1/012051</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Molins et al.(2025)Molins, Andre, Johnson, Hammond, Sulman, Lipnikov,
Day, Beisman, Svyatsky, Deng, Lichtner, Steefel, and Moulton</label><mixed-citation>
      
Molins, S., Andre, B. J., Johnson, J. N., Hammond, G. E., Sulman, B. N., Lipnikov, K., Day, M. S., Beisman, J. J., Svyatsky, D., Deng, H., Lichtner, P. C., Steefel, C. I., and Moulton, J. D.: Alquimia v1.0: a generic interface to biogeochemical codes – a tool for interoperable development, prototyping and benchmarking for multiphysics simulators, Geosci. Model Dev., 18, 3241–3263, <a href="https://doi.org/10.5194/gmd-18-3241-2025" target="_blank">https://doi.org/10.5194/gmd-18-3241-2025</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Nardi et al.(2014)Nardi, Idiart, Trinchero, de Vries, and
Xu</label><mixed-citation>
      
Nardi, A., Idiart, A., Trinchero, P., de Vries, L., and Xu, T.: Interface
COMSOL-PHREEQC (iCP), an efficient numerical framework for the solution of
coupled multiphysics and geochemistry, Computers &amp; Geosciences, 69, 10–21,
<a href="https://doi.org/10.1016/j.cageo.2014.04.011" target="_blank">https://doi.org/10.1016/j.cageo.2014.04.011</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Palandri and Kharaka(2004)</label><mixed-citation>
      
Palandri, J. and Kharaka, Y.: A compilation of rate parameters of water-mineral
interaction kinetics for application to geochemical modeling, Tech. rep.,
USGS, Menlo Park, California, USA, <a href="https://doi.org/10.3133/ofr20041068" target="_blank">https://doi.org/10.3133/ofr20041068</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Pandey et al.(2018)Pandey, Vishal, and Chaudhuri</label><mixed-citation>
      
Pandey, S., Vishal, V., and Chaudhuri, A.: Geothermal reservoir modeling in a
coupled thermo-hydro-mechanical-chemical approach: A review, Earth-Science
Reviews, 185, 1157–1169, <a href="https://doi.org/10.1016/j.earscirev.2018.09.004" target="_blank">https://doi.org/10.1016/j.earscirev.2018.09.004</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Parkhurst and Appelo(2013)</label><mixed-citation>
      
Parkhurst, D. and Appelo, C.: Description of Input and Examples for PHREEQC
Version 3 – A Computer Program for Speciation, Batch-Reaction,
One-Dimensional Transport, and Inverse Geochemical Calculations, Tech. Rep.
6-A43, U.S. Geological Survey, Reston, VA, <a href="https://doi.org/10.3133/tm6A43" target="_blank">https://doi.org/10.3133/tm6A43</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Parkhurst and Wissmeier(2015)</label><mixed-citation>
      
Parkhurst, D. and Wissmeier, L.: PhreeqcRM: A reaction module for transport
simulators based on the geochemical model PHREEQC, Adv. Water Resour., 83,
176–189, <a href="https://doi.org/10.1016/j.advwatres.2015.06.001" target="_blank">https://doi.org/10.1016/j.advwatres.2015.06.001</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Parkhurst et al.(2010)Parkhurst, Kipp, and Charlton</label><mixed-citation>
      
Parkhurst, D., Kipp, K., and Charlton, S.: PHAST Version 2-A Program for
Simulating Groundwater Flow, Solute Transport, and Multicomponent Geochemical
Reactions, Tech. Rep. 6-A35, U.S. Geological Survey, <a href="https://doi.org/10.3133/tm6A35" target="_blank">https://doi.org/10.3133/tm6A35</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Permann et al.(2020)Permann, Gaston, Andrš, Carlsen, Kong, Lindsay,
Miller, Peterson, Slaughter, Stogner, and Martineau</label><mixed-citation>
      
Permann, C., Gaston, D., Andrš, D., Carlsen, R., Kong, F., Lindsay, A.,
Miller, J., Peterson, J., Slaughter, A., Stogner, R., and Martineau, R.:
MOOSE: Enabling massively parallel multiphysics simulation, SoftwareX, 11,
<a href="https://doi.org/10.1016/j.softx.2020.100430" target="_blank">https://doi.org/10.1016/j.softx.2020.100430</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Prommer et al.(1999)Prommer, Davis, and Barry</label><mixed-citation>
      
Prommer, H., Davis, G., and Barry, D.: PHT3D-a three-dimensional biogeochemical
transport model for modelling natural and enhanced remediation, in:
Proceedings of the Contaminated Site Remediation: Challenges Posed by Urban
and Industrial Contaminants, Fremantle, Western Australia, 21–25, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Rabemanana et al.(2003)Rabemanana, Durst, Bächler, Vuataz, and
Kohl</label><mixed-citation>
      
Rabemanana, V., Durst, P., Bächler, D., Vuataz, F., and Kohl, T.: Geochemical
modelling of the Soultz-sous-Forêts Hot Fractured Rock system: comparison of
two reservoirs at 3.8 and 5&thinsp;km depth, Geothermics, 32, 645–653,
<a href="https://doi.org/10.1016/S0375-6505(03)00069-5" target="_blank">https://doi.org/10.1016/S0375-6505(03)00069-5</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Regenspurg et al.(2020)Regenspurg, Alawi, Norden, Vieth-Hillebrand,
Blöcher, Kranz, Scheytt, Horn, Burckhardt, Rach, and
Saadat</label><mixed-citation>
      
Regenspurg, S., Alawi, M., Norden, B., Vieth-Hillebrand, A., Blöcher, G.,
Kranz, S., Scheytt, T., Horn, F., Burckhardt, O., Rach, O., and Saadat, A.:
Effect of cold and hot water injection on the chemical and microbial
composition of an aquifer and implication for its use as an aquifer thermal
energy storage, Geothermics, 84, <a href="https://doi.org/10.1016/j.geothermics.2019.101747" target="_blank">https://doi.org/10.1016/j.geothermics.2019.101747</a>,
2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Saaltink et al.(2004)Saaltink, Batlle, Carrera, and
Olivella</label><mixed-citation>
      
Saaltink, M., Batlle, F., Carrera, J., and Olivella, S.: RETRASO, a code for
modeling reactive transport in saturated and unsaturated porous media,
Geologica Acta, 2, 235–251, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Samper et al.(2003)Samper, Yang, and Montenegro</label><mixed-citation>
      
Samper, J., Yang, C., and Montenegro, L.: CORE2D version 4: A Code for
Non-Isothermal Water Flow and Reactive Solute Transport, User's Manual, Tech.
rep., University of La Coruña, Spain, <a href="https://inis.iaea.org/records/vgeyd-xc106" target="_blank"/> (last  access: 22 December 2025), 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Soulaine et al.(2021)Soulaine, Pavuluri, Claret, and
Tournassat</label><mixed-citation>
      
Soulaine, C., Pavuluri, S., Claret, F., and Tournassat, C.: porousMedia4Foam:
Multi-scale open-source platform for hydro-geochemical simulations with
OpenFOAM, Environmental Modelling &amp; Software, 145, 105199,
<a href="https://doi.org/10.1016/j.envsoft.2021.105199" target="_blank">https://doi.org/10.1016/j.envsoft.2021.105199</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Steefel(2009)</label><mixed-citation>
      
Steefel, C.: CrunchFlow: Software for Modeling Multicomponent Reactive Flow and
Transport, Tech. rep., Earth Sciences Division, Lawrence Berkeley National
Laboratory, Berkeley, CA, <a href="https://www.netl.doe.gov/sites/default/files/netl-file/CrunchFlow-Manual.pdf" target="_blank"/> (last access: 22 December 2025), 2009.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Steefel et al.(2014)Steefel, Appelo, Arora, Jacques, Kalbacher,
Kolditz, Lagneau, Lichtner, Mayer, Meeussen, Molins, Moulton, Shao,
Šimůnek, Spycher, Yabusaki, and Yeh</label><mixed-citation>
      
Steefel, C. I., Appelo, C. A. J., Arora, B., Jacques, D., Kalbacher, T.,
Kolditz, O., Lagneau, V., Lichtner, P. C., Mayer, K. U., Meeussen, J. C. L.,
Molins, S., Moulton, D., Shao, H., Šimůnek, J., Spycher, N., Yabusaki,
S. B., and Yeh, G. T.: Reactive transport codes for subsurface environmental
simulation, Computational Geosciences, 19, 445–478,
<a href="https://doi.org/10.1007/s10596-014-9443-x" target="_blank">https://doi.org/10.1007/s10596-014-9443-x</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Thoenen et al.(2014)Thoenen, Hummel, Berner, and
Curti</label><mixed-citation>
      
Thoenen, T., Hummel, W., Berner, U., and Curti, E.: The PSI/Nagra Chemical
Thermodynamic Data Base 12/07, Tech. Rep. PSI Report 14-04, Paul Scherrer
Institute, Villigen, Switzerland, ISSN 1019-0643, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Trebotich et al.(2008)Trebotich, Van Straalen, Graves, and
Colella</label><mixed-citation>
      
Trebotich, D., Van Straalen, B., Graves, D., and Colella, P.: Performance of
embedded boundary methods for CFD with complex geometry, Journal of Physics:
Conference Series, 125, <a href="https://doi.org/10.1088/1742-6596/125/1/012083" target="_blank">https://doi.org/10.1088/1742-6596/125/1/012083</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Van der Lee et al.(2003)Van der Lee, de Windt, Lagneau, and
Goblet</label><mixed-citation>
      
Van der Lee, J., de Windt, L., Lagneau, V., and Goblet, P.: Module-oriented
modeling of reactive transport with HYTEC, Computers &amp; Geosciences, 29,
265–275, <a href="https://doi.org/10.1016/S0098-3004(03)00004-9" target="_blank">https://doi.org/10.1016/S0098-3004(03)00004-9</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Wilkins et al.(2021)Wilkins, Green, Harbour, and
Podgorney</label><mixed-citation>
      
Wilkins, A., Green, C., Harbour, L., and Podgorney, R.: The MOOSE geochemistry
module, Journal of Open Source Software, 6, 3314, <a href="https://doi.org/10.21105/joss.03314" target="_blank">https://doi.org/10.21105/joss.03314</a>,
2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Xu et al.(2011)Xu, Spycher, Sonnenthal, Zhang, Zheng, and
Pruess</label><mixed-citation>
      
Xu, T., Spycher, N., Sonnenthal, E., Zhang, G., Zheng, L., and Pruess, K.:
TOUGHREACT Version 2.0: A simulator for subsurface reactive transport under
non-isothermal multiphase flow conditions, Computers &amp; Geosciences, 37,
763–774, <a href="https://doi.org/10.1016/j.cageo.2010.10.007" target="_blank">https://doi.org/10.1016/j.cageo.2010.10.007</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Šimůnek et al.(2006)Šimůnek, Jacques, van Genuchten, and
Mallants</label><mixed-citation>
      
Šimůnek, J., Jacques, D., van Genuchten, M., and Mallants, D.: Multicomponent
geochemical transport modeling using HYDRUS-1D and HP1, Journal of the
American Water Resources Association, 42, 1537–1547,
<a href="https://doi.org/10.1111/j.1752-1688.2006.tb06019.x" target="_blank">https://doi.org/10.1111/j.1752-1688.2006.tb06019.x</a>, 2006.

    </mixed-citation></ref-html>--></article>
