建立水动力模型!
前言
前文已经讲了如何制作网格文件(.mdf文件),这一博文就讲如何建立水动力模型。
Step 1 导出mesh文件
前文制作好的mdf网格文件不可以直接拿来用的,需要先导出成mesh文件,步骤如下三图:
于是,就可以看到你设定的文件夹里出现了一个 .mesh 的文件,这个就可以用作建立模型了。
Step 2 设置模型参数
首先,选择【MIKE 21】→【Flow Model FM(.m21fm)】,然后就打开了设置参数的界面,如下两图:
接下来,设置一下参数。
【Domain】,加载mesh文件,其他参数均保持默认。
【Time】,这个需要自己设置,如下图:
模拟结束时间 - 模拟开始时间 = 时间步长 × 时间步数
对于时间步长如何确定,也并没有特定的要求,我一般是根据情况取 60(1分钟) 或 120(2分钟) 或 180(3分钟) 或 240(4分钟)。
关于时间步长和时间步数,我自己做了一个 Excel 小工具,很方便计算,上传到我的CSDN资源库里了,有需要的读者可以到资源栏目中自行下载(不需要积分),叫做:【MIKE小工具】-计算时间步数-晏长街。
【Module Selection】,模块选择,其中水动力模块(Hydrodynamic)是必选的。我们这里也只选择水动力模块。
接下来的设置就都是水动力模块的参数了。
【Solution Technique】,算法。
Shallow water equations,浅水方程,Time和Space均选择低阶运算方法(Low order,fast algorithm)就行,其余均保持默认。
Transport equations,传输方程,均保持默认。
【Depth】,一般不需要水深校正,No depth correction,保持默认。
【Flood and Dry】,干湿边界,一般取默认值。干水深 0.005m,淹没水深 0.05m,湿水深 0.1m。
【Density】,密度,一般保持默认选择正压模型,Barotropic。
如果选择正压模型,温度和盐度会被定义为常数,在整个模型中保持不变。
事实上,如果水体充分混合,温盐密度在垂直方向都是定值;并且在大多数情况 下,密度梯度对二维浅水方程的影响是很小的,几乎可以忽略不计。
【Eddy Viscosity】,涡粘系数,默认采用Smagorinsky formulation,均采用默认即可。
【Bed Resistance】,底床糙率选用曼宁系数(Manning number),常数值需要自己设置,一般是根据拟合结果来多次回代确定。
一般我们根据拟合结果回调的值也就是底床糙率这个参数了。
【Coriolis Forcing】,科氏力,一般默认选择Varying in domain。
【Wind Forcing】,如果有风力数据,可以勾选这一项。随时间、空间变化的情况,对应dfs2文件。随时间变化、空间定值的情况,对应dfs0文件。其他均保持默认。
【Ice Coverage】,冰盖,一般不考虑。
【Tidal Potential】,引潮势,这是一个很弱的作用力,通常会在深且封闭的水体中作用明显,一般不考虑。
【Precipitation - Evaporation】,降水-蒸发,一般不需考虑。
【Wave Radiation】,波浪辐射应力,一般不需考虑。
【Sources】,源,一般不需考虑。
【Structures】,水工结构物,一般不需考虑。
【Initial Conditions】,初始条件,这个涉及到一个问题就是“冷启动”还是“热启动”。关于两者概念及具体操作今后会专门再讲的。一般第一次跑模型都会选择冷启动方式,选择Constant 常数,Surface elevation 初始水位默认保持0就行。其他默认即可。
【Boundary Conditions】,边界条件。
对于 Land boundary 陆地边界,选择 Land(zero normal velocity)即可。
对于开边界,选择 Specified level 水位设定,边界格式选择 Varying in time and along boundary 随时间且沿边界变化,然后导入潮汐边界条件dfs1文件。关于这个潮汐边界条件dfs1文件如何获取,请读者耐心往后看,在本博文Step3里面会讲到的。其他均按默认即可。
如下图所示:
【Decoupling】,解耦,一般不需要考虑。
【Outputs】,输出。
首先 New output,新建一个输出项目,如下图,可以自己命名。
然后,Output specification,对这个输出项目进行设置,一般如下图设置就行。
再然后,Output items,选择自己需要的模块,一般研究水动力的话就勾选Surface elevation,U velocity,V velocity。其他根据自己情况添加。
至此,参数就设置完成了。
接下来,就点击【Run】→【Start Simulation】,模型就开始运行了。运行完成后,点击【View】就可以查看模型计算结果。如下图:
Step 3 边界条件的获取与处理
我们刚刚讲了,边界条件 Boundary Conditions,对于开边界,需要导入 dfs1 文件。那么,这个dfs1文件是怎样获取的呢?
MIKE自带了一个潮汐预测的工具,可以根据这个工具来生成开边界水位数据。
具体操作如下图:
然后,就会发现,你选择的目录里生成了一个dfs1的文件,那个就是开边界的水位条件。
但这个dfs1文件还不能直接用在模型参数输入里面,必须修改一下。因为这个软件生成潮位边界的时间是格林尼治时间,而我们中国的海域的验测的水文数据用的是北京时间,北京时间比格林尼治时间滞后8个小时。
因此,我们要做的就是将开边界水位条件dfs1文件中的全部数据整体滞后8个小时。具体操作如下:
先复制一份水位条件,然后把两个dfs1文件同时打开,如下两图:
然后对dfs1源文件,选中全部数据,将其删除,操作如下两图:
再然后对dfs1副本文件,选中全部数据,ctrl + C 复制,如下图。
再转到刚刚数据全部被删掉了的源文件中,找到滞后8小时后的时间行,选中这一行,然后ctrl + V 粘贴,如下两图。
这样,这个边界条件文件dfs1就可以用在参数输入里面了。那个副本已经没用了,删掉就行了。
Step 4 拟合对比
拟合对比就是将你的模拟结果与实测数据进行对比,一般实测数据就是潮位站的水位数据,和潮流站的u速度分量、v速度分量数据(或流速流向数据)。
如果拟合的结果较好,则代表模型可以很好的模拟现实海湾;如果模拟结果较差,则代表模型不能代表海湾情况,必须重新调整,调整边界或者参数,一般如果你觉得边界基本没啥问题的话,那就调整参数就行,基本就是底床糙率那个参数了。
————————————————
原文链接:https://blog.csdn.net/m0_50132779/article/details/118522923