PhreeqcUsers Discussion Forum

Registrations currently disabled due to excessive spam. Please email phreeqcusers at gmail.com to request an account.
Welcome Guest
 

  • Forum Home
  • Login
  • Register

  • PhreeqcUsers Discussion Forum »
  • Processes »
  • Dissolution and precipitation »
  • Dolomite and calcite precipitation in geothermal system
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Dolomite and calcite precipitation in geothermal system  (Read 1672 times)

AntonioG

  • Frequent Contributor
  • Posts: 10
Dolomite and calcite precipitation in geothermal system
« on: 20/10/23 06:08 »
Hello,

I have been trying to estimate the amount/volume of mineral phases which can potentially dissolve and precipitate when a geothermal water from a closed system is re-injected in the same a calcareous aquifer (deep Dogger Limestone) at lower temperatures. I have the following data:
- groundwater composition measured in the lab at ~25C and Eh measured at the bore head.
- xrd data of the aquifer mineral composition (calcite 71%, dolomite 11%, Albite 6%, Qz 6%, K-Feld 6%)
- gas phase pressure (175 bar) composition (Ar 0.45%, CH4 15%, CO2 16.9%, H2S 1.14%) and gas liquid ratio measured (0.0495) measured at the bore head at 57.5C.

First I equilibrate the groundwater composition with measured Eh (pe), mineral phases, pressure and partial pressures of the gas at the initial reservoir temperature (57.5C). Next I incrementally decrease the temperature to 20C.

As expected silicates precipitate at lower temperatures, but some carbonate minerals like calcite tend to also precipitate with the decreasing temperature, while dolomite dissolves. ?????? I have tried phreeqc, minteqv4, thermoden and llnl database but I still get the same results. I can't identify what I have done wrong, any ideas? Thanks.


# DATABASE database\minteq.v4.dat
# DATABASE database\phreeqc.dat
DATABASE database\LLNL.dat
# DATABASE database\PHREEQC_ThermoddemV1.10_15Dec2020.dat

PHASES
pe_fix
    e- = e-
    log_k     0
ph_fix
    H+ = H+
    log_k     0

SOLUTION 1 #INITIAL Reservoir Composition !!!!!!! No iron !!!!!!
units mg/L
density 1 calculate
temp 57.5
pe -3.81
redox pe
Alkalinity 415 as HCO3
pH   6.0
Al   0.01
B   12.6
Ba   0.4
Ca   907
Cl   14117 #charge
F   3.6
# C(4)   415
Li   2.5
Mg   343
Mn   0.03
Na   8126
Si   26.8
S(6)   686
Sr   80
water 1


EQUILIBRIUM_PHASES 1
pe_fix    3.81  O2    1000 #Eh = -250 mV
Calcite 0 117
Dolomite 0 9.8
Magnesite 0 0
Quartz 0 16.5
Albite_low 0 3.8
# Illite 0.0 2.5
K-Feldspar 0 3.6


GAS_PHASE 1 #Fixed volume gas phase
   -fixed_volume
   -pressure 298 #INITIAL PRESSURE ADJUSTED TO REACH EQUILIBRIUM PRESSURE of 172.71 atm
   #########-pressure 172.71 #PRESSURE AT EQUILIBRIUM (measured)
   -temperature 57.5
        -volume   0.0498 #equal to GLR for a solution of 1L at 60C
   ########## measured Equilibrium pressures
   ########## Ar(g)   1.28
        ########## CH4(g)   14.28
   ########## CO2(g)   16.37
        ########## H2S(g)   1.04
   ########## He(g)      1.08
        ########## N2(g)      143.16
   ########## Initial partial pressures to reach measured Equilibrium pressures
   Ar(g)   2.180
   CH4(g)   24.282
   CO2(g)   27.824
   H2S(g)   1.767
   He(g)   1.833
   N2(g)   243.380
   #Ntg(g)   243.380
   
SAVE SOLUTION 1   
END

USER_GRAPH 4
-headings Dolomite Calcite Strontianite Magnesite Huntite
-axis_scale y_axis auto #-40000 40000
-axis_scale x_axis auto #22 52

10 plot_xy tc, EQUI_DELTA("Dolomite")*184.4*1000,  line_width = 2,symbol_size = 4, color = Red
15 plot_xy tc, (EQUI_DELTA("Calcite")*100*1000),  line_width = 2,symbol_size = 4, color = magenta
25 plot_xy tc, (EQUI_DELTA("Strontianite")*147.73*1000),  line_width = 2,symbol_size = 4, color = green
35 plot_xy tc, (EQUI_DELTA("Magnesite")*84.1*1000),  line_width = 2,symbol_size = 4, color = blue
45 plot_xy tc, (EQUI_DELTA("Huntite")*353*1000),  line_width = 2,symbol_size = 4, color = orange

USER_GRAPH 5
-headings Anhydrite Barite Celestite
-axis_scale y_axis auto #-4 4
-axis_scale x_axis auto #22 52

10 plot_xy tc, EQUI_DELTA("Anhydrite")*102*1000,  line_width = 2,symbol_size = 4, color = green
15 plot_xy tc, (EQUI_DELTA("Barite")*233.4*1000),  line_width = 2,symbol_size = 4, color = blue
25 plot_xy tc, (EQUI_DELTA("Celestite")*183.8*1000),  line_width = 2,symbol_size = 4, color = red

USER_GRAPH 6
-headings Chalcedony Illite KFeldspar Albite Muscovite Kaolinite Quartz
-axis_scale y_axis auto #-150000 150000
-axis_scale x_axis auto #22 52

10 plot_xy tc, EQUI_DELTA("Chalcedony")*60*1000,  line_width = 2,symbol_size = 4, color = black
15 plot_xy tc, (EQUI_DELTA("Illite")*389.3*1000),  line_width = 2,symbol_size = 4, color = red
35 plot_xy tc, (EQUI_DELTA("K-Feldspar")*278*1000),  line_width = 2,symbol_size = 4, color = blue
45 plot_xy tc, (EQUI_DELTA("Albite_low")*263*1000),  line_width = 2,symbol_size = 4, color = green
55 plot_xy tc, (EQUI_DELTA("Muscovite")*398.7*1000),  line_width = 2,symbol_size = 4, color = orange
65 plot_xy tc, (EQUI_DELTA("Kaolinite")*258.1*1000),  line_width = 2,symbol_size = 4, color = magenta
75 plot_xy tc, (EQUI_DELTA("Quartz")*60*1000),  line_width = 2,symbol_size = 4, color = yellow
85 plot_xy tc, (EQUI_DELTA("Montmor-Na")*549*1000),  line_width = 2,symbol_size = 4, color = red


SELECTED_OUTPUT 1
    -file                 selected_output_mass_and_volumes_v2.xls
    # -file                 selected_output_SI_v2.xls
    -reset                true
    -simulation           false
    -state                false
    -solution             false
    -reaction             false
    -equilibrium_phases   Dolomite Calcite Strontianite Magnesite Witherite Barite Celestite Illite Chalcedony Quartz K-Feldspar Albite_low Muscovite Kaolinite Montmor-Na Gibbsite Siderite Anhydrite Gypsum
    -saturation_indices   Dolomite Calcite Strontianite Magnesite Witherite Barite Celestite Illite Chalcedony Quartz K-Feldspar Albite_low Muscovite Kaolinite Montmor-Na Gibbsite Siderite Anhydrite Gypsum

USER_PUNCH 1
   -headings    pH _Temperature Alkalinity(mg/L_CaCO3) Dolomite Calcite Witherite Strontianite Magnesite Barite Celestite Illite Chalcedony Quartz K-Feldspar Albite Kaolinite Montmorillonite-Na Gibbsite Siderite Dolomite Calcite Witherite Strontianite Magnesite Barite Celestite Illite Chalcedony Quartz K-Feldspar Albite Kaolinite Montmorillonite-Na Gibbsite Siderite Ba Ca Cl Fe K Mg Mn Na O SO4 Si_ Sr_  CO2
   -start
           1 PUNCH -LA("H+")
      2 PUNCH tc
      3 PUNCH alk*100*1000
      ## masses in mg/kgw
      10 PUNCH EQUI_DELTA("Dolomite")*184.4*1000
      15 PUNCH EQUI_DELTA("Calcite")*100*1000
      17 PUNCH EQUI_DELTA("Witherite")*197.37*1000   
      20 PUNCH EQUI_DELTA("Strontianite")*147.74*1000
      24 PUNCH EQUI_DELTA("Magnesite")*84.1*1000
      35 PUNCH EQUI_DELTA("Barite")*233.4*1000
      40 PUNCH EQUI_DELTA("Celestite")*183.8*1000
      45 PUNCH EQUI_DELTA("Illite")*389.3*1000
      50 PUNCH EQUI_DELTA("Chalcedony")*60*1000
      52 PUNCH EQUI_DELTA("Quartz")*60*1000
      55 PUNCH EQUI_DELTA("K-Feldspar")*278*1000
      57 PUNCH EQUI_DELTA("Albite_low")*263*1000
      60 PUNCH EQUI_DELTA("Kaolinite")*258.1*1000
      61 PUNCH EQUI_DELTA("Montmor-Na")*549*1000
      62 PUNCH EQUI_DELTA("Gibbsite")*78*1000
      63 PUNCH EQUI_DELTA("Siderite")*115.8*100
      ## volumes in mL/kgw
      65 PUNCH EQUI_DELTA("Dolomite")*184.4*1000/2.86
      70 PUNCH EQUI_DELTA("Calcite")*100*1000/2.71
      72 PUNCH EQUI_DELTA("Witherite")*197.37*1000/3.75
      75 PUNCH EQUI_DELTA("Strontianite")*147.74*1000/3.78
      76 PUNCH EQUI_DELTA("Magnesite")*84.1*1000/3.05
      85 PUNCH EQUI_DELTA("Barite")*233.4*1000/4.48
      90 PUNCH EQUI_DELTA("Celestite")*183.8*1000/3.95
      95 PUNCH EQUI_DELTA("Illite")*389.3*1000/2.75
      100 PUNCH EQUI_DELTA("Chalcedony")*60*1000/2.61
      101 PUNCH EQUI_DELTA("Quartz")*60*1000/2.65
      105 PUNCH EQUI_DELTA("K-Feldspar")*278*1000/2.60
      110 PUNCH EQUI_DELTA("Albite_low")*263*1000/2.62
      120 PUNCH EQUI_DELTA("Kaolinite")*258.1*1000/2.65
      122 PUNCH EQUI_DELTA("Montmor-Na")*549*1000/2.5
      125 PUNCH EQUI_DELTA("Gibbsite")*78*1000/2.41
      127 PUNCH EQUI_DELTA("Siderite")*115.8*1000/3.96
      150 PUNCH TOT("Ba")*137.2*1000
      210 PUNCH TOT("Ca")*40*1000
      215 PUNCH TOT("Cl")*35.5*1000
      220 PUNCH TOT("Fe")*56*1000
      240 PUNCH TOT("K")*39*1000
      255 PUNCH TOT("Mg")*24*1000
      260 PUNCH TOT("Mn")*55*1000    
      265 PUNCH TOT("Na")*23*1000   
      270 PUNCH TOT("O(0)")*16*1000
      275 PUNCH TOT("S(6)")*96*1000
      277 PUNCH TOT("Si")*28*1000
      280 PUNCH TOT("Sr")*87.62*1000   
      300 PUNCH MOL("CO2")*44*1000   

USE SOLUTION 1
EQUILIBRIUM_PHASES 2
Calcite 0 117
Dolomite 0 9.8
Strontianite 0 0.0
Magnesite 0 0
######### Quartz 0 16.5
#######  Huntite 0.0 0.0
Witherite 0 0
#######  Anhydrite 0 0.0
Barite 0 0
Celestite 0.0 0.0
Albite_low 0.0 3.8
Gibbsite 0 0
Diaspore 0 0
Chalcedony 0 0.0
Illite 0  0 #2.5
K-Feldspar 0 3.6

Kaolinite 0.0 0.0
Montmor-Na 0 0
Siderite 0 0
pe_fix    3.81  O2     1000
REACTION_TEMPERATURE 1
57.5 20 in 20 steps
END

 
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4037
Re: Dolomite and calcite precipitation in geothermal system
« Reply #1 on: 20/10/23 16:10 »
I would try, as you have, to recreate the formation water. The analysis you have is nearly in equilibrium with several of the minerals--calcite, dolomite, others, which seems reasonable. However, if you add the gas back into that solution, you will be undersaturated with the carbonates. I don't know for sure how degassing and precipitation has affected your analyses. You will have to consider how to best recreate the formation water.

As for the gas phase, I think you should define a fixed-pressure gas phase with the percentages at the temperature, pressure, and volume of measurement. PHREEQC will calculate a number of moles of each component under those conditions. Then you can react at the temperature and pressure of the formation. The GAS_PHASE will then adjust in volume to equilibrate at the formation temperature and pressure.

Once you have the formation water, my first approach would be to look at precipitation of carbonates, sulfates, chalcedony, and kaolinite as you lower the temperature. Define these minerals in EQUILIBRIUM_PHASES with zero moles. That would give you an idea of which scales might form during the re-injection process. Longer term, you can consider interaction of the water with the formation minerals.
Logged

AntonioG

  • Frequent Contributor
  • Posts: 10
Re: Dolomite and calcite precipitation in geothermal system
« Reply #2 on: 25/10/23 04:16 »
Hi dlparkhurst
Thanks for your help, the main issue was that I got confused between fixed volume and fixed pressure in the definition of the gas phase.
I might be wrong but I realised that a kinetic approach should be more appropriate because PP/diss kinetics of the silicates is actually slower than the carbonates and the flow velocity in the pore space around the injection bore is high. Do you think it would be relevant to include the following rates with the llnl database? Thanks,

RATES
    Calcite
-start
 10 si_ = SI("Calcite")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 200
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 23.5
 70 k2 = 10^-5.81* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
 90 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
100 n3 = 1
110 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
120 rate = area * ( k2  )
130 rate = rate * (1 - SR("Calcite"))
140 moles = rate * 0.001 * TIME
200 SAVE moles
-end
    Dolomite-dis
-start
 10 si_ = SI("Dolomite-dis")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 200
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 36.1
 70 k2 = 10^-3.19* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
 90 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
100 n3 = 1
110 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
120 rate = area * ( k2  )
130 rate = rate * (1 - SR("Dolomite-dis"))
140 moles = rate * 0.001 * TIME
200 SAVE moles
-end
    Albite_low
-start
 20 si_ = SI("Albite_low")
 30 IF (M <= 0  and si_ < 0) THEN GOTO 200
 40 e1 = 14.4
 50 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 60 n1 = 1
 70 e2 = 14.4
 80 k2 = 10^-10.56* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 90 e3 = 69.8
100 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
110 n3 = 1
120 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
130 rate = area * ( k2  )
140 rate = rate * (1 - SR("Albite_low"))
200 moles = rate * 0.001 * TIME
210 SAVE moles
-end
    Illite
-start
 10 si_ = SI("Illite")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 200
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 62.76
 70 k2 = 1e-13* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
 90 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
100 n3 = 1
110 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
120 rate = area * ( k2  )
130 rate = rate * (1 - SR("Illite"))
140 moles = rate * 0.001 * TIME
200 SAVE moles
-end
    Anhydrite
-start
 10 si_ = SI("Anhydrite")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 200
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 14.3
 70 k2 = 10^-3.79* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
200 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
210 n3 = 1
220 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
230 rate = area * ( k2  )
240 rate = rate * (1 - SR("Anhydrite"))
250 moles = rate * 0.001 * TIME
260 SAVE moles
-end
    Chalcedony
-start
 10 si_ = SI("Chalcedony")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 150
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 87.6
 70 k2 = 10^-13.99* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
 90 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
100 n3 = 1
110 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
120 rate = area * ( k2  )
130 rate = rate * (1 - SR("Chalcedony"))
140 moles = rate * 0.001 * TIME
150 SAVE moles
-end
    K-Feldspar
-start
 10 si_ = SI("K-Feldspar")
 20 IF (M <= 0  and si_ < 0) THEN GOTO 150
 30 e1 = 14.4
 40 k1 = 10^-0.3 * EXP(-e1*1000/8.314*(1/(TC+273.15)-1/298.15))
 50 n1 = 1
 60 e2 = 38
 70 k2 = 10^-12.41* EXP(-e2*1000/8.314*(1/(TC+273.15)-1/298.15))
 80 e3 = 35.4
 90 k3 = 10^-3.48* EXP(-e3*1000/8.314*(1/(TC+273.15)-1/298.15))
100 n3 = 1
110 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M
120 rate = area * ( k2  )
130 rate = rate * (1 - SR("K-Feldspar"))
140 moles = rate * 0.001 * TIME
150 SAVE moles
-end

END
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4037
Re: Dolomite and calcite precipitation in geothermal system
« Reply #3 on: 25/10/23 15:18 »
You haven't said whether you are most concerned with scaling on injection or long-term changes in the aquifer, or both.

You have some rate expressions, so you are in a position to simulate either equilibrium or kinetics and compare results. I don't know whether dolomite will be calculated to precipitate, but you may want to restrict dolomite to dissolution because it does not usually form under low-temperature conditions.
Logged

AntonioG

  • Frequent Contributor
  • Posts: 10
Re: Dolomite and calcite precipitation in geothermal system
« Reply #4 on: 31/10/23 00:26 »
Hi dlparkhurst thanks for your help.
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Processes »
  • Dissolution and precipitation »
  • Dolomite and calcite precipitation in geothermal system
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines | Terms and Policies
  • XHTML
  • RSS
  • WAP2