SURFACE_SPECIES 数据块确定。但是,在 Dzombak and Morel (1990, 第8章) 例中,使用的固有稳定常数与它们的和不同,因此,在输入文件中由SURFACE_SPECIES数据块(表27)专门确定。Dzombak 和 Morel (1990, p. 259)中的质量作用方程在输入数据组中(表27)给出。其中活度系数或不包括在质量作用方程中;程序本身包括电势项在内。
表面层集合的组分和其它他特征由SURFACE数据块确定。具有多个结合位置的多表面层组分可能也在这个数据块内确定。对于每个表面,位置每种类型的摩尔数、表面层的初始成分和表面积必须确定。表面层的组分随着反应程度的变化而变化。结合位置和表面积的数量可能保持不变,如果表面层与一个均衡相或热动力反应有关,则可能变化。在这个例子中,确定了一个表面层(Hfo) 和两个结合位置(Hfo_w and Hfo_s) ,并且结合位置和了表面积的数量是固定不变的。强键Hfo_s 5*10-6 ,弱键Hfo_w的摩尔数是2*10-4。最初,所有的表面位置是不带电的,以质子形式存在。整个表面 Hfo的表面积必须用两个数确定,即表面物质的质量比表面the area per mass (该例中为600 m2/g)和表面物质的总质量 (该例中为0.09 g)。习惯上用这两个数来确定表面积,但是,在这个模型中用这两个数的积来定义表面积;不分别使用单个数。 一个表面的任何键位的表面积可能由这个数来输入;在该例中,表面积用Hfo_s来输入。
Figure 8—总锌浓度为10-7和10-4克分子浓度水合氧化铁的强合弱表面位置作为PH值的函数时,氧化锌在液相中的分布。
为了确定模拟的初始条件,用不同浓度的氧化锌来确定两个硝酸钠溶液(SOLUTION 1 和2 数据块)。用PHASES数据块来确定假相 “Fix_H+”。这个相不是真实的,但在每个批反应计算中都使用,以调整PH值到固定值。最后,“USE surface none” 行在最初的模拟中自行消除了定义的用批反应计算。默认情况下。如果在模拟中定义了一个 SOLUTION 和SURFACE 数据块,那么在模拟中定义的第一个溶液 (在该例中为SOLUTION 1)和在模拟中定义的第一个表面结合起来(可能和其它集合以及一个气相)允许平衡。对于批反应计算,具有“solution none”的USE关建字从系统中排除溶液。而且不执行批反应计算。(无论何时在模拟中定义了一种溶液或混合物,即暗含确定了一个批反应,并且在同一个模拟中确定了任意一个关建字数据块EXCHANGE, QUILIBRIUM_PHASES,GAS_PHASE, KINETICS, REACTION, REACTION_TEMPERATURE, SOLID_SOLUTIONS, 或SURFACE)。
对于PH值为5到8时,输入数据集中与剩余的溶液具有溶液1或2的表面集合平衡。在单一的模拟中,可能用REACTION 数据块增加不同量的NaOH 到一种溶液中,但是反应增量不能产生均匀间隔的PH值,并且增量的大小预先不知。在这个例子中,采取不同的方法产生在要求的NaOH 量时均匀间隔的PH值,但是需要许多模拟来达到预期的PH值。在具有变化饱和指数的EQUILIBRIUM_PHASES数据块中,每额模拟用相“Fix_H+” 调节PH值。在每个模拟中增加或排除反应NaOH 以达到指定的饱和指数,根据反应的定义,“Fix_H+” 数值上等于氢活度的对数或负的PH值。注意,尽管在所有的这些模拟中,可以达到预期的PH值,但太小的PH值将使得程序出错,因为即使除去溶液中所有的钠,也不能达到如此低的PH值。
模拟的结果表示在图8中,并与Dzombak 和 Morel (1990, 图8.9)中结果一致。PH值较高时比较低时对锌的吸附更强烈。另外,锌浓度较低时,在整个PH值范围内,强健对锌的吸附均可大于弱键,且PH值较高时,大部分留在强键处。锌的浓度较大,且仅在PH值较低时,强健站主导地位。因为在PH值较高时,所有的强健都被填充,PH值较高,且锌的浓度较大时,大部分锌被吸更多的弱键位。
例9—— 溶解铁离子与氧的动力学氧化还原反应
动力学速率表达式的定义完全可以以一种一般的方式来定在,在PHREEQC中是在RATES数据块中应用Basic声明。速率表达式可以在KINETICS数据块中应用在多组反应或是运移反应中。对运移反应而言(ADVECTION或TRANSPORT),在关键字
KINETICS(KINETICS m-n)之后,动力学反应能够以数字范围的形式区域来定义。速率表达式是内含第四次序和第五次序的Runge-Kutta-Fehlberg算法的综合。在动力学计算被初始化之前和当动力学反应增量被增加时,平衡才被计算。平衡的计算包括溶液中离子的种类、各种交换物质、平衡相、固体溶液、溶液物质表面的集合,和以及已经定义的气相。应执行检查以确保在第四次序和第五次序经过一段时间间隔的速率评估差异不变化这是为不超过用户所定义的误差。如果这个误差并不满以,那么对时间的积分会自动地以更小的时间间隔来开始。
在固体相和水相之间的动力学反应能够不修改任何的数据库文件进行计算。PHREEQC也能够计算正常情况下认为是在平衡相下的水中离子的动力学反应,但这需要数据库来重新定义。动力学反应的水中的离子用SOLUTION_MASTER_SPECIES来作为独立的元素进行定义是必要的。这个例子证明了一种元素(铁)的两种化合价的状态,以及表明如何在水中用PHREEQC来计算Fe2+到Fe3+的动力学氧化还原反应。
由(Singer and Stumm, 1970)给定的在水中的Fe2+被氧化的氧化还原反应的速率是:
dmFe2?dt??(2.91e?9?1.33e12a2OH?PO2)mFe2?
这里t是时间,以秒表示,aOH-是氢氧离子的活度,是溶液中的mFe2+总摩尔数,是氧气的分压力(atm)。
铁离子完全氧化还原反应时间是当pH值高于7.0时在溶液中通入二氧化碳的时间问题。然而,Fe3+形式溶解OH-的配合物,它同样也作为铁离子的氢氧化合物来沉淀,因此,在氧化还原反应期间,pH会降低。因为氧化还原速率对OH-的活度具有二次独立性,那么,这个速率随着pH的降低而迅速的变小。这个速率等式在非缓冲溶液中是高度非线性的,且一定是需要以数字来综合。这个例子模拟了反应容器中具有10mmolNaCl/kgw和
0.1mmolFeCl2/kgw的溶液,其中pH=7.0,通过其中的空气是缓缓流入的;在溶液组分随时间的变化是计算得来的。
这个计算需要分开Fe(2) 和Fe(3)离子之间平衡。有两种新的“元素”定义在
SOLUTION_MASTER_SPECIES中—“Fe_di”,这与Fe(2)相关;和“Fe_tri”,这与Fe(3)相关。这些元素的主要离子是被定义为Fe_di+2和Fe_tri+3,以及所有溶液中的离子、相、交换的离子和溶液表面的离子一定要使用这些新的元素的主要的离子来重新打印。一些转换是
列在表28中,这给出了这个例子的部分输入文件。
表28—— 例9部分输入数据的设置
TITLE Example 9.--Kinetically controlled oxidation of ferrous iron. Decoupled valence states of iron. SOLUTION_MASTER_SPECIES
Fe_di Fe_di+2 0.0 Fe_di 55.847 Fe_tri Fe_tri+3 0.0 Fe_tri 55.847 SOLUTION_SPECIES Fe_di+2 = Fe_di+2 log_k 0.0 Fe_tri+3 = Fe_tri+3 log_k 0.0 #
# Fe+2 species #
Fe_di+2 + H2O = Fe_diOH+ + H+ log_k -9.5
delta_h 13.20 kcal #
#... and also other Fe+2 species #
Fe_di+2 + Cl- = Fe_diCl+ log_k 0.14
Fe_di+2 + CO3-2 = Fe_diCO3 log_k 4.38
Fe_di+2 + HCO3- = Fe_diHCO3+ log_k 2.0
Fe_di+2 + SO4-2 = Fe_diSO4 log_k 2.25
delta_h 3.230 kcal Fe_di+2 + HSO4- = Fe_diHSO4+ log_k 1.08
Fe_di+2 + 2HS- = Fe_di(HS)2 log_k 8.95
Fe_di+2 + 3HS- = Fe_di(HS)3- log_k 10.987
Fe_di+2 + HPO4-2 = Fe_diHPO4 log_k 3.6
Fe_di+2 + H2PO4- = Fe_diH2PO4+ log_k 2.7 Fe_di+2 + F- = Fe_diF+ log_k 1.0 #
# Fe+3 species #
Fe_tri+3 + H2O = Fe_triOH+2 + H+ log_k -2.19
delta_h 10.4 kcal #
#... and also other Fe+3 species #
Fe_tri+3 + 2 H2O = Fe_tri(OH)2+ + 2 H+ log_k -5.67
delta_h 17.1 kcal
Fe_tri+3 + 3 H2O = Fe_tri(OH)3 + 3 H+ log_k -12.56
delta_h 24.8 kcal
Fe_tri+3 + 4 H2O = Fe_tri(OH)4- + 4 H+ log_k -21.6
delta_h 31.9 kcal
2 Fe_tri+3 + 2 H2O = Fe_tri2(OH)2+4 + 2 H+ log_k -2.95
delta_h 13.5 kcal
3 Fe_tri+3 + 4 H2O = Fe_tri3(OH)4+5 + 4 H+ log_k -6.3
delta_h 14.3 kcal Fe_tri+3 + Cl- = Fe_triCl+2 log_k 1.48
delta_h 5.6 kcal Fe_tri+3 + 2 Cl- = Fe_triCl2+ log_k 2.13 Fe_tri+3 + 3 Cl- = Fe_triCl3 log_k 1.13
Fe_tri+3 + SO4-2 = Fe_triSO4+ log_k 4.04
delta_h 3.91 kcal Fe_tri+3 + HSO4- = Fe_triHSO4+2 log_k 2.48
Fe_tri+3 + 2 SO4-2 = Fe_tri(SO4)2- log_k 5.38
delta_h 4.60 kcal Fe_tri+3 + HPO4-2 = Fe_triHPO4+ log_k 5.43
delta_h 5.76 kcal
Fe_tri+3 + H2PO4- = Fe_triH2PO4+2 log_k 5.43 Fe_tri+3 + F- = Fe_triF+2