New here? Three steps
Site & Zone Definition
Select the stratigraphic interval to model. Each zone carries its own petrophysics, formation brine, and XRD-derived mineralogy. Defaults are pre-loaded from the example project characterization data of injection zone (petrophysical input sheet + XRD report); every value is editable.
Stratigraphic column
Zone petrophysics — Injection Zone
Simulation periods & numerics
Input Deck — Injection Zone
This example is form-driven: its input deck is assembled on AquaNRG's secure compute service from the values you set in the Brine Chemistry, Mineralogy, CO₂ Stream and Thermo Database tabs — the deck itself stays server-side (the modeling IP is not shipped to the browser). Edit the inputs in those tabs, then run from the Run Simulation tab.
The cement example is a 1D reactive-transport model: granitic groundwater infiltrates a concrete buffer column — a boundary solution (SOLUTION 0), an initial pore water (SOLUTION 1-n), cement solids at equilibrium + ion exchanger in every cell, and transport parameters. Edit the sections below; the PHREEQC input is assembled from them and executed on the compute service against the CEMDATA07 database.
Run database: CEMDATA07.dat engine: USGS PHREEQC v3
Boundary solution — infiltrating groundwater (SOLUTION 0)
Reducing granitic groundwater entering the column at the inflow face.
Initial solution — concrete pore water (SOLUTION 1-n)
Young hyperalkaline pore fluid filling every cell of the buffer at t₀.
Cement mineralogy — equilibrium phases & exchanger
Solid inventory per cell (mol / kgw), reacted at local equilibrium (SI target 0). Phases with 0 initial amount may precipitate as secondaries.
Transport parameters
Brine Chemistry — Injection Zone
Major-ion composition in molality (mol/kgw), measured pH and total alkalinity. On loading, the workbench speciates the water, reports ionic strength and charge balance, and computes the baseline saturation-index table required for the Class VI geochemical narrative.
Analytical composition
Speciation QC (live)
Baseline saturation indices (pre-injection)
Mineralogy — Injection Zone
Whole-rock XRD weight fractions define the primary mineral inventory. Choose the reaction treatment per mineral: kinetic (TST rate law) or equilibrium (instantaneous mass-action), and enable candidate secondary phases allowed to precipitate.
Primary minerals (from XRD)
Secondary phases allowed to form
CO₂ Stream, Rate & 1-kgw Scaling
Injection stream composition and mass rate are scaled down to the 1-kg-water batch reference using the projected CO₂ plume (or AoR) footprint, zone thickness and porosity — the same normalization used for the report's per-kgw carbon loading.
Stream composition (mole fraction)
Injection design
Thermodynamic Database
The engine loads the official USGS phreeqc.dat (embedded verbatim, Peng–Robinson gas EOS build), supplemented with additional carbonate and clay phases. Edit log K / ΔH / molar volume / kinetic parameters directly.
Supplemental & override phases (PHASES block)
Kinetic rate parameters (TST, Palandri & Kharaka 2004 form)
Run Batch Geochemical Simulation and sensitivity analysis
This tab runs USGS PHREEQC v3 on AquaNRG's secure compute service with the official phreeqc.dat. The model charges the brine with the scaled CO₂–N₂–O₂ stream in equal increments across the injection period (Peng–Robinson gas phase at reservoir T & P), integrates the quartz / K-feldspar / calcite rate laws, holds the remaining assemblage at equilibrium, then continues through the post-injection monitoring period.
Scenario
Results — no run yet
Porosity accounting
CEMDATA07 carries no molar-volume data, so φ is reconstructed per cell from the punched mole changes × literature molar volumes (portlandite 33.1, C-S-H 78.4/58.6, calcite 36.9, ettringite 707, gypsum 74.7 cm³/mol) over the cell bulk volume (1 kgw / φ₀).pH — profiles through time
The hyperalkaline plume and its stepwise decay: pH 12.95 (young pore fluid) → 12.5 (portlandite buffer) → ~12.1 (C-S-H buffer) as the leaching front advances from the inflow face.
Porosity — profiles through time
Net mineral-volume change per cell: portlandite leaching opens porosity at the inflow face while calcite and secondary ettringite locally clog just behind the front.
Ettringite — profiles through time (mol/kgw)
Secondary ettringite precipitates from sulfate ingress just behind the portlandite dissolution front, then redissolves in the fully leached zone — the peak migrates with the front.
Cement phases at the inflow cell — temporal evolution
Degradation sequence at the exposed face: portlandite is consumed first, then CSHjen decalcifies to CSHtob2 while calcite accumulates; ettringite (bold, right axis) grows and collapses with the front.
Porosity & pH at the inflow cell
Temporal evolution at the exposed face — the leaching-driven porosity increase and the buffered pH plateaus.
Mineral assemblage — final profile
End-of-run assemblage vs distance: leached zone, reaction fronts, and pristine cement ahead of the plume. Ettringite & gypsum on the right axis.
Exchanger & pore-water snapshot (final profile)
pH evolution
CO₂ dissolves into brine as carbonic acid — pH drops sharply during injection, then holds as the mineral assemblage buffers the system.
Carbon partitioning — % of total C (stacked)
C mass balance from PHREEQC: dissolved (DIC), free gas, and carbonate-mineral carbon as shares of total system carbon.
Solid carbon partition (%)
Each carbonate's share of the total mineral-bound carbon — which phases hold the permanently trapped CO₂.
Cumulative net volume change (cm³ / kgw)
Running sum of PHREEQC's per-step ΔV punch (Σ Vm×Δn per step): negative = net dissolution (more pore space), positive = net precipitation.
Porosity & permeability evolution
Porosity and estimated permeability response — the injectivity implication of the geochemistry above.
Carbon mass balance — DIC / gas / mineral, separate panels (% of total C)
Temporal evolution of each carbon reservoir from the PHREEQC mass balance, on its own scale.
Primary minerals — one panel per phase (mol / kgw)
The rock's starting inventory, each phase on its own scale. Fast-reacting carbonates respond to the acid pulse first; feldspar and clays react slowly over the monitoring century.
Secondary minerals — one panel per phase (mol / kgw)
Phases absent at t₀ that precipitate as the system evolves — carbonate products here are permanent mineral trapping.
Saturation indices — one panel per phase
SI > 0: thermodynamic drive to precipitate · SI < 0: drive to dissolve · dashed line marks equilibrium (SI = 0). Al-bearing phases (feldspar, clays, micas) have no defined SI at t₀ — the brine analysis contains no dissolved Al — so their t₀ point is back-filled from the first computed step; the final-SI table reports the undefined cell as "—".
Dissolved species evolution — one panel per species
Element totals in the brine from PHREEQC (mol / kgw), each on its own linear scale. Rising DIC is dissolved CO₂; Ca/Mg track carbonate reactions; Si follows the silicate kinetics.
Mineral mass balance (Table-6-style summary)
Final saturation indices
Carbon speciation summary
Site-specific model builds, reactive-transport upgrades, sensitivity suites, and permit-ready reporting — get in touch for pricing and a guided demo.
Jobs
Every simulation run is recorded here as a job — the example, scenario, full input snapshot, and the computed results. Reopen a job to review its results, restore its inputs to the workbench, or export the inputs / results for reporting.