Monday, March 31, 2008

常用软件介绍之一:PHREEQC

先从我最熟悉也最喜欢的PHREEQC(http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/)说起吧。

PHREEQC是美国地质调查局(US Geological Survey)开发的用于地球化学反应模拟的软件。PHREEQC好像一般念作[fr i:k](freak),其名字来源于pH、REdox和EQuilibrium的组合,最早是用Fortran写的,叫PHREEQE,只能做一些简单的化学平衡计算,后来 USGS重新用C语言改写了这个软件,并不断加入新的功能,逐渐演变为现在的PHREEQC,最新的版本号已经是Version 2.14.3了。

International Ground Water Modeling Center的网站上对其的评价(http://typhoon.mines.edu/software/igwmcsoft/phreeqc_review.htm)是Excellent(Overall Rating),认为其最佳的特色是spreadsheet格式的输入输出,最糟糕的地方则在于要看懂其使用手册的前提是必须对geochemistry非常熟悉。

为什么说PHREEQC好呢?首先是因为它是免费的,其次它很好用(一旦熟悉了以后),而且因为源代码是公开的,任何人都可以根据自己的需要进行修改和补充,同时很多人也把PHREEQC和常见的transport modeling的程序结合,演变出诸多功能强大的reactive transport modeling的软件(这部分会在后面细说)。

PHREEQC (Version 2) 的功能包括:
· Mixing of waters,· Addition of net irreversible reactions to solution,
· Dissolving and precipitating phases to achieve equilibrium with the aqueous phase, and
· Effects of changing temperature.
· Ion-exchange equilibria,
· Surface-complexation equilibria,
· Fixed-pressure gas-phase equilibria, and
· Advective transport.
· Kinetically controlled reactions,
· Solid-solution equilibria,
· Fixed-volume gas-phase equilibria,
· Variation of the number of exchange or surface sites in proportion to a mineral or kinetic reactant,
· Diffusion or dispersion in 1D transport,
· 1D transport coupled with diffusion into stagnant zones, and
· Isotope mole balance in inverse modeling.

最近一段时间PHREEQC新增的功能中比较值得一提的是CD-MUSIC吸附模型和colloid transport,虽然后者似乎还不太完善。

很多软件在使用过程中大家会觉得不太喜欢或者不方便的地方都在于其输入大多是文本方式,使得搞明白怎么写一个输入文件跟重新学一门外语或者编程语言一样复杂,因为搞环境模拟的尤其是非商业软件往往没有足够经费和时间去做一个漂亮的图形界面。PHREEQC也是用的文本输入,不过好在USGS做了一个很好用的图形界面软件PHREEQCI(ftp://brrftp.cr.usgs.gov/pub/cha ... qci-2.14.3-2411.exe)专门用于生成和编辑输入文件并直接在该界面下运行程序。荷兰Vrije Universiteit的Assistant Professor Vincent Post也编了一个类似的图形界面软件PHREEQC for Windows(http://www.geo.vu.nl/users/posv/phreeqc/index.html)。我个人更喜欢USGS的PHREEQCI一些,因为该软件界面上有很多按钮代表各种模型所需要的关键词及相应的输入模块,非常方便输入文件的建立和编辑,并不需要特别熟悉输入文件的格式。而PHREEQC for Windows虽然也有一个工具窗口列出了所有的关键词,只要双击就可以加入到输入文件中,但是相应的对于使用者对输入格式的熟悉程度要求更高一些。另外,PHREEQC for Windows自带了一个类似于Excel的制表和绘图功能,只需要在输入文件中加入一些控制语句就能在程序运行后直接生成所需要的图表。不过这在我看来并不是特别实用的功能,因为这些控制语句不太容易掌握,而且对于最后数据的整理和作图往往不断会有新的想法,每次都去改作图的控制语句重新运行一遍似乎太麻烦了,最重要的是,PHREEQC自带的selected output功能可以将指定的数据按表格格式输出到指定的文件,然后用Excel打开想怎么作图都可以了。

虽然PHREEQC主要用于Batch反应的模拟,但也包括了模拟溶质在地下水中流动反应的功能,其中Reaction Path Modeling的功能实际上只能算是一系列串联的Batch反应,并不能考虑流场的影响,而那个1D TRANSPORT模块虽然可以用来模拟Advection、Diffustion/Dispersion以及Diffusion into stagnant zones,但是由于其采用的是mixing cells算法,Numerical Dispersion的问题有时候会比较显著,而且适用的流场、边界条件及对模型的控制都很局限。尽管如此,很多人还是看中了PHREEQC强大的化学反应模拟功能,将其和常见的Transport程序相结合,编写出诸多模拟reactive transport的软件。如USGS自己就用一个3D版本的HST3D和PHREEQC结合做了一个PHAST(http://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phast/index.html),欧洲则有人将MT3D和PHREEQC结合做成PHT3D(http://www.pht3d.org/),PHT3D已经被整合到最新版的商业软件Visual MODFLOW(v4.2)里。欧洲还有人将PHREEQC和Hydrus1D合在一起做了个HP1(http://www.sckcen.be/hp1/index.shtml)。类似的还有一个叫CoTReM,据说还可以考虑sedimentation过程。

PHREEQC似乎在欧洲很流行,建议大家除了要熟读USGS的Manual之外,也一定要把Appelo and Postma写的Geochemistry, Groundwater and Pollution(第二版)(http://www.xs4all.nl/~appt/a&p/index.html)和GroundwaterGeochemistry: A Practical Guide to Modeling of Natural and ContaminatedAquaticSystems(http://www.amazon.com/Groundwate ... nated/dp/3540241957)这两本书找来看看,前者所有的例题和练习都是用PHREEQC来做的,后者则基本全是PHREEQC的应用实例。

Groundwater Geochemistry: A Practical Guide to Modeling of Natural and Contaminated Aquatic Systems这本书在国内居然早就有了中文版《地下水地球化学模拟的原理及应用》,中国地质大学出版社出版的,http://www.bookschina.com/1389544.htm。

No comments: