专业资源
首页/HOME - 专业资源MT3DMS软件的发展及其应用
发布时间:2012-06-13 15:28:17,阅读人数:21997
MT3DMS软件的发展及其应用
点此下载MT3DMS
吴剑锋
(南京大学地球科学系)
MT3DMS是目前应用广泛的三维地下水溶质运移模拟软件。本文概略地回顾了MT3DMS软件的开发背景和升级历史。分别介绍了MT3DMS软件的结构组成和特点,以及该软件的应用现状。
污染物可以在含水层介质中以各种形式存在。从水文地质的角度来说,地下水中的污染物运移就是指污染物在各种因素综合影响作用下随着地下水流的运动和迁移归宿,包括对流、弥散和化学反应等过程。20世纪70年代以前,地下水中的溶质运移往往局限于理论或实验方面的研究。而在此之后,尤其是近十几年来,随着人们对地下水水质关注程度的提高以及计算机技术的快速发展,溶质运移的数值模拟迅速在水文地质领域得到广泛的实际应用。数值模拟因其操作上的灵活性、应用上的高效性、和价格上的相对低廉性等优点,已经成为研究地下水系统——尤其是复杂地下水系统——中污染物运移问题的重要方法和手段,相应地,各种数值模拟软件也随之得到发展和完善。目前,常见的用于地下水系统中溶质运移的模拟软件包括MOC3D、MT3DMS、RT3D、FEMWATER、TOUGH、HST3D、FRAC3DVS、FEFLOW等十几种,其中MT3DMS是应用广泛的三维溶质运移数值模拟软件。与其它软件相比,MT3DMS具有一系列优点,本文将就其开发历史、模块组成和实际应用等方面系统地进行评述和介绍。
1 MT3DMS的开发历史
1990年代以前,虽然已经有很多有关地下水中污染物运移的研究,但是,还很少见到一个完全公开的用于地下水中污染物运移的模拟软件。而地下水中污染物的运移过程要比地下水流本身的运动要复杂得多,再加上数值模拟污染物运移过程中存在的数值弥散和人工振荡,因此,开发一套能够有效应用于实际区域地下水中污染物运移的模块化软件成为一种必需。正是为了适应这一要求,C. Zheng(郑春苗)在S. S. Papadopulos & Associates公司工作期间,由美国环境保护署(U.S. Environmental Protection Agency,USEPA)资助开发并于1990年发布了一个用于地下水中污染物运移的一个实际应用模拟软件——MT3D。MT3D软件一经发布,其源代码即由USEPA完全公开。源代码的公开一方面有利于该模拟软件的推广应用,而另一方面也有利于该软件的改进和提高。与此同时,以MT3D为内核的一些商用软件也投入实际应用。
1998年,在美国国防部(U.S. Department of Defense, USDoD)下属陆军工程师兵团研究开发中心(U.S. Army Engineer Research and Development Center)项目的资助下,C. Zheng和P. Wang开发出来了基于MT3D的第二代模拟软件——MT3DMS。MT3DMS增加和丰富了MT3D软件中原有的求解子程序包,能够在保证质量守恒的基础上尽可能减小数值弥散和人工振荡引起的误差。MT3DMS不但可以同时模拟地下水中多种污染物组份的物理迁移过程(包括对流、弥散、吸附等),而且可以(或结合其它软件如RT3D)模拟组份在运移过程中发生的简单(或复杂)生物和化学反应。
MT3DMS本身不包括地下水流模拟程序,需要与中心网格的有限差分水流计算程序联合使用,正式发布的MT3D/MT3DMS源程序考虑的水流模拟软件是MODFLOW,经过一些简单的修改,MT3D/MT3DMS也可以与其它类似的水流模拟软件相结合。1998年发布的基于MT3D升级的第一个MT3DMS软件称为MT3DMS v3.00.A版本;为了适应2000年发布的MODFLOW 2000程序,MT3DMS于2001年升级为MT3DMS v4.00版。2005年刚刚升级到MT3DMS v5.00版。以上各版本之间还有若干过渡版本(如v3.50, v4.50等版本),各个升级版本中分别对软件进行了相应改进和提高。有兴趣的读者可通过Internet网络浏览MT3DMS开发的历史:http://hydro.geo.ua.edu/mt3d.
MT3DMS易于使用、求解精确、快速便捷等诸多优点使得它很快获得了政府有关部门、地下水研究咨询公司以及众多用户的认可,成为目前世界范围内广泛的三维溶质运移模拟通用软件。为此,下面将通过介绍MT3DMS的结构组成来重点评述其特点。
2 MT3DMS的结构组成和特点
2.1 MT3DMS的结构组成
与MODFLOW的结构类似,MT3DMS的程序设计也是采用模块化结构(Modular Structure),即由一个主程序(Main Program)和若干个相对独立的子程序包(Package)组成,各个子程序包又由不同的模块(Module)组成,供主程序随时调用。目前,MT3DMS中有基本运移(Basic transport package, BTN)、对流(Advection package, ADV)、弥散(Dispersion package, DSP)、源汇混合(Sink/source mixing package, SSM)、化学反应(Chemical reaction package, RCT)、广义共轭梯度求解(Generalized conjugate-gradient solver package, GCG)、运移过程观测(Transport observation package, TOB)、水流模型接口(Flow model interface package, FMI)和公共实用(Utility package, UTL)等9个子程序包,其中对于每个运移模型BTN、FTL和UTL等3个子程序包都是必需的,绝大多数情况下ADV子程序包也是必需的。用户可以根据研究区的实际情况选择相应的子程序包来模拟地下水中的溶质运移过程,而TOB是MT3DMS v5.00版中新增加的可选子程序包。
BTN子程序包:从总体上来规范和定义运移模型中的基本信息和数据。包括子程序包的选择与否,水流模型中已经定义的有限差分网格组成,定解条件(初始条件和边界条件)、运移模型的运移步长、输出信息的选择等等。
ADV子程序包:用来处理污染物在地下水中的对流项。如果用户选用显式差分方法(v5.00 以前),ADV子程序包可以求解地下水中因对流引起的污染物浓度变化;相反,如果用户选用隐式差分方法,ADV子程序包不能求解对流作用引起的浓度变化,但可以由此子程序包得到整个求解矩阵中对流项的系数矩阵。虽然ADV是一个可选子程序包,但在实际工作中,地下水中污染物的运移很难忽略对流作用的存在,因此绝大多数情况下都会选择ADV子程序包。
DSP子程序包:用来处理污染物运移模型中的弥散项。与ADV子程序包类似,如果用户选用显式差分方法(v5.00 以前),DSP子程序包可以求解地下水中因弥散作用引起的污染物浓度变化;相反,如果用户选用隐式差分方法,DSP子程序包不能求解弥散作用引起的浓度变化,但可以由此子程序包得到整个求解矩阵中弥散项的系数矩阵。
SSM子程序包:用来处理污染物运移模型中的源汇项,这里源汇项的分类与MODFLOW中的源汇项类型一致。如果用户选用显式差分方法(v5.00 以前),SSM子程序包可以求解地下水中由源汇项加入引起的污染物浓度变化;相反,如果用户选用隐式差分方法,SSM子程序包不能求解源汇项引起的浓度变化,但可以由此子程序包得到整个求解矩阵中源汇项的系数矩阵。
RCT子程序包:用来处理污染物运移模型中的反应项。如果用户选用显式差分方法(v5.00 以前),RCT子程序包可以求解地下水中因化学变化引起的污染物浓度变化;相反,如果用户选用隐式差分方法,RCT子程序包不能求解化学反应引起的浓度变化,但可以由此子程序包得到整个求解矩阵中反应项的系数矩阵。RCT子程序包可以同时模拟地下水中多组份溶质各自不同的吸附和降解反应过程,还可通过双重介质之间的质量转移来模拟高度非均质介质中的溶质运移。目前MT3DMS中的RCT子程序包还不能模拟多组份溶质之间的反应,但可通过扩充的子程序包实现这一功能(如RT3D和PHT3D)。
GCG子程序包:这是一个叠代求解子程序包,用来求解运移模型得到的矩阵方程,也是MT3DMS区别于MT3D的一个显著改进。对于对流项,如果用户选用GCG子程序包,那么隐式差分方法将被用来求解该项,并且无论采用上风因子还是中心因子的隐式差分方法都是无条件收敛的。相反,如果用户不选用GCG子程序包,则说明采用显式差分方法求解对流项,但它是有条件收敛的。而当采用显式差分方法求解时,只能选择上风因子的显式差分方法,因为中心因子的显式差分方法会引起解的无条件不稳定。对于运移模型中的弥散项、源汇项和反应项等,无论选用GCG子程序包与否,这些项都是放在一起求解的,只不过选用GCG子程序包时采用的是隐式差分方法,而不选用GCG时采用的是显式差分方法。正因为MT3DMS采用这样的结构,所以可以通过扩充子程序包(如RT3D)来模拟地下水中多组分之间化学反应过程。
需要说明的是,考虑到显式差分方法收敛的条件性,同时随着个人计算机运算速度的提高,没有必要再采用这种条件收敛的方法来求解模型,因此,在MT3DMS v5.00版本中,GCG已被设定为必选子程序包。
TOB子程序包:这是MT3DMS v5.00版本新增的子程序包。在以前的版本中,用户可以根据需要将任何网格点处的计算浓度保存到观测孔的输出文件(.OBS)中,但如果网格中心点的位置与实际观测孔的位置不一致,则需要利用MT3DMS输出观测孔邻近各网格点的浓度,再通过后处理插值才能得到实际观测点处的计算浓度,显得非常麻烦;而且在以前的MT3DMS版本中还不能保存源/汇单元的溶质通量。利用新增的TOB子程序包,用户可以保存任何观测点(无论观测点与模型的差分格点是否吻合)处的计算浓度,并与实际观测的浓度进行对比,同时还可以保存源/汇单元(体)的溶质通量。
FMI子程序包:运移模型与水流模型耦合的接口子程序包。MT3DMS本身不包括水流模拟程序,它需要与中心网格的有限差分水流计算程序联合使用,一般常采用美国地质调查局(U.S. Geological Survey, USGS)公开发布的三维有限差分水流模拟程序MODFLOW。因此,FMI子程序包将会按照运移模型需要的格式来读取水流模型计算的水头和流量。
UTL子程序包:包括若干个实用的公共模块,供其它各主要的相关模块调用,以控制整个程序的输入和输出。
2.2 MT3DMS的特点
根据MT3DMS的结构组成,可将其主要特点概括如下:
(1)程序结构的模块化
MT3DMS采用了模块化结构,总的计算程序由上面介绍的子程序包组成,而对于每个子程序包中又包含若干个不同的模块以实现不同的功能。
首先,这种模块化结构便于用户准备输入文件。用户可以根据实际概化的模型选择调用不同的子程序包,进而又可依照不同模块的需要来准备相关的输入文件。例如,在SSM子程序包中,含有水井(Well)模块、沟渠(Drain)模块、河流(River)模块、面状补给(Recharge)模块、蒸发蒸腾(Evapotranspiration)模块和通用水头隶属边界(General-head-dependent boundary)模块等多个不同的源汇项模块。在准备有关SSM项的输入文件过程中,用户只要输入所选择模块的参数数据,程序就能得以顺利执行。如果一个模型中的源汇项只选择了水井和河流两个模块,那么在准备输入文件时就不需要考虑SSM子程序包中的其它模块。
其次,程序的模块化设计便于软件的升级,即新增模块的添加和陈旧模块的删减。在MT3DMS的升级过程中,只要对升级模块及其调用程序语句进行相应的增删修改,而对其它源代码都不需要修改。正因为此,MT3DMS能在相应水流模拟软件(MODFLOW)升级之后的较短时间内得到及时升级和更新,很多MODFLOW中附加的子程序包都能与MT3DMS兼容。例如,MT3DMS v5.00以前的版本只能模拟计算单一层位的污染物浓度,为了与MODFLOW中的新增多结点井子程序包(Multi-node well package, MNW)兼容,MT3DMS v5.00版中及时增加了这一功能,能够模拟多结点井孔中的混合浓度,这里的多结点井是指过滤器穿过多个含水层的井孔,也可以是指单一含水层中包含多层结点的立井或包含多个结点的水平井。在MT3DMS v5.00版中新增与MODFLOW兼容的源汇项子程序包中还有沟渠回灌(Drain with return flow package, DRT)和分段蒸发蒸腾(Evapotranspiration with segments package, ETS)等子程序模块。
另外,程序的模块化设计有利于某些用户自己对软件的改进。高级用户可以根据自己的需要,很容易与其它扩充功能模块(如RT3D或PHT3D)结合,从而模拟目前MT3DMS所不能模拟的(多组分之间的复杂化学反应)过程和现象。
(2)程序代码的公开化
与其他多数软件不同,MT3DMS完全公开了程序源代码,而且对软件编制了详细的说明手册。一方面,源代码的公开有利于软件的推广应用。用户不但能够直接编译现成的源代码,而且可以根据实际的需要对软件进行必要的修改。例如,与RT3D结合可以模拟多组分污染物之间的化学反应;与PHT3D结合可以模拟多组分的地球化学反应;而在有关污染物运移的模拟-优化模型中,用户又可以将整个MT3DMS作为模拟-优化程序的一个子程序包。另一方面,源代码的公开和广泛使用又有利于该软件的提高。软件开发者可以根据用户反馈的一些问题和建议,及时对软件进行维护和升级。同时,详细的说明手册也极大地方便了用户:根据软件的模块化结构及其相关说明,用户可以很快熟悉软件的结构和模块代码。对于初级用户,先根据软件手册直接准备有关输入文件,然后就能运行软件;而对于高级用户,则可对源代码进行必要的修改,甚至与其他源代码耦合。
(3)离散方法的简单化
有限单元法和有限差分法是求解数学模型的常用两种数值模拟方法。以前有不少有关这两种数值方法的优劣比较和争论,Gray曾对这两种方法进行过详细的比较。但总的来说,它们没有太大的差别,实际工作中究竟采用哪种方法完全取决于个人的偏好。同MODFLOW一样,MT3DMS也是采用有限差分方法对模拟问题进行数值模拟。但与有限单元法相比较,有限差分法的特点就是采用等距或不等距的正交长方形(体)网格对含水层进行空间上的剖分和离散。尽管这种离散方法可能在加密点周围增加很多不必要的剖分网格,但这种方法便于用户准备数据文件,易于输入文件的规范化。
而在时间上,MT3DMS除了继承MODFLOW中应力期(Stress Period)和时间步长(Time Step)外,还引进了运移步长(Transport Step)的概念。整个模拟时间分为若干个应力期,每个应力期又可再分为若干个时间步长,而每个时间步长可由运移模型根据精度需要自动分为若干个运移步长。在同一应力期,各时间步长既可以是等步长,也可以按一个规定的几何序列逐渐增长。这样做不但简化规范了数据文件的输入,而且使得物理概念更为明确。
(4)求解方法的多样化
MT3DMS区别于许多其他溶质运移软件的一个显著特点就是该软件包含多种求解方法以适应实际运移模型不同部分求解精度的需要。在MT3DMS v5.00版中,GCG子程序包已被设定为运移模型求解总矩阵方程的必选子程序包。在这之前的版本,可以选择采用标准的显式差分方法求解运移模型的各项(对流项,弥散项、源汇项和反应项),此时就无须选择GCG子程序包。
针对运移模型中对流项求解的困难,MT3DMS提供了3类方法供用户选择:标准有限差分方法(standard finite-difference method)、基于粒子追踪的欧拉-拉格朗日方法(particle-tracking-based Eulerian-Lagrangian methods)和三阶总变异消减法(third-order total-variation-diminishing method, TVD)。由于GCG子程序包必选,因此,现在的有限差分方法仅限于隐式差分方法。而欧拉-拉格朗日混合方法包括特征线法(forward-tracking method of characteristics, MOC)、改进的特征线法(backward-tracking modified method of characteristics, MMOC)和混合特征线法(hybrid method of characteristics, HMOC)等3种方法,用户可以针对研究问题的实际和精度需要选择适当的欧拉-拉格朗日混合方法。对于对流占绝对优势的运移问题,用户可以选择求解精度很高的TVD方法来求解对流项。
3MT3DMS软件的应用现状
运用MT3DMS软件不但能模拟地下水中污染物的对流、弥散,而且能够同时模拟多种污染物组分在地下水中的运移过程以及它们各自的变化反应过程(不包括各种组分之间的化学反应),包括平衡控制的等温吸附过程、非平衡吸附过程、放射性衰变或简单生物降解过程。其中平衡控制的等温吸附过程又包括线性吸附和非线性吸附(Freundlich和Langmuir两种等温非线性吸附);非平衡吸附过程是基于一阶可逆变化的运动反应吸附过程。平衡吸附和非平衡吸附这两种过程均是指污染物在液相(溶解于地下水)与固相(被吸附于介质表面)之间的质量转化过程。而放射性衰变或生物降解过程是指污染物在液相和固相中的消减过程,它是不可逆的一阶衰减变化过程。正因为MT3DMS具有以上诸多功能和特点,决定了该软件广泛适用于各种不同条件下地下水中污染物的运移问题,有关污染物的运移研究大都可采用MT3D/MT3DMS进行数值模拟,用户可由该软件说明文档中的大量实例得到证实。自MT3DMS发布以来,在各种与地下水有关的权威学术刊物(如Water Resources Research, Advances in Water Resources, Journal of Hydrology, Journal of Contaminant Hydrology, Ground Water, Environmental Geology和Environmental Science and Technology等)上均常有该软件的应用研究论文刊出,可以说MT3DMS是目前国内外应用广泛的溶质运移数值模拟软件。有关MT3DMS的更多应用可参看http://hydro.geo.ua.edu.
同时,利用双重区域介质理论,MT3DMS还可以用来模拟高度非均质裂隙介质中的污染物运移。
利用MT3DMS的以上几个特点,用户还可以根据自己的需要,与其它扩充功能模块结合,从而应用到很多目前MT3DMS所不能模拟的过程或现象。如Guo等以MT3DMS为核心,开发出来考虑地下水密度变化的SEAWAT软件,可用于海水入侵过程的实际模拟;Labgevin等对SEAWAT进行了升级。Prommer等将MT3DMS与PGREEQC-2结合,开发了PHT3D软件,可以模拟许多地球化学反应对污染物(溶质)运移的影响。Zheng和Wang将MT3DMS与优化方法相结合,用于污染物治理方案的优化设计,并开发了用于地下水污染治理和含水层修复方案设计的模拟优化软件。而Wu等将MT3DMS与优化方法相结合,成功地应用于确定条件下污染物长期监测网的优化设计。
虽然MT3DMS本身并不包含图形用户界面(Graphical User Interface, GUI),但有些很好的GUIs,如Model Viewer,可作为MT3DMS的后处理工具。而利用MT3DMS自身携带的后处理程序PostMT3D|MODFLOW (PM),结合Surfer和Tecplot等功能强大的绘图软件也可作为MT3DMS的图形后处理工具。
另外,很多以MT3DMS源代码为溶质运移模拟内核的商用软件,如Groundwater Modeling System (GMS), Visual MODFLOW和Groundwater Vistas (GV)等,其本身就有很好的图形界面。需要说明的是,近年来Groundwater Modeling System (GMS), Visual MODFLOW和Groundwater Vistas (GV)等商用软件的推广与MT3DMS的广泛应用是一致的。因为这些商用软件集中了MODFLOW、MOC3D、MT3DMS和RT3D等多个水流和溶质运移软件包,在利用这些软件模拟溶质运移问题时常常还是选择其中的MT3DMS菜单选项,只不过是用户利用这些图形界面的直观性和易操作性,作为MT3DMS软件运行的前处理和后处理平台。对于初级用户来说,这些商用图形界面相对应用较广,但就其本质来说,仍然是MT3DMS软件的应用;而对于高级用户来说,MT3DMS软件因其模块化结构的易添加性,其源代码应用更为广泛。