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 »
  • Beginners »
  • PHREEQC basics »
  • Kinetic CO2 degassing
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Kinetic CO2 degassing  (Read 986 times)

MichaelZ20

  • Top Contributor
  • Posts: 162
Kinetic CO2 degassing
« on: 29/10/24 07:51 »
Hi David!
I try to model kinetic CO2 degassing, but something is going wrong: CO2(g) partial pressure decreases.
Could you please help?
Thank you in advance for your reply!

Code: [Select]
SOLUTION 1
-units mmol/kgw
pH  7  charge
Ca   3
C(4) 6 CO2(g) -2   # 1% CO2(g)
-water 1
END

USE SOLUTION 1

GAS_PHASE 1
-fixed_volume
-volume 1e3
-pressure 1
CO2(g) 0.0004      # 0.04% CO2(g)
Ntg(g) 0.7796
Oxg(g) 0.22

RATES
CO2_degas
-start
10 IF TOT("C(4)") <= 0 THEN GOTO 30
20 rate =  parm(1) * (MOL("CO2") - GAS("CO2(g)"))
30 moles = rate * time
40 save moles
-end
Calcite
-start
1 dpmet = ((1 / TK) - (1 / 298.15)) / 8.3144
2 SRmin = SR("Calcite")
10 moles = 0
20 If (m <= 0) and (SRmin < 1) Then GoTo 220
30 S = 0.7 # average BET; suggested value in m2/g
40 Mm = 100.1 # molar mass in g/mol
50 If (SRmin > 1) Then GoTo 173  ## nucleation
########## start precipitation bloc ##########
130 knu = 0.000000148 * exp((-63500) * dpmet)
140 k1 = 0.00658 * exp((-56100) * dpmet) * (ACT("HCO3-") ^ 1.982)
150 kpre = (-1) * (knu + k1)
160 theta = 0.5
170 eta = 2
########## start nucleation       ##########
173 rate = -1E-8                   ##### a small amount as a seed
175 GOTO 210
180 If (m > 0) then GoTo 190
190 rate = S * m * Mm * kpre * (ABS(1 - SRmin ^ theta) ^ eta) # Owing to the sign of kpre, the rate is negative, KIN_DELTA>0
200 GoTo 210
########## end precipitation bloc ##########
210 moles = rate * Time 
220 Save moles
-end

KINETICS
CO2_degas
-formula CO2 1
-parms 1   # 1/sec
-m0 0
-steps 172800 in 240 steps
Calcite
-formula CaCO3 1
-m0     0.1 #1e-9

INCREMENTAL_REACTIONS true

USER_GRAPH 1
-headings time C(4) CO2-degas
-initial_solutions true
-axis_titles "Time, days" "C(4), mol/kgw" "CO2_degas, moles"
-start
10 GRAPH_X TOTAL_TIME/3600/24
20 GRAPH_Y TOT("C(4)")
30 GRAPH_SY KIN("CO2_degas")
-end

USER_GRAPH 2
-initial_solutions true
-axis_titles "Time, days" "p_CO2"
-start
10 GRAPH_X TOTAL_TIME/3600/24
20 GRAPH_Y PR_P("CO2(g)")
-end
END
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4035
Re: Kinetic CO2 degassing
« Reply #1 on: 29/10/24 14:21 »
Yes, the kinetic reaction is removing CO2 from the system, so there is less and less CO2 in both the liquid phase and the gas phase.

Here is a thread that kinetically dissolves Carbon_dioxide by kinetically transforming it to CO2.  https://phreeqcusers.org/index.php/topic,2584.msg9711.html#msg9711

Your problem is more difficult because the C (carbon) is in the water and you want to kinetically move it to the gas phase. One way would  be to take the approach in the post, but define dissolved species of carbon as, say, [C] for    H[C]O3-,   [C]O2, CaH[C]O3+,   Ca[C]CO3, [C]O3-2  ([C]O2)2. The definitions in SOLUTION_MASTER_SPECIES and SOLUTION_SPECIES would be the same as for the equivalent C definitions. You would not define [C]O2(g) in phases, so [C] would not partition to the gas phase. The kinetic reaction would transfer [C] to C, but C would partition into the gas phase.

I'm not sure I like this approach; it is awkward to implement. Perhaps another way is simply to vary the gas volume. As you increase the gas volume, you will partition more CO2 into the gas phase. You might also be able to use a fixed_pressure gas phase and start with a high pressure and incrementally decrease the pressure to desired conditions. Gas would partition more and more into the gas phase.
Logged

MichaelZ20

  • Top Contributor
  • Posts: 162
Re: Kinetic CO2 degassing
« Reply #2 on: 30/10/24 06:47 »
Thank you, David!
However, is it possible to consider the degassing kinetics when i merely change the GAS_PHASE volume or pressure?
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4035
Re: Kinetic CO2 degassing
« Reply #3 on: 30/10/24 21:12 »
OK, I have given your problem a bit more thought and have come up with this solution. Carbon_dioxide(g) is defined to be insoluble. The rate continues until the fugacity of CO2(g) calculated from the solution is equal to the fugacity of Carbon_dioxide(g). KINETICS removes CO2 from solution and adds Carbon_dioxide, which must appear in the gas phase.

The script shows the basic idea. You will have to adjust the rate constant (PARM(1)), gas volume, and calcite reactions to suit your purposes.

Code: [Select]
SOLUTION_MASTER_SPECIES
    Carbon_dioxide Carbon_dioxide    0     CO2             28
SOLUTION_SPECIES
Carbon_dioxide = Carbon_dioxide
PHASES
Carbon_dioxide(g)
Carbon_dioxide = Carbon_dioxide
      -log_k -100
#-log_k -1.468
#-delta_h -4.776 kcal
#-analytic 10.5624 -2.3547e-2 -3972.8 0 5.8746e5 1.9194e-5
-T_c 304.2 # critical T, K
-P_c 72.86 # critical P, atm
-Omega 0.225 # acentric factor
RATES
CO2_degas
-start
10 fco2 = PR_P("Carbon_dioxide(g)")*PR_PHI("Carbon_dioxide(g)")
20 k1 = PARM(1)
30 rate = k1 * (10^SI("CO2(g)") - fco2)
40 moles = rate*TIME
50 SAVE moles
-end
END

SOLUTION 1
-units mmol/kgw
pH  7  charge
Ca   3
C(4) 6 CO2(g) -2   # 1% CO2(g)
Ntg 1 Ntg(g) -0.1
Oxg 1 Oxg(g) -0.7
-water 1
END

GAS_PHASE 1
-fixed_volume
-volume 1 #1e3
-pressure 1
#CO2(g) 0.0004      # 0.04% CO2(g)
Carbon_dioxide(g) 0.0004
Ntg(g) 0.7796
Oxg(g) 0.22
END

KINETICS
CO2_degas
-formula CO2 -1 Carbon_dioxide 1
-parms 0.01   # 1/sec
-m0 1
-steps 20 in 10
-cvode
END

USE solution 1
USE kinetics 1
USE gas_phase 1
INCREMENTAL_REACTIONS true

USER_GRAPH 1
-headings time f(CO2)_aq f(CO2)_g
-initial_solutions true
-axis_titles "Time, seconds" "Calculated fugacity of CO2" ""
-start
10 GRAPH_X TOTAL_TIME
20 GRAPH_Y 10^SI("CO2(g)")
30 GRAPH_Y PR_P("Carbon_dioxide(g)")*PR_PHI("Carbon_dioxide(g)")
-end

END
Logged

MichaelZ20

  • Top Contributor
  • Posts: 162
Re: Kinetic CO2 degassing
« Reply #4 on: 31/10/24 13:07 »
Thank you, David!
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Beginners »
  • PHREEQC basics »
  • Kinetic CO2 degassing
 

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