02 - Fit Langmuir Isotherm¶
Two parameters this time, fitted to a sorption isotherm: zinc on hydrous ferric oxide at fixed pH, over a range of zinc concentrations. The two are the number of sites available and the strength with which zinc binds to them.
It is PhreePlot’s Langmuir isotherm example, and it is the first case here where the parameters are not independent of each other.
A Langmuir model in two lines¶
PHASES
Fix_H+
H+ = H+
log_k 0.0
SURFACE_MASTER_SPECIES
Surf Surf
SURFACE_SPECIES
Surf = Surf
log_k 0.0
Surf + Zn+2 = SurfZn+2 # Langmuir model
log_K @{$log_k$}@ # this is where log_k (updated parameter value) is substituted
PRINT
-reset false
SOLUTION 1
-pH @{$pHobs$}@
-units mmol/L
Na 1000 # 1 M NaNO3 background electrolyte
N(5) 1000
Zn @{$Znconcn$}@ # <Znconcn> from iso.dat
SURFACE
Surf @{$M_param$}@ # this is where the max number of sites (updated parameter) is substituted
-equil 1
-no_edl
EQUILIBRIUM_PHASES
Fix_H+ @{$-pHobs$}@ NaOH # pHobs from the fit data file
-force_equality true
END
The surface is declared from scratch rather than taken from a database:
SURFACE_MASTER_SPECIES
Surf Surf
SURFACE_SPECIES
Surf = Surf
log_k 0.0
Surf + Zn+2 = SurfZn+2
log_K @{$log_k$}@
One site type, one reaction, one constant. That is the Langmuir model – a fixed number of identical, independent sites, each either empty or holding one ion – written as chemistry rather than as the usual algebraic isotherm. The familiar hyperbola is a consequence of it, not an input to it.
-no_edl turns off the electrical double layer, which keeps it a pure
Langmuir model: with a charged surface the sorption would depend on the
accumulated charge as well as on the binding constant, and the two
parameters would no longer mean what the model says they mean.
The two fitted parameters are:
M_param, the total number of sites on the surface;log_k, the binding constant ofSurf + Zn+2 = SurfZn+2.
Each data row gives a zinc concentration and a pH, the pH being imposed with
the usual Fix_H+ construction. The background is 1 M NaNO3.
Output that GibbsStudio owns¶
The original PhreePlot input carried a USER_PUNCH block to report the
sorbed zinc. That block is not used here. GibbsStudio manages
SELECTED_OUTPUT and USER_PUNCH itself – they are stripped from any
imported input – and the same quantity is requested through a Selected
Output object with a punch expression:
SURF("Zn","Surf")
The reason is that these become named columns the rest of the project can
refer to. sorbed_Zn_computed is then available to the residual, to the
plots and to any view, instead of being a column in a text file that
something has to parse.
The residual is measured minus modelled, as always:
#Znsorbed# - #sorbed_Zn_computed#
Eleven data rows, eleven residuals, two unknowns.
The result¶
Zinc sorbed against zinc remaining in solution: the isotherm. It rises steeply at low concentration, where sites are plentiful and every added zinc finds one, and bends towards a plateau as the sites fill.¶
Both fitted parameters are visible in that shape, and this is the figure to look at when deciding whether a fit like this is trustworthy. The plateau fixes the site density: it is where the surface runs out. The initial slope fixes the binding constant. An isotherm measured only on the steep part determines neither separately – many combinations of a larger capacity and a weaker constant give the same early curve – and the fit will still converge and report numbers.
Check the standard errors in the fit output, and check that the data reaches the bend.
Try it¶
Fit only the first four points and compare the standard errors with the full fit.
Turn the double layer back on by removing
-no_edland see how much the fitted constant moves.Add a second site type and watch the fit improve for reasons that have nothing to do with the chemistry being better described.
Source¶
Kinniburgh, D. G. and Cooper, D. M. (2011). PhreePlot: Creating graphical output with PHREEQC. This is PhreePlot’s Langmuir isotherm fit. See the PhreePlot website.
Langmuir, I. (1918). The adsorption of gases on plane surfaces of glass, mica and platinum. Journal of the American Chemical Society 40, 1361-1403.
The thermodynamic data is
wateq4f.dat, distributed with PHREEQC (Parkhurst and Appelo, 2013).