SOLUTION 1 Kardemir Process/grid water temp 25 # temperature in degrees Celcius, default = 25 C, Kardemir 25C pH 8.25 # +-0.1,default pH = 7, Kardemir 8.5 pe 4 # pe = -log(electron activity), default = 4. redox pe # reduction-oxidation reactions units ppm # same as mg/l, default units ppm, mmol/kg water density 1 # density, default = 1 kg/L, Kardemir 1 Ca 160 # +-0.1,total dissolved Ca, Kardemir 140-180 #Mg 3.4 # +-0.1,total dissolved Mg # #N(5) 0.84 # 0.84% ppm or mg/l of Nitrogen N(-3) 0.35 # Kardemir NH3 0.2-0.5 #Na 22 # 11-33 mg/l,total dissolved Na #K 0.82 # total dissolved K P 0.22 # 0.3% ppm or mg/l of Phosforous, Kardemir P2O5 0.15-0.30 Fe(2) 0.25 Fe(3) 1e-9 # ferric iron assumed as present in negligible quantities Alkalinity 240 C(4) 4.620e-03 mol/kgs # equivalent of Alkalinity 240 and pH 8.25 Cl 85 charge # total dissolved Cl, Kardemir 50-120. Charged balanced. S(6) 70 # ppm or mg/l of Sulfate, total dissolved Sulfate, Kardemir 60-80 #Li 6.941E-03 # Lithium (1umol/L) is a tracer for Process Water #Si 2.80855 # mg/L = 0.1 mmol/L -water 1 # kg water, default = 1 kgSAVE SOLUTION 1 END SOLUTION 2 Median Black Sea rainfall concentrations from Alagha and Tunkel (2003). CO2(atm), O2(atm) added. Chloride charge balance temp 25 pH 5.15 pe 4 redox pe units ppm density 1 Al 3.37 Ca 1.8 Cl 1.01 charge # adapt Cl to obtain charge balance C(4) 1 CO2(g) -3.373 # equilibrium with atmospheric CO2 Fe 2.82 K 1.72 Mg 0.88 Mn 0.07 N(-3) 0.56 N(5) 1.5 Na 2 S(6) 2.52 O(0) 0.01 O2(g) -0.678 # equilibrium with atmospheric O2 -water 1 # kgENDEQUILIBRIUM_PHASES 1-100 Calcite_ppt 0 0 # Switch on calcite as a phase that can precipitate within daysENDMIX 1 Combine rainwater with (process/grid water + DAC) 1 0.88 # 1-(Rainfall_rate/(Rainfall_rate+Procwtr_rate), use fraction 0.88 of solution 1 2 0.12 # 1-(Procwtr_rate/(Rainfall_rate+Procwtr_rate), use fraction 0.12 of solution 2USE equilibrium_phases 1SAVE SOLUTION 0 ENDSOLUTION 1-101 Simulated mixture of (process water, DAC) and rainwater. temp 25 pH 6.963 pe 13.64 redox pe units mol/kgw density 1 -water 1 # kgC(4) 5.06E-03Ca 3.52E-03Cl 2.12E-03Fe 3.94E-06K 1.07E-06Mg 1.93E-06N 2.79E-05Na 1.07E-05P 6.26E-06S(6) 6.45E-04ENDREACTION 0 H2O -1 11.1012 moles in 4 stepsENDEQUILIBRIUM_PHASES 101 DAC CO2 capture to 3% CO2(g) -1.523 10 # Calculated CO2 SI= -1.523, Amount of 10 mol available O2(g) -0.679 10 # Calculated O2 SI= -0.679, Amount of 10 mol available Calcite_ppt 0 0 ENDUSER_PRINT10 p = SYS("equi", count , name$ , type$ , moles )20 FOR i = 1 to count30 dv = PHASE_VM(name$(i))*EQUI_DELTA(name$(i))40 delta_v = delta_v + dv50 PRINT name$(i), dv, " cm^3"60 NEXT i70 PRINT "Total change in mineral volume: ", delta_v, " cm^3"80 ENDRATES Calcite_diss # calcite dissolving only-start # Identifier marks the beginning of a Basic program by which the moles of reaction for a time subinterval are calculated. 5 REM Formula = CaCO3 10 REM Rate law modified from Zhang et al. 2019 20 REM Rate law from Marty et al 2015 30 REM unit should be J, m2, mol,kgw-1 and second-1 40 REM parm(1) is surface area in the unit of m2/kgw 50 REM calculation of surface area can be found in the note 60 REM M is current moles of minerals. M0 is the initial moles of minerals 70 REM parm(2) is a correction factor 80 REM Affinity ON 90 sr_mineral = SR("Calcite") # Calculate calcite saturation ratio 95 si_mineral = SI("Calcite") # Calculate calcite saturation index100 moles = 0110 REM rate=0 if mineral supersaturated in solution120 IF(M <= 0 OR sr_mineral > 1) THEN GOTO 320130 a0 = PARM(1)132 REM Volume is 1 litre solution135 v = 1 140 temp = 1/TK145 REM acid solution parameters150 k_acid = 0160 eapp_acid = 0170 n_acid = 0175 REM neutral solution parameters180 k_neut = 6.59E+04190 eapp_neut = 66000195 REM base solution parameters200 k_base = 1.04E+09210 eapp_base = 67000220 n_base = 1.6225 REM Rate Law in TST form230 hplus = ACT("H+")240 r = 8.314250 r_acid = k_acid*EXP((-eapp_acid/r)*temp)*(hplus^n_acid)260 r_neut = k_neut*EXP((-eapp_neut/r)*temp)270 REM Base in terms of bicarbonate280 r_base = k_base*EXP((-eapp_base/r)*temp)*(ACT("HCO3-")^n_base)290 r_all = r_acid+r_neut+r_base300 rate = (a0/v)*(M/M0)^0.67*r_all*(1-sr_mineral)*PARM(2) # Calculate overall rate, factor310 moles = rate*TIME # Calculate moles of reaction over time interval given by TIME. Note that the multiplication of the rate by TIME must be present in one of the Basic lines.320 SAVE moles # Return moles of reaction for time subinterval with ?SAVE?. A SAVE statement must always be present in a rate program.-end # Identifier marks the end of a Basic program by which the number of moles of a reaction for a time subinterval is calculated. Brucite-start 5 REM Formula = Mg(OH)2 10 REM Rate parameters from Zhang et al. 2019 database 20 REM Rate law from Palandri and Kharaka (2004) 25 REM experimental condition range T=25-75C, pH=1-5 30 REM unit should be J, m2, mol,kgw-1 and second-1 40 REM parm(1) is surface area in the unit of m2/kgw 50 REM calculation of surface area can be found in the note 60 REM M is current moles of minerals. M0 is the initial moles of minerals 70 REM parm(2) is a correction factor 80 REM Affinity ON 90 sr_mineral = SR("Brucite") 95 si_mineral = SI("Brucite")100 moles = 0110 REM rate=0 if mineral supersaturated in solution120 IF(M <= 0 OR sr_mineral > 1) THEN GOTO 380130 a0 = PARM(1)140 REM Volume is 1 litre solution150 v = 1160 temp = 1/TK170 REM acid solution parameters180 k_acid = 4.00E+05190 eapp_acid = 59000200 n_acid = 0.500210 REM neutral solution parameters220 k_neut = 1.30E-01230 eapp_neut = 42000240 REM base solution parameters 250 k_base = 0260 eapp_base = 0270 n_base = 0280 REM Rate Law in TST form290 hplus = ACT("H+")300 r = 8.314310 r_acid = k_acid*EXP((-eapp_acid/r)*temp)*(hplus^n_acid)320 r_neut = k_neut*EXP((-eapp_neut/r)*temp)340 r_base = k_base*EXP((-eapp_base/r)*temp)*(hplus^n_base)350 r_all = r_acid+r_neut+r_base360 rate = (a0/v)*(M/M0)^0.67*r_all*(1-sr_mineral)*PARM(2)370 moles = rate*TIME380 SAVE moles-end Larnite-start 5 REM Formula = Ca2SiO4 10 REM Rate parameters from Carbfix_2022 database 20 REM Rate law from Palandri and Kharaka (2004) 30 REM unit should be J, m2, mol,kgw-1 and second-1 40 REM parm(1) is surface area in the unit of m2/kgw 50 REM calculation of surface area can be found in the note 60 REM M is current moles of minerals. M0 is the initial moles of minerals 70 REM parm(2) is a correction factor 80 REM Affinity ON 90 sr_mineral = SR("Larnite") 95 si_mineral = SI("Larnite")100 moles = 0110 REM rate=0 if mineral supersaturated in solution120 IF(M <= 0 OR sr_mineral > 1) THEN GOTO 380130 a0 = PARM(1)140 REM Volume is 1 litre solution150 v = 1160 temp = 1/TK170 REM acid solution parameters180 k_acid = 5.25e8190 eapp_acid = 70400200 n_acid = 0.44210 REM neutral solution parameters220 k_neut = 0230 eapp_neut = 0240 REM base solution parameters250 k_base = 8.25e5260 eapp_base = 60900270 n_base = 0.22280 REM Rate Law in TST form290 hplus = ACT("H+")300 r = 8.314310 r_acid = k_acid*EXP((-eapp_acid/r)*temp)*(hplus^n_acid)320 r_neut = k_neut*EXP((-eapp_neut/r)*temp)330 IF(k_base = 0) THEN GOTO 350340 r_base = k_base*EXP((-eapp_base/r)*temp)*(hplus^n_base)350 r_all = r_acid+r_neut+r_base360 rate = (a0/v)*(M/M0)^0.67*r_all*(1-sr_mineral)*PARM(2)370 moles = rate*TIME375 REM PRINT "SI(Larnite) = " si_mineral ", Molar adjustment = " moles380 SAVE moles-end Portlandite-start 5 REM Formula = Ca(OH)2 10 REM Rate law modified from Zhang et al. 2019 20 REM Rate law from marty et al 2015 25 REM experimental condition range T=25-80C, pH=5-7 30 REM units should be J, m2, mol,kgw-1 and second-1 40 REM parm(1) is surface area in the unit of m2/kgw 50 REM calculation of surface area can be found in the note 60 REM M is current moles of minerals. M0 is the initial moles of minerals 70 REM parm(2) is a correction factor 80 REM Affinity ON 90 sr_mineral = SR("Portlandite") 95 si_mineral = SI("Portlandite")100 moles = 0110 REM rate=0 if mineral supersaturated in solution120 IF(M <= 0 OR sr_mineral > 1) THEN GOTO 320130 a0 = PARM(1)132 REM Volume is 1 litre solution135 v = 1 140 temp = 1/TK145 REM acid solution parameters150 k_acid = 1.10E+10160 eapp_acid = 75000170 n_acid = 0.600175 REM neutral solution parameters180 k_neut = 3.04E+05190 eapp_neut = 75000195 REM base solution parameters200 k_base = 0210 eapp_base = 0220 n_base = 0225 REM Rate Law in TST form230 hplus = ACT("H+")240 r = 8.314250 r_acid = k_acid*EXP((-eapp_acid/r)*temp)*(hplus^n_acid)260 r_neut = k_neut*EXP((-eapp_neut/r)*temp)270 REM Base in terms of bicarbonate280 r_base = k_base*EXP((-eapp_base/r)*temp)*(ACT("OH-")^n_base)290 r_all = r_acid+r_neut+r_base300 rate = (a0/v)*(M/M0)^0.67*r_all*(1-sr_mineral)*PARM(2)310 moles = rate*TIME320 SAVE moles-endkin_HCO3-start10 REM20 kin_ca=1*KIN_DELTA("Portlandite")+2*KIN_DELTA("Larnite")+0*KIN_DELTA("Brucite")+(0.5)*KIN_DELTA("Calcite_diss")30 kin_mg=0*KIN_DELTA("Portlandite")+0*KIN_DELTA("Larnite")+1*KIN_DELTA("Brucite")+0*KIN_DELTA("Calcite_diss")60 moles = -2*(kin_ca+kin_mg) 70 print kin_ca, kin_mg, moles320 SAVE moles-endKINETICS 1-100Portlandite -formula Ca(OH)2 1 -m 14.43 -m0 14.43 -parms 2.303 1 -tol 1e-08Larnite -formula Ca2SiO4 1 -m 9.87 -m0 9.87 -parms 2.499 1 -tol 1e-08Calcite_diss -formula CaCO3 1 -m 9.49 -m0 9.49 -parms 1.682 1 -tol 1e-08Brucite -formula Mg(OH)2 1 -m 4.8 -m0 4.8 -parms 0.556 1 -tol 1e-08kin_HCO3 -formula HCO3-1 1 -m 0 -m0 0 -tol 1e-08-steps 1-step_divide 0.1-runge_kutta 6-bad_step_max 500-cvode true -cvode_steps 200-cvode_order 5ENDUSE SOLUTION 0USE REACTION 0USE equilibrium_phases 101USE KINETICS 1SAVE equilibrium_phases 1-10SAVE solution 1-10USER_GRAPH 1 -headings d_Portlandite d_Larnite d_Brucite d_Calcite -axis_titles "Days" "Dissolved mnrl (mol/L)" "" -chart_title "KARDEMIR ANTIMAGNETIC SLAG FLOW THROUGH TESTS - DISSOLVED MINERALS" -axis_scale y_axis auto 0.005 auto auto -initial_solutions true -connect_simulations true -plot_concentration_vs t -start 1 REM do not Save as emf 5 REM IF(TOTAL_TIME = 0) THEN GOTO 100 7 REM (CELL_NO < 11) THEN GOTO 100 10 PLOT_XY TOTAL_TIME/86400, KIN_DELTA("Portlandite"), color = Green, line_width = 2, y-axis = 1 20 PLOT_XY TOTAL_TIME/86400, KIN_DELTA("Larnite"), color = Blue, line_width = 2, y-axis = 1 30 PLOT_XY TOTAL_TIME/86400, KIN_DELTA("Brucite"), color = Orange, line_width = 2, y-axis = 1 40 PLOT_XY TOTAL_TIME/86400, KIN_DELTA("Calcite_diss"), color = Magenta, line_width = 2, y-axis = 1100 REM END -end -active trueUSER_GRAPH 2 -headings SI_Portlandite SI_Larnite SI_Brucite SI_Calcite -axis_titles "Days" "Saturation Index" -chart_title "KARDEMIR ANTIMAGNETIC SLAG FLOW THROUGH TESTS - SATURATION INDICES" -axis_scale y_axis -20 20 auto auto -initial_solutions true -connect_simulations true -plot_concentration_vs t -start 1 REM do not Save as emf 5 REM IF(TOTAL_TIME = 0) THEN GOTO 100 7 REM IF(CELL_NO < 11) THEN GOTO 10010 PLOT_XY TOTAL_TIME/86400, SI("Portlandite"), color = Green, line_width = 2, y-axis = 120 PLOT_XY TOTAL_TIME/86400, SI("Larnite"), color = Blue, line_width = 2, y-axis = 130 PLOT_XY TOTAL_TIME/86400, SI("Brucite"), color = Orange, line_width = 2, y-axis = 1 40 PLOT_XY TOTAL_TIME/86400, SI("Calcite"), color = Magenta, line_width = 2, y-axis = 1100 REM END -end -active trueUSER_GRAPH 3 -headings pH -axis_titles "Days" "pH" -chart_title "KARDEMIR ANTIMAGNETIC SLAG FLOW THROUGH TESTS - pH EVOLUTION" -axis_scale y_axis auto auto auto auto -initial_solutions true -connect_simulations true -plot_concentration_vs t -start 1 REM do not Save as emf 5 REM IF(TOTAL_TIME = 0) THEN GOTO 10090 PLOT_XY TOTAL_TIME/86400, -LA("H+"), color = Red, line_width = 2, y-axis = 1100 REM END -end -active trueUSER_GRAPH 4 -headings time HCO3 -axis_titles "Time, seconds" "Moles CO2 captured" "" -chart_title "KARDEMIR ANTIMAGNETIC SLAG FLOW THROUGH TESTS - MOLES CO2 CAPTURED" -initial_solutions false -connect_simulations true -plot_concentration_vs x -start 1 REM do not Save as emf 7 REM IF(CELL_NO < 11) THEN GOTO 100 10 IF (TOTAL_TIME = 0) THEN PUT(0,1) 20 kin_ca=1*KIN_DELTA("Portlandite")+2*KIN_DELTA("Larnite")+0*KIN_DELTA("Brucite")+(0.5)*KIN_DELTA("Calcite_diss") 30 kin_mg=0*KIN_DELTA("Portlandite")+0*KIN_DELTA("Larnite")+1*KIN_DELTA("Brucite")+0*KIN_DELTA("Calcite_diss") 60 kin_hco3 = 2*(kin_ca+kin_mg)100 GRAPH_X TOTAL_TIME # Time interval for which moles of reaction are calculated in rate programs, automatically set in the time-step algorithm of the numerical integration method, in seconds.110 GRAPH_Y kin_hco3 -end -active trueUSER_GRAPH 5 -headings Depth HCO3 -axis_titles "Distance, in meters" "Moles CO2 captured" "" -chart_title "KARDEMIR ANTIMAGNETIC SLAG FLOW THROUGH TESTS - MOLES CO2 CAPTURED" -initial_solutions false -connect_simulations true -plot_concentration_vs x -start 1 REM do not Save as emf 7 REM IF(CELL_NO < 11) THEN GOTO 100 10 IF (DIST = 0) THEN PUT(0,1) 20 kin_ca=1*KIN_DELTA("Portlandite")+2*KIN_DELTA("Larnite")+0*KIN_DELTA("Brucite")+(0.5)*KIN_DELTA("Calcite_diss") 30 kin_mg=0*KIN_DELTA("Portlandite")+0*KIN_DELTA("Larnite")+1*KIN_DELTA("Brucite")+0*KIN_DELTA("Calcite_diss") 60 kin_hco3 = 2*(kin_ca+kin_mg)100 GRAPH_X DIST110 GRAPH_Y kin_hco3 -end -active trueTRANSPORT -cells 101 # 100 cells slag heap, last cell closed pond (1 litre) -shifts 303 # 3 passes of pore water through the slag heap # -shifts 101 # 1 passes of pore water through the slag heap -lengths 0.01 # 1cm cells -time_step 34722.2 The total time of the simulation (40.5896 days). -print_cells 1, 100-101 # -print_cells 10-11 -print_frequency 303 # Print only at end # -print_frequency 33 # Print only at end
kin_HCO3 -formula HCO3-1 1 -m 0 -m0 0 -tol 1e-08