Microbes change the chemistry in a way that promotes the precipitation of calcite.
Credit: James Connolly, Montana State University.
Segmented CT image of a glass-bead column mineralized by ICP
Credit: Johannes Hommel, University of Stuttgart
Mineralized sand, photo by Johannes Hommel, University of Stuttgart.
Porosity-Permeability changes observed by Felix Weinhardt, University of Stuttgart.
Applications in which a porous medium should be cemented in-situ, e.g. sealing, leakage mitigation, creating subsurface barries, reducing erosion, or stabilizing soil.
Main desired effects of ICP in those applications are:
(modified after Ebigbo et al., WRR 2012)
(modified after Ebigbo et al., WRR 2012)
(modified after Ebigbo et al., WRR 2012)
For this exercise: Neglecting microbial growth and decay, attachment and detachment
(modified after Ebigbo et al., WRR 2012)
Here: Ureolytic microbes produce the enzyme urease (MICP) \[ \mathrm{CO(NH_2)_2 + 2 H_2O + Ca^{2+} \rightarrow 2 NH_4^+ + CaCO_3} \]
Different reactions in detail:
\[ \begin{array}{lr} \mathrm{CO(NH_2)_2 + 2 H_2O \rightarrow 2 NH_3 + H_2CO_3} \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! & \text{ureolysis} \\ \mathrm{H_2CO_3 \rightleftharpoons HCO_3^- + H^+} & \text{dissociation of carbonic acid} \\ \mathrm{HCO_3^- \rightleftharpoons CO_3^{2-} + H^+} & \text{dissociation of bicarbonate ion} \\ \mathrm{2 NH_4^+ \rightleftharpoons 2 NH_3 + 2 H^+} & \text{dissociation of ammonia} \\ \mathrm{Ca^{2+} + CO_3^{2-} \rightleftharpoons CaCO_3 \downarrow} & \text{calcite precipitation/dissolution} \end{array} \]
(modified after Ebigbo et al., WRR 2012)
\[ \mathrm{ \underset{\text{calcium}}{Ca^{2+}} + \underset{\text{carbonate}}{CO_3^{2-}} \rightleftharpoons \underset{\text{calcite}}{CaCO_3 \downarrow} } \]
(modified after Ebigbo et al., WRR 2012)
Clogging: Reduction of porosity \[ \phi = \phi_0 - \phi_\text{biofilm} - \phi_\text{calcite} \]
and reduction in permeability: Kozeny-Carman relation \[ K = K_0 \left( \frac{1-\phi_0}{1-\phi} \right)^2 \left( \frac{\phi}{\phi_0} \right)^3 \] or the Power Law
Mass balance equation of components \[ \Sigma_\alpha \frac{\partial}{\partial t}(\phi \rho_\alpha x^\kappa_\alpha S_\alpha)+ \nabla \cdot ( \rho_\alpha x^\kappa_\alpha \mathbf{v}_\alpha )- \nabla \cdot ( \rho_\alpha \mathbf{D}^\kappa_{\alpha;\text{pm}} \nabla x^\kappa_\alpha )= q^\kappa \]
Mass balance for the immobile components / solid phases: \[ \frac{\partial}{\partial t}(\rho_\varphi \phi_\varphi) = q^\varphi \]
For this exercise:
\[ \begin{aligned} &\text{Urea:} & q^{\text{urea}} &= -r_\text{urea} \\ &\text{Calcium:} & q^{\mathrm{Ca}^2+} &= -r_\text{precip} \\ &\text{Total carbon:}& q^{\mathrm{C}_\text{tot}^+} &= r_\text{urea} - r_\text{precip} \\ &\text{Calcite:} & q^{\mathrm{C}} &= r_\text{precip} \end{aligned} \]
\[ \begin{aligned} \qquad\qquad & \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \text{Precipitation rate:} \\ r_\text{precip} &= f\; \left( A_\text{interface}, \Omega = \frac{\left[\mathrm{Ca}^{2+}\right]\left[\mathrm{CO_3}^{2-}\right]}{K_\text{sp}}, T \right) \\ \qquad\qquad & \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \text{For this exercise:} \\ r_\text{precip} &= r_\text{urea} \\ \qquad\qquad & \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \!\!\!\!\!\! \text{Ureolysis rate:} \\ r_\text{urea} &= k_\mathrm{urease}^\mathrm{m} k_{\mathrm{urease}, \text{biofilm}} \left(\rho_\text{biofilm} \phi_\text{biofilm}\right) \frac{m_\text{urea}}{K_\text{urea} + m_\text{urea}} \end{aligned} \]
\[ \begin{aligned} \phi &= \phi_0 - \Sigma_\varphi \phi_\varphi \\ K &= K_0 \left(\frac{1-\phi_0}{1-\phi}\right)^2 \left(\frac{\phi}{\phi_0}\right)^3 \\ \text{or}& \\ K &= K_0 \left( \frac{\phi}{\phi_0} \right)^\eta \end{aligned} \]
…
auto priVars = evalSolution(element, element.geometry(),
elemSol, scv.center());
Scalar sumPrecipitates = 0.0;
for (int solidPhaseIdx = 0; solidPhaseIdx < numSolidPhases; ++solidPhaseIdx)
sumPrecipitates += priVars[numComp + solidPhaseIdx];
using std::max;
return max(minPoro, refPoro - sumPrecipitates);
…
1. Get familiar with the code 2. Implement the simplified chemical reactions 3. Use source()-function to link chemistry-file to problem 4. Vary parameters, so that leakage pathway is “sealed” (porosity \(<0.07\)) 5. Implement new boundary condition for \(\mathrm{CO_2}\)-injection in lower aquifer 6. Exchange the permeability law from Kozeny-Carman to a Power Law 7. Use tabulated values for \(\mathrm{CO_2}\)
First step: Go to the Biomineralization Exercise and check out the README