# Title Pyrite DissolutionSOLUTION 1temp 25redox S(-2)/S(6)units mol/kgwph 3.5-water 1 #kgPHASES 1Fix_H+H+ = H+log_k 0EQUILIBRIUM_PHASES 1Fix_H+ -3.5 NaOH 10KINETICS 1Pyrite #-m 4.16E-3 # moles of solid per kg of water -m0 4.16E-3 -parms 1 1 # total surface area per kg of water (m2/kgw) and the scaling factor -steps 108000 second in 100 steps # define time steps INCREMENTAL_REACTIONS TRUERATES 1pyrite# from Palandri and Kharaka 2004# experimental condition range T=20-40C, pH=1-4-start1 rem unit should be mol,kgw-1 and second-12 rem parm(1) is surface area in the unit of m2/kgw3 rem calculation of surface area can be found in the note4 rem M is current moles of minerals. M0 is the initial moles of minerals5 rem parm(2) is a correction factor10 rem acid solution parameters11 a1=2.82E+0212 E1=5690013 n1=-0.50014 n3=0.50030 rem neutral solution parameters31 a3=2.64E+0532 E3=5690033 n2=0.50036 rem rate=0 if no minerals and undersaturated40 SR_mineral=SR("pyrite")41 if (M<0) then goto 20042 if (M=0 and SR_mineral<1) then goto 20043 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 R=8.3145175 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1*ACT("Fe+3")^n3 #acid rate expression80 Rate2=a3*EXP(-E3/R/TK)*ACT("O2") #neutral rate expression90 Rate=(Rate1+Rate2)*(1-Sr_mineral)*SA*parm(2)100 moles= rate*Time200 save moles-endSELECTED_OUTPUT 1 -file pyrite_dissolution_1.txt -reset falseUSER_PUNCH 1-headings time SI(pyrite) pH Tot_Fe-start 10 punch TOTAL_TIME/3600 SI("Pyrite") LA("H+")*(-1) TOT("Fe")USER_GRAPH 1 -headings time Fe S -axis_scale sy_axis auto auto -initial_solutions false -connect_simulations true -plot_concentration_vs x -start10 GRAPH_X -LA("H+")20 GRAPH_Y TOT("Fe"),TOT("S") -end -active trueEND
# Title Pyrite DissolutionPHASES 1Fix_H+H+ = H+log_k 0RATES 1pyrite# from Palandri and Kharaka 2004# experimental condition range T=20-40C, pH=1-4-start1 rem unit should be mol,kgw-1 and second-12 rem parm(1) is surface area in the unit of m2/kgw3 rem calculation of surface area can be found in the note4 rem M is current moles of minerals. M0 is the initial moles of minerals5 rem parm(2) is a correction factor10 rem acid solution parameters11 a1=2.82E+0212 E1=5690013 n1=-0.50014 n3=0.50030 rem neutral solution parameters31 a3=2.64E+0532 E3=5690033 n2=0.50036 rem rate=0 if no minerals and undersaturated40 SR_mineral=SR("pyrite")41 if (M<0) then goto 20042 if (M=0 and SR_mineral<1) then goto 20043 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 R=8.3145175 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1*ACT("Fe+3")^n3 #acid rate expression80 Rate2=a3*EXP(-E3/R/TK)*ACT("O2") #neutral rate expression90 Rate=(Rate1+Rate2)*(1-Sr_mineral)*SA*parm(2)100 moles= rate*Time200 save moles300 PRINT rate, time, rate1, rate2-endENDSOLUTION 1temp 25units mol/kgwph 3.5O(0) 1 O2(g) -0.7-water 1 #kgENDUSE solution 1EQUILIBRIUM_PHASES 1Fix_H+ -3.5 NaOH 10KINETICS 1Pyrite #-m 4.16E-3 # moles of solid per kg of water -m0 4.16E-3 -parms 1 1 # total surface area per kg of water (m2/kgw) and the scaling factor# -steps 108000 second in 100 steps # define time steps-steps 108000 #in 100 stepsINCREMENTAL_REACTIONS TRUEUSER_GRAPH 1 -headings time Fe S -axis_scale sy_axis auto auto -initial_solutions false -connect_simulations true -plot_concentration_vs x -start10 GRAPH_X TOTAL_TIME20 GRAPH_Y TOT("Fe"),TOT("S") -end -active trueEND