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