Skip to main content

海岸带潮汐边界地下水模型

info

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

算例工程下载地址

1 算例简介 2 操作步骤 2.1 新建项目 2.2 创建MODFLOW6模型 2.3 定义网格高程 2.4 定义渗透系数 2.5 定义应力期 2.6 定义通用水头 2.7 定义补给边界 2.8 定义河流边界 2.9 定义抽水井 2.10 定义蒸腾蒸散 2.11 解释运行MODFLOW6 3 小结

算例简介

本算例对海水潮汐变化影响下的海岸带区进行地下水数值模拟。研究区域含水层分为三层:潜水层、弱透水层和承压水层。东侧为海洋,水位随潮汐波动;区内河流水位受潮汐影响变化。中部有两条河流流经,承压水层有3口抽水井,研究区降水入渗率存在差异。不同模型边界条件的随时间变化各有不同,模型将设置4个应力期,通过创建MODFLOW6模型,设置不同边界条件的变化情况。

操作步骤

新建项目

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

创建MODFLOW6模型

首先,创建用于运行MODFLOW6模拟的网格。

  1. 点击开始->导入数据选项,或点击界面上方的按钮,打开算例文件夹中的M6grid.efd文件,生成M6grid.efd图层,在该图层属性面板中点击应用完成设置。导入用于创建MODFLOW6模型的网格。网格为15行,10列,1层,尺寸为500*500。

  2. 点击计算->数值模拟->MODFLOW6水流->初始化MODFLOW6模型,创建初始化MODFLOW6模型1图层。在该图层属性面板数据子面板中,将模型层数设为3,默认水平渗透系数设为5,打开垂向渗透系数非稳定流的选项,将默认垂向渗透系数设为0.5默认给水度设为0.1默认贮水系数设为1e-6,点击应用完成设置。

    用户应自行确认模型单位的一致性,单位会在后续操作中进行设置。本算例长度单位为,时间单位为。此时系统将产生初始MODFLOW模拟图层。

定义网格高程

使用散点数据定义网格高程。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的高程.csv文件,生成高程.csv图层,在该图层属性面板中点击应用导入定义包含各层网格面高程的csv文件。添加表格视图可查看导入的csv文件。

  2. 选择高程.csv图层,点击通用工具箱->散点->表格->散点,生成表格->散点1图层,在该图层属性面板数据子面板中,将X和Y坐标分别选为x和y列,勾选2D散点选项,点击应用完成设置。将表格文件中的数据转换为散点,便于下一步的高程赋值。

  3. 选择初始化MODFLOW6模型1图层,点击数值模拟-> MODFLOW6水流->MF6网格高程,选择初始化MODFLOW6模型1图层为模型工程层,选择表格->散点1图层为高程图层,点击确认生成MF6网格高程1图层,将其重命名为010- MF6网格高程1图层。

    在该图层属性面板中将赋值模式设为散点属性->多层,勾选下方的上层优先选项,点击应用完成网格高程的设置。在视图窗口拖动鼠标查看三维网格分布。如视图不能转动,可点击视图窗口上方的切换3D模式按钮,切换为3D查看。

定义渗透系数

使用csv文件定义模型渗透系数。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的参数.csv文件,生成参数.csv图层,在该图层属性面板中点击应用完成设置。导入包含第二、三层网格水平渗透系数和垂向渗透系数信息的散点文件。

  2. 选择参数.csv图层,点击工具箱->散点->表格->散点,生成表格->散点2图层。在该图层属性面板数据子面板中,为X、Y坐标分别选择x和y数列,勾选下方的2D散点保留坐标选项,点击应用完成设置。

  3. 选择010- MF6网格高程1图层,点击数值模拟-> MODFLOW6水流->MF6层赋值,选择表格->散点2图层为属性图层,点击确认生成MF6层赋值1图层,将其重命名为020-Kh2-MF6层赋值1图层。

    点击该图层属性面板顶部的显示/隐藏高级属性选项,在数据子面板中将属性类别选为水平渗透系数层号2水平渗透系数选择水平k2数列。在渲染子面板中将渲染方式改为曲面网络色彩设置为ef水平渗透系数,点击应用完成第二层网格水平渗透系数设置。

  4. 重复步骤3,选择020-Kh2-MF6层赋值1图层,选择表格->散点1图层为属性图层,分别生成030-Kh3-MF6层赋值2、040-Kv2-MF6层赋值3、050-Kv3-MF6层赋值4图层。在该图层属性面板数据子面板中设置相应的参数,注意030图层赋值第三层网格水平渗透系数,040050图层赋值第二、三层网格垂向渗透系数。点击应用完成网格渗透系数的设置。视图窗口如下所示,展示各层垂向渗透系数。

定义应力期

使用csv文件定义模型应力期。应力期共4期,其中第一期为1天,剩余3期各10天。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的应力期.csv文件,生成应力期.csv图层,在该图层属性面板中点击应用完成设置。导入应力期信息的散点文件。

  2. 选择050- Kv3-MF6层赋值4图层,点击数值模拟-> MODFLOW6水流->MF6应力期,选择应力期.csv图层为属性图层,点击确认生成MF6应力期1图层,将其重命名为060- MF6应力期1图层。

    点击该图层属性面板数据子面板中分别为应力期长度、当期步数、稳定流和松弛系数选择相应的数据列,点击应用完成应力期设置。

定义通用水头

使用通用水头时间序列文件和网格赋值方法定义模型通用水头边界(海洋)。MODFLOW6支持以灵活的方式定义变化的边界条件,首先准备包含通用水头随时间变化的数据文件,随后在EnviFusion工作流中设置时间序列,获得序列标记值,之后使用此值为模型网格赋值通用水头边界条件。

  1. 由于建模时间较长,注意不定期保存工程文件。点击开始->保存工程,将当前项目文件保存为tidal.efp

  2. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的ghbTs.csv文件,生成ghbTs.csv图层,在该图层属性面板中点击应用完成设置。导入包含通用水头水位随时间变化的数据,使用这两列数据定义模型通用水头边界的时间序列。

  3. 选择060- MF6应力期1图层,点击数值模拟-> MODFLOW6水流->MF6时间序列,选择ghbTs.csv图层为时序数列图层,点击确认生成时间序列.ts.efs图层,将其重命名为070-通用水头- 时间序列.ts.efs图层。

    在该图层属性面板数据子面板中,设置数列文件名保存位置,可保存在算例文件夹下,时间值选择time列,时序属性值仅选择通用水头数列;在渲染子面板中将渲染方式设为曲面网络,点击应用完成设置,生成通用水头水位时间序列文件。在弹出的调试窗口,会显示该时间序列对应的数值标记为-9997,将使用该数值赋值模型通用水头边界水位参数。

  4. 070-通用水头- 时间序列.ts.efs图层中,手动旋转视图或点击俯视视角按钮,将视图调整为俯视模式。在视图窗口上方选择矩形框选择网格工具,选择模型最右列网格,将为其赋值通用水头边界。选中的网格会高亮显示网格线,若选择区域错误,可点击清除选择按钮,清除当前所选网格,重新选择网格。

  5. 选中网格后,点击数值模拟-> MODFLOW6水流->MF6时间序列,生成MF6网格赋值1图层,将其重命名为071-通用水头- MF6网格赋值1图层。

    在该图层属性面板数据子面板中将属性类别选为通用水头边界通用水头值为步骤3中获得的标记值-9997传导系数150层号1应力期号1-4,点击应用完成设置,为模型最右列第一层网格的4个应力期赋值通用水头边界。视图窗口如下图所示:

定义补给边界

本模型中不同区域的降水入渗不同,且降水随时间发生变化。因此与定义通用水头边界方法类似,设置补给边界的时间序列,并为3个区域分别赋值补给边界。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的rchTs.csv文件,生成rchTs.csv图层,在该图层属性面板中点击应用完成设置。导入包含各补给区补给率随时间变化的数据,用于定义模型补给边界的时间序列。

  2. 选择071-通用水头- MF6网格赋值1图层,点击数值模拟-> MODFLOW6水流->MF6时间序列,选择rchTs.csv图层为时序数列图层,点击确认生成MF6时间序列1图层,将其重命名为080-补给- MF6时间序列1图层。

    在该图层属性面板数据子面板中,时间值选择time列,在时序属性值中选择rch1、rch2和rch3数列,点击应用完成设置,生成补给边界补给率时间序列文件。在弹出的调试窗口,会显示rch1、rch2和rch3三个补给区时间序列对应的数值标记为-9996、-9995和-9994,将使用该数值赋值模型补给边界补给率值。

  3. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的rechZone1.efd文件,生成rechZone1.efd图层,在该图层属性面板中点击应用完成设置。导入表示补给区1的多边形文件。修改071图层渲染方式为网格,补给区1多边形如下所示、

  4. 选择rechZone1.efd图层,点击通用工具箱-> 属性->计算器,生成计算器1图层。在该图层属性面板数据子面板中,将结果数列名称设为入渗序列,在下方的计算栏中输入-9996,即为补给区1添加一列数值为-9996的入渗序列值,点击应用完成设置。

  5. 选择080-补给- MF6时间序列1图层,点击数值模拟-> MODFLOW6水流->MF6多边形赋值,选择计算器1图层为属性图层,点击确认生成MF6多边形赋值1图层,将其重命名为081-补给1- MF6多边形赋值1图层。

    在该图层属性面板数据子面板中将属性类别选为垂向入渗边界层号1垂向入渗率选择入渗序列数列;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef垂向入渗边界,点击应用完成设置,为模型设置补给区1的垂向入渗值。

  6. 重复步骤3-5,分别导入表示补给区2和补给区3的形文件,并使用计算器工具为其添加-9995-9994入渗序列。通过MF6多边形赋值工具,分别生成090-补给2- MF6多边形赋值2100-补给3- MF6多边形赋值3图层。赋值完毕后的模型网格如下图所示:

定义河流边界

本模型区域内有两条河流,河流水位随时间发生变化。与定义通用水头边界方法类似,设置河流边界的时间序列,并为两条河流分别赋值边界参数。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的rivTs.csv文件,生成rivTs.csv图层,在该图层属性面板中点击应用完成设置。导入包含河流水位随时间变化的数据,用于定义模型河流边界的时间序列。

  2. 选择100-补给3- MF6多边形赋值3图层,点击数值模拟-> MODFLOW6水流->MF6时间序列,选择rivTs.csv图层为时序数列图层,点击确认生成MF6时间序列2图层,将其重命名为110-河流- MF6时间序列2图层。

    在该图层属性面板数据子面板中,时间值选择time列,在时序属性值中选择riv1 riv2数列,点击应用完成设置,生成河流边界的水位时间序列文件。在弹出的调试窗口,会显示riv1和riv2时间序列对应的数值标记为-9993和-9992,将使用该数值赋值模型河流边界水位参数。

  3. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的river.efd文件,生成river.efd图层,在该图层属性面板中点击应用完成设置。导入表示两条河流的线文件。修改100图层渲染方式为网格,表示河流的线如下所示。

  4. 选择river.efd图层,点击通用工具箱-> 属性->计算器,生成计算器4图层。在该图层属性面板数据子面板中,将结果数列名称设为河底高程,在下方的计算栏中输入36,点击应用完成设置。

  5. 重复步骤4,选中计算器4图层,使用计算器工具为图层添加数值为2000传导系数参数。

  6. 选择110-河流- MF6时间序列2图层,点击数值模拟-> MODFLOW6水流->MF6线赋值,选择计算器5图层为属性图层,点击确认生成MF6线赋值1图层,将其重命名为111-河流- MF6线赋值1图层。

    在该图层属性面板数据子面板中将属性类别选为河流边界层号1河流水头选择时间序列数列,传导系数河底高程选择上一步中赋值的数列;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef河流水位,点击应用完成设置,为模型设置河流边界。

定义抽水井

本模型承压水层有三口抽水井,抽水率随时间发生变化。设置抽水井边界的时间序列,并为三口井分别赋值边界参数。

  1. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的welTs.csv文件,生成welTs.csv图层,在该图层属性面板中点击应用完成设置。导入包含井抽水率随时间变化的数据,用于定义模型抽水井边界的时间序列。

  2. 选择111-河流- MF6线赋值1图层,点击数值模拟-> MODFLOW6水流->MF6时间序列,选择welTs.csv图层为时序数列图层,点击确认生成MF6时间序列3图层,将其重命名为120-井- MF6时间序列3图层。

    在该图层属性面板数据子面板中,时间值选择time列,在时序属性值中选择井1、井2和井6数列,点击应用完成设置,生成抽水井边界的抽水率时间序列文件。在弹出的调试窗口,会显示井1、井2和井6时间序列对应的数值标记为-9991、-9990和-9989,将使用该数值赋值模型抽水井边界参数。

  3. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,打开算例文件夹中的井位置1.csv文件,生成井位置1.csv图层,在该图层属性面板中点击应用完成设置,导入包含三口井坐标和上一步生成的序列标记信息。

  4. 选择井位置1.csv图层,点击工具箱->散点->表格->散点,生成表格->散点3图层。在该图层属性面板数据子面板中,为X、Y和Z坐标分别选择x、y和z数列,勾选下方的保留坐标选项,点击应用完成设置。

  5. 选择120-井- MF6时间序列3图层,点击数值模拟-> MODFLOW6水流->MF6点赋值,选择表格->散点3图层为属性图层,点击确认生成MF6点赋值1图层,将其重命名为121-井- MF6点赋值1图层。

    在该图层属性面板数据子面板中将属性类别选为井边界,勾选3D赋值选项,井抽水率选择时间序列数列;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef井边界,点击应用完成井边界设置。在视图中旋转网格,查看井边界赋值的网格。

定义蒸腾蒸散

为模型第一层赋值蒸散蒸腾边界。

  1. 选择121-井- MF6点赋值1图层,点击数值模拟-> MODFLOW6水流->MF6网格赋值,生成MF6网格赋值2图层,将其重命名为130-蒸散蒸腾- MF6网格赋值2图层。

    在该图层属性面板数据子面板中将属性类别选为蒸散蒸腾,勾使用模型顶部作为蒸散面选项,极限埋深设为10最大蒸散设为0.0004,勾选反选选项,层号设为1应力期号设为1-4;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef极限埋深,点击应用完成蒸散蒸腾边界设置。

解释运行MODFLOW6

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

  1. 选中130-蒸散蒸腾- MF6网格赋值2图层,点击数值模拟-> MODFLOW6水流->MF6解释运行,生成MF6解释运行1图层。在属性面板中,点击按钮选择模型文件生成的位置,将模型名保存为Tidal。选择复杂度线性模型时间单位长度单位,勾选保存所有时间步保存水均衡选项,点击应用,系统将自动编译并运行MODFLOW6模型。

  2. 点击开始菜单栏中的导入数据选项,或点击界面上方的按钮,选择上一步中用户指定名称的.mf6文件夹中的efModFlow6.nam6文件。项目浏览器中生成efModFlow6.nam6图层,在该图层属性面板渲染子面板中,将渲染方式设为曲面网络色彩设为ef水头,点击应用导入MODFLOW6模型结果。

    点击播放按钮,查看水位波动情况。

  3. 由于水位波动变化较小,可计算前后两时间点间的水位波动增量,查看水位波动情况。选中efModFlow6.nam6图层,点击通用工具箱->时间->时间->时序差分,生成时间->时序差分1图层。

    在该图层属性面板数据子面板中,在选择属性数据表中仅勾选ef水头;在渲染子面板中,将渲染方式设为曲面网络色彩设为ef水头_差分,点击应用完成设置。可查看模型水位变动情况:

小结

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

  • 如何创建并运行地下水MODFLOW6水流模型;
  • 如何设置边界条件的时间序列;
  • 如何使用各种赋值工具为水流模型赋值;
  • 如何解释运行并读取MODFLOW6模型