pyritekinetics.ppi
|
|
|
SPECIATION
jobTitle "Pyrite oxidation kinetics, A&P (2005) p 455-6"
calculationType custom
calculationMethod 1
resolution 1 # only need to do one calculation as KINETICS block has its own looping
selectedOutputLines auto # multiline selected.out so copy all the lines produced into the out file
PLOT
plotTitle "Pyrite oxidation kinetics<br>(Appelo and Postma, 2005)"
xtitle "Time (" " hours)"
ytitle "<i>P</i><sub>O2(g)</sub> or <i>P</i><sub>CO2(g)</sub> (%)"
pymax 9 # fix upper limit of y-axis
legendTextSize 0.0 # omit legend
customXcolumn Time # from out file
lines CO2(g) O2(g) # modelled results - labels from USER_PUNCH block -> out file
extraSymbolsLines "pyritekineticsdata.dat" # plot experimental data points
CHEMISTRY
SELECTED_OUTPUT
-reset false
-high_precision true
USER_PUNCH
-headings Time CO2(g) O2(g) # defines column heading in out file
-start
10 PUNCH total_time/3600
20 PUNCH 100*10^si("CO2(g)"), 100*10^si("O2(g)")
-end
RATES
Pyrite # the kinetic model
-start
1 A=15e3*m0
10 if SI("Pyrite")>0 then goto 100
20 fH=mol("H+")
30 fFe2=(1+tot("Fe(2)")/1e-6)
40 if mol("O2")<1e-6 then goto 80
# rate with oxygen
50 rO2=10^-8.19*mol("O2")*fH^-0.11
60 rO2_Fe3=6.3e-4*tot("Fe(3)")^0.92*fFe2^-0.43
70 goto 90
80 rem
# rate without oxygen
81 rFe3=1.9e-6*tot("Fe(3)")^0.28*fFe2^-0.52*fH^-0.3
90 rate=A*(m/m0)^0.67*(rO2+rO2_Fe3+rFe3)*(1-SR("Pyrite"))
100 save rate*time # must include this
-end
SOLUTION_SPECIES
2NO3- + 12H+ + 10e- = N2 +6H2O; log_k 500 # force one way - dissolved N2(g) does not make nitric acid!
SOLUTION 1
-water 0.0069239 # kg
-temp 20
pH 7 charge; pe 14 O2(g) -1.0878
Ca 1 Calcite; C 1 CO2(g) -2.6021
Fe 1e-3 Goethite 2; N 1.3 N2(g) -0.0382
EQUILIBRIUM_PHASES
Goethite 2; Calcite 0; Gypsum 0 0
GAS_PHASE 1
-fixed_pressure
-volume 0.02127; temp 20
CO2(g) 0.0025; O2(g) 0.0817; N2(g) 0.9157
KINETICS 1
Pyrite; -m0 1.32e-4; -step 0 5e5 5e5 5e5 5e5 5e5 5e5 5e5 5e5 5e5 5e5
INCREMENTAL_REACTIONS true
END
|
|