Skip to main content

工业园区MODFLOW6水流模拟

info

本页面中的短视频为简短操作介绍,获取完整EnviFusion教学课程,请访问 在线课程

算例工程下载地址

1 算例简介 2 操作步骤 2.1 新建项目 2.2 创建MODFLOW模型 2.3 定义网格高程 2.4 定义活动区域 2.5 定义渗透系数 2.6 定义定水头边界 2.7 定义河流边界 2.8 定义补给边界 2.9 设置应力期 2.10 解释运行MODFLOW 3 小结

算例简介

某化工厂储存罐泄露造成地下水污染。根据研究区域的水文地质条件,创建 MODFLOW 水流 模型,模拟区域内水位分布情况,为下一步地下水污染修复模拟提供流场信息。

污染场地位于 NM 河旁的广阔冲积河谷中,NM 河位于研究区域西侧,对当地地下水系统有影 响。NM 河在此地有 1500 英尺宽,由北向南流经河谷。场地附近有一座防洪大坝,在大坝上下 游形成了 10 英尺的河水面高差。大坝下游 400 英尺是 LU 溪,由东向西流经场地。在区内有两 个小水塘(S湖和 B湖)。沿场地的东部边界出露页岩基底,比河谷地面急剧高出 200英尺。经 分析后该区域的补给来源包括:地下水沿边界直接流入模型区、降水补给、山区侧向径流补给、 地表水体的直接补给。排泄途径主要是向地表水体的排泄。

研究区域的地层可分为地表的泥质砂层和下方的砂砾含水层。地表的泥质砂层横跨整个场地, 厚度为 5 到 25 英尺;砂砾含水层是主要的储水单元,厚度为 10 到 60 英尺;两个含水层下方为 页岩基底,可以视为隔水层。

操作步骤

新建项目

  1. 打开Envifusion软件,若软件界面仍有其他项目,点击菜单栏按钮关闭当前项目文件。

创建MODFLOW模型

首先,导入场地地图,并创建用于运行MODFLOW2005模拟的网格。

  1. 点击菜单栏中的导入数据按钮,打开算例文件夹中的chemwest.dxf文件,生成chemwest.dxf图层,在该图层属性面板中点击应用完成设置。导入AutoCAD制作的场地地图,在视图1中显示如下:

  2. 管道面板中,选中chemwest.dxf图层,右击快速操作,输入操作命令:界面,选中界面命令。在属性面板中,勾选下面-MinXY,单击应用,创建界面1图层。

  3. 管道面板中,选中界面1图层,右击快速操作,输入操作命令:平滑,选中曲面->曲面(均一平滑)命令。在属性面板中,目标边长设置为300,迭代次数为1。单击应用,创建曲面->曲面(均一平滑)1图层。

    接下来对对模型进行细化,首先导入需要细化区域的文件。

  4. 点击菜单栏中的导入数据按钮,打开算例文件夹中的LU溪.efd文件,和waterBody.efd文件 (efd文件是从MODFLOW2005算例文件中导出的文件) ,分别生成LU溪.efd图层和waterBody.efd图层,在该图层属性面板中点击应用完成设置。可以在视图1中看到图层显示如下:

  5. 管道面板中,选中LU溪.efd图层,右击快速操作,输入操作命令:飘带,选中折线->飘带命令。在属性面板中,固定宽度设置为80。单击应用,生成折线->飘带1图层。

  6. 在图层面板中,按住Ctrl键,同时选中折线->飘带1图层和waterBody.efd图层,单击计算->通用工具箱->图层->图层合并,生成图层合并2图层。

  7. 在管道面板中,选中曲面->曲面(均一平滑)1图层,右击快速操作,输入操作命令:加密,选中曲面->散点(采样加密)1命令。加密区域选择图层合并2图层,单击确定,生成*曲面->散点(采样加密)1*图层,在属性面板中,设置加密参数。单击应用

  8. 在管道面板中,选中*曲面->散点(采样加密)1图层,右击快速操作,输入操作命令:曲面,选中散点->曲面(泰森)1命令。生成散点->曲面(泰森)1*图层,在属性面板中,设置投影平面和边界外扩。单击应用。可以在视图1中看到地表水体部分已经加密后的模型网格。

  9. 在管道面板中,选中*散点->曲面(泰森)1图层,右击快速操作,输入操作命令:初始化,选中初始化MODFLOW6模型命令。生成初始化MODFLOW6模型1*图层,在属性面板中,设置模型层数、层厚、渗透系数等参数。单击应用。可以在信息面板中看到初始化模型的相关信息。

定义网格高程

使用grd文件定义网格高程。

  1. 点击菜单栏中的导入数据按钮,打开算例文件夹中的Grndsrf.grd文件,生成Grndsrf.grd图层,在该图层属性面板中点击应用完成设置。导入定义地表高程,即第一层网格顶部高程的grd文件。

  2. 选择初始化MODFLOW6模型1图层,点击数值模拟-> MODFLOW6->MF6网格高程,选择Grndsrf.grd1图层为属性图层,点击确认生成MF6网格高程1图层,将其重命名为010 MF6网格高程1图层。在属性面板中,选择赋值模式网格属性->单层高程数列band_1赋值对象模型顶板最小层厚0.1,勾选上层优先,单击应用。在渲染子面板中,将渲染方式设为曲面,视图窗口如下图所示:

  3. 重复步骤1-2,从算例文件夹中分别导入ChemWest_SG_new.grdChemwest_Bed_new.grd文件,生成ChemWest_SG_new.grdChemwest_Bed_new.grd图层。将这两个图层进行,再分别为模型网格赋值第一层底板和第二层底板,生成020第一层底板- MF6 网格高程2030第二层的底板- MF6 网格高程3图层。

    为更好的查看模型网格,在030 MF6网格高程3图层属性面板渲染子面板中,将坐标变换属性下的,Z方向缩放设为5,点击应用完成设置,视图窗口如下图所示:

定义活动区域

使用创建多边形的工具,将研究区域东侧的高地和西侧NM河上的大坝设置为不活动区域。

  1. 图层面板中只保留chemwest.dxf图层的显示,点击俯拾视角:Z轴向外工具,并单击视图1中的3D 按钮,切换为2D 查看。

  2. 点击创建数据体->几何体->多边形,生成多边形1图层,将其命名为无效网格-多边形1图层。在该图层属性面板数据子面板中,勾选显示手柄封闭折线选项,将添加类型设为多边形

    视图窗口中,按住键盘Alt+Ctrl键,单击鼠标,沿着研究区域东侧的道路和区域边缘绘制闭合折线(具体位置见下图,不包含东侧道路)。折线创建起始有(0,0,0)和(1,0,0)两个控制点,在折线创建完毕后,可在控制点列表中选中这两个控制点,点击表格右侧的删除按钮,删除起始两点 ,使得其余控制点形成的闭合折线包围东侧不活动区域。点击应用完成设置。

  3. 图层面板中选择030第二层的底板- MF6 网格高程3图层,点击数值模拟->MODFLOW6水流->MF6多边形赋值,生成MF6多边形赋值1图层,将该图层重命名为040无效网格-MF6多边形赋值1图层。在该图层属性面板数据子面板中,属性类别设为有效网格层号1,并指定值0,点击应用完成设置。在视图1总可以看到红色区域为有效网格,蓝色区域为无效网格。

  4. 重复步骤2,基于场地地图西侧NM河大坝的位置,使用创建数据体->几何体->多边形工具创建多边形1图层,并将其重命名为大坝-多边形1图层。在该图层属性面板数据子面板中,将添加类型设为多边形,点击应用完成设置。

定义渗透系数

使用抽水试验结果定义模型第二层网格渗透系数,试验数据保存在txt文件中。

  1. 点击菜单栏中的导入数据按钮,打开算例文件夹中的chemwest_K.txt文件,生成chemwest_K.txt图层,在该图层属性面板中勾选启用Tab分隔符,点击应用完成设置。导入包含第二层网格水平渗透系数、垂向渗透系数的散点文件。在视图2中以表格形式查看如下:

  2. 选择chemwest_K.txt图层,点击通用工具箱->散点->表格->散点,生成表格->散点1图层。在该图层属性面板数据子面板中,为X、Y坐标分别选择X和Y数列,勾选下方的2D散点保留坐标选项;在渲染子面板中将点宽设为8,点击应用完成设置。

  3. 选择表格->散点1图层,点击通用工具箱->散点->散点->均匀网格(克里金),生成散点->克里金均匀网格1图层。在该图层属性面板数据子面板中,将数据系列设为K影响半径设为0.1;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef插值结果,将透明度设为0.5,点击应用完成设置。散点的K值插值到克里金均匀网格中。

  4. 选择散点->克里金均匀网格1图层,点击通用工具箱->网格->网格节点->散点,生成网格节点->散点1图层。点击应用完成设置。

  5. 选择040无效网格-MF6多边形赋值1图层,点击数值模拟-> MODFLOW6水流-> MF6层赋值,选择网格节点->散点1图层为属性图层,点击确认生成层赋值1图层,将其重命名为050-第二层水平渗透系数- MF6层赋值1图层。

    在该图层属性面板数据子面板中将属性类别选为水平渗透系数层号2水平渗透系数选择ef插值结果数列。在渲染子面板中将渲染方式改为曲面色彩设置为ef水平渗透系数,点击应用完成设置。视图窗口如上图所示:两层模型的水平渗透系数不同。

  6. 重复步骤5,选择050-第二层水平渗透系数- MF6层赋值1图层,选择网格节点->散点1图层为属性图层,生成060-第二层垂向渗透系数- MF6层赋值1图层。在该图层属性面板数据子面板中设置相应的参数,点击应用为第二层网格设置垂向渗透系数。

定义定水头边界

基于场地地图创建并为模型赋值定水头(NM河)。

  1. 点击保存工程,将当前项目文件保存为MF6水流模型.efp

  2. 图层面板中只保留waterBody.efd图层的显示,点击俯视视角:Z轴向外工具,使视角变为俯视。

  3. 管道面板中,选中waterBody.efd图层,使用矩形选择网格按钮,绘制矩形,选中大坝上游的定水头区域,如下图所示。

  4. 点击通用工具箱->图层->提取所选对象,生成提取所选对象1图层,将其命名为大坝上游-提取所选对象1图层。

  5. 管道面板中,选中大坝上游-提取所选对象1图层,对其进行快速操作:线性赋值,生成线性赋值1图层,重命名为上游水头-线性赋值1图层,在属性面板中,输入水头变化范围602.5和601.5,单击应用。在视图1中可以看到其线性变化色差图。

  6. 管道面板中,选中060-第二层垂向渗透系数图层,对其进行快速操作:MF6多边形赋值,生成MF6多边形赋值1图层,重命名为070定水头大坝上游-MF6多边形赋值2图层,在属性面板中,选中定水头边界进行设置,单击应用

    对于水头值和底板高程值发生冲突的位置,软件按照属性中设定的忽略网格进行处理,另外还有其他处理方式,用户可根据具体项目情况进行选择。

  7. 重复3-6操作步骤,提取大坝下游河流,进行线性赋值MF6多边形赋值,生成080定水头大坝下游-MF6多边形赋值2图层。

定义河流边界

基于场地地图创建并为模型赋值河流边界(S湖、B湖和LU溪)。

  1. 管道面板中,选中waterBody.efd图层,使用矩形选择网格按钮,绘制矩形,选中北部湖泊区域,如下图所示。

  2. 点击通用工具箱->图层->提取所选对象,生成提取所选对象3图层,将其命名为北部湖泊-提取所选对象3图层。

  3. 管道面板中,选中080定水头大坝下游-MF6多边形赋值2图层,对其进行快速操作:MF6多边形赋值,生成MF6多边形赋值1图层,重命名为090北部湖泊-MF6多边形赋值4图层,在属性面板中,选中河流边界,并设定相关的三个参数,单击应用。在视图1中可以看到赋值后的河流边界。

  4. 重复步骤1-3,为水流模型赋值河流边界条件,生成100 南部湖泊- MF6多边形赋值1图层。

  5. 选择LU溪.efd图层,点击通用工具箱->空间拓扑->标量扭曲,生成标量扭曲4图层,在该图层属性面板中,将标量数列设为ef河底高程,点击应用完成设置。此时根据LU溪河底高程,将表示LU溪的折线从二维变为三维,方便之后的模型赋值。

  6. 选择100 南部湖泊-MF多边形赋值1图层,点击数值模拟-> MODFLOW6水流-> MF6线形赋值,选择标量扭曲4图层为属性图层,点击确认生成MF6线赋值1图层,将其重命名为110LU溪-MF6线赋值11图层。

    在该图层属性面板数据子面板中将属性类别选为河流边界,勾选3D赋值选项河流水头、传导系数河底高程分别选择ef水位、efCef河底高程数列。在渲染子面板中,将渲染方式设为曲面,将色彩设为ef河底高程,点击应用完成设置。根据LU溪折线的空间分布,为水流模型进行3D赋值,调整图层透明度,可以看到一部分LU溪在模型第一层,一部分在第二层。

定义补给边界

创建散点并为散点赋值,定义模型垂向入渗补给边界;创建多边形定义模型侧向径流边界。

  1. 点击创建数据体->几何体->球形随机散点,创建球形随机散点1图层,在该图层属性面板数据子面板中,勾选拖拽手柄选项,将散点拖拽到研究区域XY范围内,如将散点中心设为(4000,2500,0),并将散点数量设为1,点击应用完成设置。为方便查看,可在渲染子面板中,将散点点宽设为10,在坐标变换属性下,将Z方向的平移设为3000

  2. 选择110-LU溪河流3-层赋值1图层,点击数值模拟-> MODFLOW6水流->MF6层赋值,选择球形随机散点1图层为属性图层,点击确认生成MF6层赋值1图层,将其重命名为120垂向入渗边界-MF6层赋值3图层。

    在该图层属性面板数据子面板中将属性类别选为垂向入渗边界层号1垂向入渗率选择指定值数:0.00183,点击应用完成设置,为模型设置垂向入渗(降水补给)背景值。

  3. 由于模型活动网格区域右侧有来自东部高地侧向径流的影响,本算例中将在模型非活动区的左侧边缘绘制折线,使用垂向入渗边界模拟地下水的侧向径流。由于模型右侧还有部分无效网格区域,需保证此折线位于活动区域内,紧邻非活动单元格,这样赋值的参数才能最终参与模型运算。

    图层面板中保留无效网格-多边形1图层的显示,点击俯视视角:Z轴向外工具,使视角变为俯视。并将其透明度调低,便于查看绘制的折线。

  4. 点击创建数据体->几何体->多边形,生成多边形1图层,将其命名为侧向径流-多边形1图层。在该图层属性面板数据子面板中,勾选显示手柄选项,将添加类型设为折线

    视图窗口中,按住键盘Alt+Ctrl键,单击鼠标,沿着非活动区的左侧边缘绘制折线(具体位置见下图),单击应用,将线渲染为圆柱,并调大线宽,便于查看和调整位置。具体绘制方法参考2.4节步骤2。

  5. 图层面板中选择侧向径流-多边形1图层,点击通用工具箱->属性->计算器,生成计算器1图层,将该图层重命名为补给率2-计算器1图层。在该图层属性面板数据子面板中,结果数列名称设为ef补给率2,数值为5.37e-10,点击应用完成设置。

  6. 选择120 垂向补给-层赋值1图层,点击数值模拟-> MODFLOW6水流->MF6线赋值,选择补给率2-计算器1图层为属性图层,点击确认生成MF6线赋值1图层,将其改名为130侧向补给- MF6线赋值1图层。在130侧向补给图层属性面板数据子面板中将属性类别设为垂向入渗边界层号1垂向入渗率选择为ef补给率2数列;在渲染子面板中,将渲染方式设为曲面色彩设为ef垂向入渗边界,点击应用为模型设置侧向径流边界。

设置应力期

  1. 点击菜单栏中的导入数据按钮,打开算例文件夹中的应力期.csv,生成应力期.csv图层。

  2. 选中130侧向补给- MF6线赋值1图层,对其赋值应力期,生成并重命名为140-MF6应力期1图层,在属性面板中设置应力期参数,单击应用

解释运行MODFLOW

解释运行创建好的水流模型。

  1. 选中140 MF6应力期1图层,点击数值模拟-> MODFLOW6水流->MF6解释运行,生成解释运行MF6解释运行1图层。在属性面板中,点击按钮选择模型文件生成的位置,将模型名保存为chemwest.mf6。选择复杂度线性模型时间单位长度单位英尺,勾选保存所有时间步保存水均衡允许再湿润选项,点击应用,系统将自动编译并运行MODFLOW6模型,运行完成后会弹出调试窗口,显示MODFLOW水流模型引擎正常结束

  2. 点击菜单栏中的导入数据按钮,选择上一步中用户指定名称的MODFLOW6文件夹中的efModFlow6.nam6文件。图层面板中生成efModFlow6.nam6图层。

    在该图层属性面板将坐标变换属性下的Z方向缩放设为5,点击应用导入MODFLOW6模型结果。

  3. 由于非活动区域水位值较低,需要对该区域进行裁切。选中efModFlow6.nam6图层,点击通用工具箱->网格->阈值裁切,生成阈值裁切1图层。在该图层属性面板数据子面板中,将标量数列设为水头阈值范围最大最小值设为587、1000;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef水头,点击下方的重置颜色阈值到数值边界按钮,点击应用完成设置。模拟区水位如下图所示,为之后的溶质运移提供流场信息。

  4. 选中阈值裁切1图层,对其进行计算器快速操作,生成计算器2图层,在属性面板中,输入计算公式:ef径流量/mag(ef径流量),生成梯度场,单击应用。并以矢量流线的形式展示。

小结

完成本指南中的算例后,可以学到以下内容:

  • 如何创建并运行地下水MODFLOW6水流模型;

  • 如何使用grd文件为MODFLOW模型赋值;

  • 如何使用txt文件进行克里金插值并为MODFLOW6模型赋值;

  • 如何基于场地地图绘制多边形和折线;

  • 如何对散点、折线和多边形进行单一属性和线性属性赋值;

    如何保存和导入efd图层文件。