二维水动力模块功能详解

1. 界面简介

进入界面,顶部居中区域为本工程的名称。用户创建工程时会自动生成一个名称,用户可以根据需求进行修改,也可以在生成工程后,点击顶部的名称进行修改。

顶部右侧为用户管理,用户登录后即显示用户名,点击用户名即可进入【个人中心】,进行个人信息、核时、计算次数、储存空间、工程管理等设置。

模块的语言模式默认为【中文】,用户也可以切换为【英文】模式。

左侧为导航栏,按照建模计算的顺序,二维水动力模块分别包含【矢量】、【几何】、【网格】、【模型】、【计算时间】、【结果配置】、【仿真计算】、【计算结果】子模块。下文将详细介绍每个模块的功能及用法。用户通常需按顺序进行设置,即可完成从建模到后处理的全流程操作。

右侧大片区域为主视图,该区域主要用于展示地图、几何、网格等。

2. 矢量

进入矢量子模块后,此时主视图默认为矢量地图,用户可以在下方菜单栏中的【地图类型】切换【矢量图】和【卫星图】。

地图会根据用户所在的地理位置定位显示区域,用户可以按住鼠标右键或鼠标中键将地图拖拽到想要的位置。也可以通过下方菜单栏的省、市、区将地图定位到所需的位置。另外,菜单栏的右侧展示当前地图所在的经纬度坐标。

在矢量的选项卡中,首先需进行工程坐标系的设置,用户输入坐标系的EPSG代码即可,默认的坐标系为墨卡托投影坐标系(EPSG:3857)。

用户可以点击【本地上传】上传在其他软件创建的点、线、面矢量文件,上传时需同时选中上传一整套(即包含.cpg、.dbf、.prj、.shp、.shx文件)。

上传后点击地图右侧的自适应按钮,即可定位到矢量所在的位置。

用户可点击矢量图层名称进行重命名。点击右侧的【隐藏】可以暂时隐藏该矢量,以免引起遮挡。点击【编辑】后,进入编辑模式,通过拖拽原有的点,或新增点,修改矢量的形状。

除了直接上传矢量图层,用户也可以在地图右侧的操作栏分别点击对应的按钮创建点、线、面矢量,点矢量可用于点位数据分析,或作为点类型的源汇项;线矢量可作为断面,输出断面的流量;面矢量则用于生成几何画网格,或作为面类型的源汇项。

此外,操作栏中还有上传TIFF、测距、撤销、清除工具。

  • 上传TIFF:除了根据地图影像创建矢量以外,还可以上传一个栅格格式(TIF/TIFF格式)的文件,根据文件渲染的形状信息创建矢量图层。点击【上传TIFF】按钮,点击【本地上传】,即可上传一个TIF/TIFF格式的文件,选择需要显示的【波段】,并调整数值显示的【区间】范围,即可在地图中显示渲染该文件。需要注意的是,所上传的文件需为WGS84椭球的经纬度坐标系(EPSG:4326)。

  • 测距:点击【测距】按钮,在地图中连续点击,即可实现测量距离的功能,方便用户评估网格尺寸的大小。

  • 撤销:点击【撤销】按钮即可撤销在地图中的上一步操作。

  • 清除:点击【清除】按钮,则清除当前的所有矢量图层。

3. 几何

展开【几何】子模块,有【生成几何】和【几何分组】两个部分。

点击【生成几何】,用户将研究区域矢量轮廓设置为【主网格轮廓】。将需要网格加密的矢量轮廓设置为【子网格轮廓】,并且设置为【可淹没】区域。将不需要网格的区域设置为【子网格轮廓】,并且设置为【不可淹没】区域。

点击右下角的生成几何按钮,即可生成带有用户所设置属性的几何面,为下一步的生成网格做准备。

点击【几何分组】,点击【新增】,即可新增线分组,所添加的分组用于设置模型的边界条件,因此用户需要在此处将所有需要设置边界条件的位置都分别新增一个分组。

分组需要设置【分组名称】,名称必须以字母开头,可含数字、字母(大小写敏感)、连字符,0-64 位字符。【分组位置】则可以在主视图中进行点选,在主视图中,通过滚动鼠标滚轮可以放大、缩小几何图形,按住鼠标右键可以平移几何图形。当鼠标经过线段时,线段会变成绿色,选中线段后,线段的名称会出现在【分组位置】中,并且颜色会变成红色。值得注意的是,边界必须是位于研究区域的外轮廓上,同一个分组可以包含相连续的多条线段。

在如果所设置的边界较小,建议用户在画矢量时,画一个凸出研究区域的子轮廓,由此可以切分出一个合适的边界线段,作为边界组。

4. 网格

展开【网格】子模块,有【生成网格】和【网格赋值】两个部分。

点击【生成网格】,用户可设置网格尺寸。其中,主网格与【几何】模块中的【主网格轮廓】区域相对应。设置网格尺寸的方式有【手动】和【自动】两种,【自动】网格尺寸通常较为稀疏,一般来说用户需要进行【手动】设置网格尺寸。用户可以在【矢量】模块中使用【测距】功能,测量实际距离作为网格尺寸设置的依据,也可根据地形数据等数据分辨率进行尺寸的设置。针对需要网格加密的区域,用户在【子网格】中进行添加设置,设置对应的几何、网格最大尺寸、网格最小尺寸。

点击【生成网格】按钮后,稍等片刻等待网格生成,完成后用户即可在主视图中查看网格,主网格的网格相对稀疏,子网格区域网格较密,不可淹没区域没有生成网格。

点击【网格赋值】,用户可以在网格中分别对【高程】、【水深】、【水位】、【摩擦】、【CN值】、【FC值】、【KS值】变量进行赋值。赋值操作不可撤销,但是同一个变量可以进行多次赋值,新的赋值会覆盖旧值。

  • 高程:即通俗理解下的“海拔”高度,所谓水往低处流,因此对于二维水动力仿真,高程是必须要赋值的变量,高程数据的精度也会严重影响计算结果。

  • 水深、水位:若用户只希望将整个研究区域设置为同一个初始水深/水位,则只需要【模型】中的【初始条件】进行设置,不需在此步骤中赋值。若用户希望在不同区域设置不同水深,则需要在此步骤中进行水深赋值。通常的做法是将河流、湖泊区域的水深/水位设置为某一常值,陆地区域的水深设置为0。其中,水位=高程+水深。

  • 摩擦:若用户只希望将整个研究区域设置为同一个摩擦系数,则只需要【模型】中的【底部摩擦】进行设置,不需在此步骤中赋值。若用户希望在不同区域设置不同的摩擦系数,则需要在此步骤中进行摩擦赋值。用户可以将不同的下垫面区域设置为不同的摩擦系数,比如绿地的摩擦系数较大,水泥地的摩擦系数相对较小。或者在模型率定阶段,对比计算值与监测值,进行底部摩擦的修改。

  • CN值:若用户在【模型】的【天气因素】选择了【降雨-下渗模型】,且【下渗模型】选择了【径流曲线法SCS-CN】,则必须在此步骤中赋值CN值。CN值表征下渗率,用户可以将不同的下垫面区域设置为不同的下渗率,取值范围是0~100,CN值越大表示下渗率越小。

  • FC值:若用户在【模型】的【天气因素】选择了【降雨-下渗模型】,且【下渗模型】选择了【霍顿产流模型Horton】,则必须在此步骤中赋值FC值。FC值表征稳定入渗率,单位为mm/h。FC值越大,则入渗越快。

  • KS值:若用户在【模型】的【天气因素】选择了【降雨-下渗模型】,且【下渗模型】选择了【格林-安普模型Green-Ampt】,则必须在此步骤中赋值KS值。KS值表征土壤饱和导水率,单位为cm/min。KS值越大,则表示土壤在饱和前的下渗导水越快。

用户可以在【名称】中对赋值操作进行命名。选择【赋值范围】,赋值范围可以选择【矢量】模块中创建的面矢量。【数值数据类型】包括【常量】、【TIF/XYZ-Value型数据】,当用户选择【常量】,则将范围内的网格节点都赋值同一个数值;当用户选择【TIF/XYZ-Value型数据】,则将TIF格式的数据,或包含X、Y、Value三列的文本数据线性插值并赋值到网格节点中。其中,当用户选择【TIF/XYZ-Value型数据】,文件可以是用户自行上传,但需要注意的是所上传的数据需要与【矢量】模块中设置的坐标系一致,否则坐标不匹配会导致赋值不成功。此外,用户也可以使用【中国城市高程数据库】中的数据进行高程的赋值,数据库中的高程数据是公开的30米分辨率高程数据,在使用该数据时,【矢量】模块中坐标系需要设置为EPSG:3857坐标系。

5. 模型

展开【模型】子模块进行模型参数设置,【模型】子模块包括【初始条件】、【边界条件】、【底部摩擦】、【湍流】、【天气因素】、【源汇项】、【潮汐】、【计算格式】。

5.1 初始条件

点击【初始条件】,打开初始条件选项卡,用户可在此处设置初始水深/水位。通常来说,用户需要在河流、湖泊、海洋区域设置初始水深/水位。另外,如果需要设置流量边界或潮汐边界,那么边界处必须有水,否则计算不收敛。

若用户只希望将整个研究区域设置为同一个初始水深/水位,则只需要设置【均匀】初始场,并选择【水深】或【水位】,并设置初始值。若用户希望在不同区域设置不同水深,则需要在【网格赋值】中进行水深赋值,并在此处选择【非均匀】。

若用户希望在计算中考虑示踪物,则需要在此处打开【是否有示踪物】的开关,并添加不同种类的示踪物。其中,示踪物的名称必须以字母开头,可含数字、字母(大小写敏感)、连字符组成,4-64 位字符。示踪物的浓度单位不定,用户只要知道结果的浓度与设置浓度的单位一致即可。

5.2 边界条件

点击【边界条件】,打开边界条件选项卡,用户可在此处设置不同的边界条件。边界类型可以选择【水位边界】、【流量边界】、【潮汐边界】。

  • 水位边界

    通常会将出口边界设置为水位边界,水位边界可以设置为固定值,也可以设置随时间变化的曲线。用户点开表格按钮即可设置一个时间-水位表格,定义水位随时间变化的过程,表格可以一行一行地手动添加,也可以下载模板后,在本地进行填写或粘贴已有的监测数据,填写完毕后再上传至平台中。

    此外,还可以修改表格的表头,设置一条水位-流量曲线,曲线数据通常来源于实测数据,曲线的形状取决于该断面的形状。

  • 流量边界

    流量边界通常设置在入口边界,水位边界可以设置为固定值,也可以设置随时间变化的曲线。流量过程曲线可以是水库泄洪流量、洪水来流过程等。

  • 潮汐边界

    潮汐边界通常设置在入海口边界,若用户使用潮汐边界,通常需要在海潮数据库中下载潮汐数据,数据通常包含潮汐的水位和速度。目前平台支持比较常用的TPXO数据库的数据。用户只需上传从潮汐数据库下载的水位文件、速度文件,并设置文件的起始时间及坐标系等信息,即可完成潮汐边界的设置。

    潮汐边界的设置可以研究在潮汐的影响下,入海口的水流流态变化、污染物扩散等现象,结合泥沙模拟,还可以模拟入海口在长期潮汐影响下泥沙堆积等现象。

在设置边界条件时,若用户希望在边界处设置有示踪物的输入或输出,则打开示踪物的开关,进行示踪物浓度变化的设置。

最后,边界条件需设置施加的位置,可选项为【几何】模块中添加的分组。需要注意的是,出口、入口边界条件必须施加在整个模型的最外轮廓上。若用户不设置任何边界条件,则默认认为所有边界都为“墙边界”,即水不能穿过边界。

5.3 底部摩擦

点击【底部摩擦】,打开底部摩擦选项卡,用户可在此处设置不同的摩擦模型。摩擦模型默认为【无摩擦】,用户可修改为【曼宁公式】或【谢才公式】两种摩擦模型。

若用户只希望将整个研究区域设置为同一个摩擦系数,则只需要选择【均匀】并设置一个摩擦系数。若用户希望在不同区域设置不同的摩擦系数,则需要在【网格赋值】中进行摩擦赋值,并在此处选择【非均匀】。

5.4 湍流

点击【湍流】,打开湍流选项卡,用户可在此处设置不同的湍流模型。湍流模型默认为【均一模型】,用户可修改为【k-e模型】。在二维水动力计算中,两种模型的计算结果相差不大,三维水动力计算才会有相对明显的差异。通常【均一模型】的计算相对较容易收敛,【k-e模型】的收敛时间较长。

5.5 天气因素

点击【天气因素】,打开天气因素选项卡,用户可在此处设置不同的天气因素。

用户可选择【简化降雨模型】进行简单的降雨设置,用户只需输入降雨强度(多少毫米/天)、降雨时长即可,模型会在第0秒开始降雨,当时间到达降雨时长后,降雨停止。

用户可选择【简化蒸发模型】进行简单的蒸发设置,用户只需输入蒸发速率(多少毫米/天)、蒸发时长即可,模型会在第0秒开始蒸发,当时间到达蒸发时长后,蒸发停止。

用户可选择【降雨-下渗模型】进行相对复杂的降雨及水文产汇流模型设置。

用户点击【降雨量】处的表格按钮设置随时间变化的降雨过程。降雨量数据可以从降雨预报、雨量站监测、统计公式计算(比如N年一遇的降雨)。

下渗模型可以选择【径流曲线法SCS-CN】、【霍顿产流模型Horton】、【格林-安普模型Green-Ampt】,每个模型的原理不在此赘述,选择了模型后,需要设置相对应的模型参数。

  • 若用户在【下渗模型】选择了【径流曲线法SCS-CN】,则必须在【网格赋值】中赋值CN值。CN值表征下渗率,用户可以将不同的下垫面区域设置为不同的下渗率,取值范围是0~100,CN值越大表示下渗率越小。

  • 若用户在【下渗模型】选择了【霍顿产流模型Horton】,则必须在【网格赋值】中赋值FC值。FC值表征稳定入渗率,单位为mm/h。FC值越大,则入渗越快。

  • 若用户在【下渗模型】选择了【格林-安普模型Green-Ampt】,则必须在【网格赋值】中赋值KS值。KS值表征土壤饱和导水率,单位为cm/min。KS值越大,则表示土壤在饱和前的下渗导水越快。

5.6 源汇项

点击【源汇项】,打开源汇项选项卡,用户可在此处设置源项和汇项。

源项是指往外冒水的物体,如河边的管网出水口、满溢的井口、污染源等。汇项是指抽水的物体,比如抽水泵车、管网井口、泵站等等。

源汇项的几何类型可以选择【点】和【面】,当选择【点】时,用户可以【源汇项位置】中选择【矢量】子模块中创建过的点;当选择【面】时,用户可以【源汇项位置】中选择【矢量】子模块中创建过的面。

用户可在【流量】中设置恒定的流量,或者点开表格按钮设置随时间变化的流量。

用户可打开【是否有示踪物】,进行源汇项的示踪物设置。比如可以在模型中设置一个水体中的污染源、净水仪器等。

5.7 潮汐

点击【潮汐】,打开潮汐模型项卡,用户可在此处设置潮汐模型的参数。

  • 潮差校准系数:潮差校准系数将同时作用于研究区域内所有潮汐数据,计算过程中将潮汐数据乘上一个倍数(即用户所设置的潮差校准系数)。

  • 潮位基准:即潮汐数据的潮位基准平面所在的位置。

5.8 计算格式

点击【计算格式】,打开计算格式选项卡,用户可在此处设置与计算格式相关的参数。

用户点击设置【最大允许误差】,设置计算每一步所允许的最大误差,计算过程中,当误差小于最大允许误差,则认为计算迭代收敛并接着下一个时间步的计算。用户点击设置【最大迭代次数】,设置每个时间步内可允许迭代的次数。在【高程平滑】中,用户可选择对高程进行自动平滑,平滑高程变化过于剧烈的位置,阶数越高,平滑效果越明显。但为了保持高程的真实性,用户通常选择不平滑。在【负水深处理方式】,中用户可以选择【允许负水深出现】和【不允许负水深出现】

  • 允许负水深出现:计算过程中质量守恒,但可能会出现轻微的负水深情况。
  • 不允许负水深出现:通过改变计算格式,增加迭代步数,避免负水深的出现,但会增加计算耗时。

6. 计算时间

点击【计算时间】,用户可设置【时间步】、【总模拟时长】。

用户设置时间步长时,为了计算的收敛,可以参考库朗数,库朗数的物理意义是时间步长内流体运动距离与网格长度的比值,即:

通常库朗数保持在1左右是较理想的,因此用户可以将Co估计为1,估算水流的速度并代入U,估算网格的平均长度并代入△x,因此计算出较为合适时间步长△t。

如果计算的时间步长固定,则用户在【时间步】中填入数值。用户也可以打开【时间步长随库朗数变化】,并填入【期待库朗数值】,时间步长则自动根据库朗数进行调整。不论时间步长是否固定,用户都需要填写【总模拟时长】,当计算达到总模拟时长时,计算完成。

7. 结果配置

点击【结果配置】,用户可设置结果【输出频率】和【输出变量】。

用户通过设置【输出频率】设置结果保存的频率,通过勾选【输出变量】中的变量,选择需要保存的变量。其中,断面流量会自动同步【矢量】模块中的线类型矢量,用户可勾选所需的断面,输出该断面随时间变化的曲线和数据。

8. 仿真计算

点击【仿真计算】,用户可选择并行计算的核数,并点击【提交计算】按钮开始计算。计算开始后会出现一个计算的进度条,此时用户可以点击【取消】终止计算。当进度条到达100%时则计算完成,此时点击【查看结果】可以进行结果的查看,也可以修改模型参数后【重新计算】。

9. 计算结果

点击【计算结果】,用户分别查看【结果云图】、【点位分析】、【断面流量】。

点击【结果云图】,用户即可查看结果云图。顶部的三个按钮分别为上一帧、自动播放、下一帧,进度条表示所播放的进度,进度条后的数字为当前帧/总帧数,时间为当前帧对应的物理时间,用户可以在物理场切换展示不同的变量云图,点击调色盘可以调整显示色阶的最大值和最小值。

在主视图中,用户可以通过鼠标滚轮放大、缩小云图,按住鼠标右键可以平移云图,点击右上角的按钮可以复位至初始位置。

展开【点位分析】,发现【矢量】模块中的点类型矢量自动同步至此处,主视图中显示对应点的每个结果变量随时间变化的曲线,用户可点击线图上方的变量切换变量的可见/不可见,点击右上方的数据按钮可查看数据表格,点击下载按钮可保存线图。如果用户希望新增分析的点位,只需到【矢量】模块添加点类型矢量,再回到【点位分析】即可,不需重新提交计算。

展开【断面流量】,即可查看断面流量随时间变化的曲线。如果用户希望新增所输出的断面流量,则需要【矢量】模块添加线类型矢量,并在结果配置中勾选所添加的断面,并重新提交计算。