Delft3D的水动力模拟教程

开始进入Delft3D的水动力学习,也就是D-Flow模块,这个是水质及其他模拟的基础。回想自己当时学习模型时,是从WASP开始入门的,学习其的手册,结果没有入了门,为啥?因为里面的概念非常的多,且没有很好的Step by step,自己虽然仔细的一点点认真的学,但实在是学不下去,后来通过诸如MIKE,EE,Delft3D这类商业软件入了门,因为其的手册非常的详细,且有较多的案例,视频资料等,跟着操作慢慢了解这些概念,逐渐摸到了模型的门道。所以,入门的关键就是对「概念」的认识,并有案例作为「实践」基础,这次教程并不是手册的翻译,而更多的是注解,对一些关键的概念进行解释拓展,帮助大家迅速的掌握水动力的模拟。

Delft3D-Flow模块

我们学习的材料就是Delft3D-Flow的手册,商业软件的手册编排的非常的合理,也非常的贴心,就连学习顺序都安排上了。手册可以分为两大部分,模型的操作手册和理论机理。这里简单说说两者的区别,对于现代主流模型都是容易模式版本。

·困难模式 

数学模型本身内部是很多个数学方程组,那个年代的通过数学模型解决问题,就需要去手动列方程,然后求解方程,可以想象这个过程必然是庙堂之上的东西,一般人没有深厚的数学功底是无法做的。…… 

·中等模式 

随着计算机的普及,模型应用的广泛,必然科学家们也感觉到模型的复用问题,所以就考虑将参数从代码中抽离出来,放在一个地方(通常是一个文本文件),使用者仅仅需要更改这些参数,同时由于不同模型数组大小不同,计算机需要依据此管理内存,所以需要针对具体情况设置好需要的数组大小,那么每次都需要将其编译后,可以运行使用。…… 

·容易模式 

计算机行业的快速发展也会推动数学模型的发展,随着Fortan的发展,其有了动态数组(根据条件自动判断),同时将汇总的参数分类,在可视化的界面上表达出来,就形成了目前易用的商业软件包,……

Delft3D的编译及运行

所谓的操作手册是介绍如何通过「参数配置和数据的输入」来构建一个模型,并且如何处理「模拟结果」,最终完成模拟,而理论部分则是介绍其模型背后的机理过程和数值计算过程,是调试模型(也称调参)的关键。举个例子,通常我们购买的数码产品里面会附带使用说明书,那么这些就是操作手册,而对于维修工程师而言,他们往往还会有手机的设计手册,里面会描述电路、芯片的参数及连接方式,对于用户可能只看操作手册就可以了,但是想透彻的掌握这个手机的方方面面,就需要研究设计手册了。同理,对于模型而言,如果你仅仅是模型的用户,或者你有好的师兄师姐已经为你搭建好了模型,可能稍微培训下,跟着说明书,就能简单的操作已经构建好的模型并用起来,但是你如果是模型工程师,操作模型远远不够,你还有掌握模型内在的机理过程。

回到D-Flow,手册内容章节清晰,前8章为操作部分,之后就是模型的理论部分,之前的入门文章中有提到过,快速的入门路径是从操作开始的。

为了构建水动力模型,你需要去准备一些配置文件,这些文件中包括了用来描述物理现象的参数,还有求解物理、化学方程的数值参数,另外还包括一些控制情景及输出模拟结果的设置。这些参数都可能对结果影响很大,所有的输入文件被存储在MDF的文件中。

虽然我们学习的是Delft3D,但是在这个过程中我尽可能的提炼目前主流模型所共有的东西,这样可以触类旁通了。上面这段话是什么意思呢?

模型的参数可以分为几种类型:

  1. 机理过程的参数。这种参数主要是生化过程的参数化之后的几个变量的值,这些值会影响物理化学等过程,这类参数也是我们做模型时候最应该关注的,比如水动力中扩散系数,糙率等等,水质中的降解系数等。在大量的模型相关的论文中,这些出镜率是最高的,也就是这些才是真·参数。
  2. 数值计算参数。目前大部分复杂的水质模型是没有解析解的,这时候往往采用的是数值求解的方式,这时候就会有数值求解相关的参数,这类参数影响的是我们计算的精度和效率,往往非常的复杂,彻底弄明白需要非常好的数学功底,但是我们是研究环境模型的,这些参数只需要了解和设置几个关键的参数即可,如计算步长等,其他的等需要的时候再去研究,不需要花费过多的精力。
  3. 模型设置参数。这类参数呢,主要是用于控制模型的行为的,比如输出的结果的频次,小时还是天的,输出哪些变量,或者输出的垂向哪层的结果,这些配置就像我们常用软件的设置一样,属于外部的参数类,与环境模型关系不大,大多数不会影响计算,而是影响模型输出的结果,这些参数一般随着对模型的了解会逐渐的熟练,开始的时候默认即可。但是,如果错误的设置,可能会导致你无法得到结果,所以说其也比较的重要。

总结下,在开始的时候,我们的目标是让模型能够完成,起码能运行成功有一个结果,这时候重点设置好数值计算参数和模型设置参数。当模型能够成功运行之后,开始关注机理过程的参数,了解模型的行为,逐渐的掌握水环境的模型。

之后根据提供的Step by step来进行建模的学习,这部分的内容在官网上有视频,同时手册中也非常的详细,我会从新手的角度做些注释。

建模过程

构建一个地表水的水动力模型,我们需要多种类型的信息,如模拟的区域范围(也就是水体和陆地交界及水位边界或者开边界的位置所围绕的区域),水底地形,区域内的几何特征,如水工构筑物,排口,最后需要模拟结果的输出和存储。由于目前复杂的水动力模型是没有解析解的,所以我们都需要网格,与网格相关的内容:

  • 合理的选择模拟的区域及范围。
  • 确定边界(开边界)条件的位置和类型,诸如是水位边界、流量边界、流速边界
  • 确定陆地-水交界边界(闭边界)范围
  • 生成网格
  • 在网格中生成地形
  • 在网格中设置相关的参数,如边界条件位置,观测点位置,排口位置
  • 定义模型的时间参数,如开始和结束时间,多种时间相关的函数,如开边界的时间序列,风向和风速时间序列,流量时间序列,浓度时间序列和其他水流的相关物质的时间序列

时间函数(time functions)这里稍微解释下所谓的时间函数,函数在数学中是一种变量到另外一种变量的过程,在模型中的时间函数,可以理解为一种随时间变化的过程,具体这个函数可以是一个公式,自变量为t(时间),也可以直接为一组时间序列值,如流量时间序列。

date Q(cms)
1   0.4
2   0.6
3   0.7
……

上面的与网格相关的内容,除了最后两个,都是在使用Flow之前要准备好的,至于网格和地形之前都有写过了。


文章来源: 水环境编Cheng长     作者:Comies

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注