pcsorption.ppi
|
|
|
# %sorption vs pH for Zn on Hfo
# Modelled after 'Example 8' from the PHREEQC example set
SPECIATION
calculationType custom
calculationMethod 1
xmin 5.0 # x-axis (pH) range
xmax 8.0
loopMin -6.0 # z-loop (log ZnT), one curve for each ZnT
loopMax -2.0 # from -6 to -2 in steps of +1
loopInt 1.0
loopLogVar 1 # 1 = value of loop variable is exponentiated (=10^<loop>) before use
resolution 100 # number of calculations (PHREEQC simulations) for each curve
PLOT
plotTitle "%sorbed vs pH curves<br>(split into two PHREEQC simulations)"
xtitle pH
ytitle "%sorbed"
lines %sorbed # this variable in the 'out' file is plotted as a line (%sorbed is a valid column header)
lineWidth 0.4
changeColor T
labels 1 2 3 4 5 # used in order for label names on the plots
labelSize 2.0
legendTextSize 0.0
customXcolumn pH
extraText "extratextpcsorption.dat" # adds customised legend text
CHEMISTRY
# simulation 1 - initial surface calculation is run but no selected output is produced or read
TITLE Example 8.--Sorption of zinc on hydrous iron oxides.
SURFACE_SPECIES
Hfo_sOH + H+ = Hfo_sOH2+
log_k 7.18
Hfo_sOH = Hfo_sO- + H+
log_k -8.82
Hfo_sOH + Zn+2 = Hfo_sOZn+ + H+
log_k 0.66
Hfo_wOH + H+ = Hfo_wOH2+
log_k 7.18
Hfo_wOH = Hfo_wO- + H+
log_k -8.82
Hfo_wOH + Zn+2 = Hfo_wOZn+ + H+
log_k -2.32
SURFACE 1
Hfo_sOH 5e-6 600. 0.09
Hfo_wOH 2e-4
PHASES
Fix_H+
H+ = H+
log_k 0.0
# first simulation
USE solution none
SELECTED_OUTPUT
-reset false
USER_PUNCH
-heading pH %sorbed sorbed # determines column headers in the 'out' file
10 sorbed = SURF("Zn","Hfo")
20 totZn = SYS("Zn")
30 pcsorbed = 100*sorbed/totZn
40 punch -la("H+"), pcsorbed, sorbed
END
# simulation 2 - loops on this simulation to produce the output required for graphing
USE surface 1
SOLUTION 1
-units mol/kgw
pH 8.0
Zn <loop> # ZnT
Na 0.1
N(5) 0.1 charge
EQUILIBRIUM_PHASES 1
Fix_H+ -<x_axis> NaOH 10.0 # fixes the pH
-force_equality true
END
|
|