ruyang
发布于 2025-11-09 / 21 阅读
0

MIKE 21FM DHI MIKE 软件教程 - 1 - 完整示例:简单丁坝(spur dike)的计算流程

提示:

本教程依据的软件版本为 2014 版,不覆盖之后版本软件的新特性和新功能。

本教程主要针对 MIKE 21 FM (Flexible Mesh) 的建模流程,不涉及 MIKE 21 Classic 的建模流程。

教程中提到的MIKE 21 均指 MIKE 21 FM。

教程目录:MIKE 21FM DHI MIKE 软件教程 - 0 - 软件介绍及教程目录

目标:在小型矩形水槽中布置一座丁坝,完成一次二维水动力(HD)计算,并观察结果。

提示:一般来说,MIKE 21的计算流程主要包括:建模及网格生成→参数设置→参数率定及模型验证→求解→结果查看与分析。

本篇教程主要目的为简单了解 MIKE 21的整体计算流程及软件快速上手,不包含参数率定与模型验证部分。

1 问题概述(物理场景)

如图,存在一光滑方形水槽:

  • 长 8 m,宽 1 m,高 0.3 m;

  • 在距离入口 2 m 处存在一丁坝,厚度0.05m,伸出长度0.152m;

  • 入流单宽流量0.048\text {m}^3 / \text{s} ·\text{m},出口控制水深固定0.189 \text{m}

  • 设置槽底高程 -0.3 m,据此,出口及初始自由面高程 -0.111 m(-0.3 + 0.189)。

水槽示意图.jpg

2 网格生成

2.1 划分策略

  • 主要网格尺度:最大单元面积 0.005 m²,最小角:30°;

  • 丁坝表达:将丁坝纳入计算域多边形边界,形成凹入的边界几何。

2.2 软件操作

启动MIKE ZERO→New→Mesh Generator(.mdf)→在弹出的指定地图投影窗口选择“NON-UTM”→在保存.mdf文件。

new_mdf.jpg

mdf_utm.jpg

界面基本操作:

Mesh Generator界面,

  • 缩放:Shift + 鼠标滚轮

  • 平移:Shift + 鼠标左键拖动

  • 工具栏:位于窗口上方(绘制与编辑均在此处完成)。

mdfpage.jpg

绘制计算域边界:

  • 工具:Draw arc

  • 先粗略绘制 8 m × 1 m 的矩形边界,并在距入口 2 m 处添加厚 0.05 m、伸出 0.152 m 的丁坝凹口。此步不要求精确。

drawarc.jpg

image.png

精确调整边界点的位置:

  • 工具:Select point → 右击各顶点 → Properties → 逐点输入坐标。

  • 顶点顺序:自左下角起,逆时针。推荐坐标(单位:m)如下:

x

0

1.975

1.975

2.025

2.025

8

8

0

y

0

0

0.152

0.152

0

0

1

1

rightlocal.jpg

point propertise.jpg

nodelocalright.jpg

定义开边界节点

  • 工具:Select point → 分别在最左侧最右侧边界顶点处右击 → Vertices → Nodes,将其设置为节点(显示为蓝色)。

node.jpgnode right.jpg

设置边界编号:

  • 工具:Select arcs → 右击对应边界线段 → Properties → 设置 Arc attribute

    • 左侧竖向边界(入口)设为 2

    • 右侧竖向边界(出口)设为 3

  • 其余边界保持默认。

selentline.jpg

line2.jpg

加入地形散点并保存:

  • 工具:Add scatter datavalue = -0.30 → 选择保存位置。

  • 在计算域内部及四周均匀点击布设散点,使域周围形成闭合带状覆盖,避免大空缺。

  • 点击 Save Edits 保存散点为 .xyz

high.jpg

insertscatterdata.jpg

insertscatter.jpg

生成网格:

  • 菜单:Mesh → Generate Mesh...

  • 设置:

    • Maximum element area = 0.005

    • Smallest allowable angle = 30

    • Maximum number of nodes = 5000

  • 点击 Generate

    mesh-generate.jpg

    meshgeneration.jpg

mesh0.05.jpg

地形插值到网格:

  • 菜单:Mesh → Interpolate...

  • 设置:

    • Interpolation Method = Linear

    • Extrapolation – constant value = -0.30

  • 点击 Start

interpolation.jpg

导出网格:

  • 菜单:Mesh → Export Mesh...

  • Export As: Mesh File(.mesh) → 选择输出路径与文件名 → OK

savemesh.jpg

3 参数设置与计算

3.1 创建模型文件:


MIKE Zero → New → MIKE 21 → Flow Model FM (.m21fm) → 保存

newmk21fm.jpg

3.2 导入计算网格:

  • 左侧 Domain → 右侧 Mesh and BathymetryMesh file 选择上一步导出的 .mesh

selentmesh.jpg

3.3 参数设置:

  • 时间设置(Time):

    • 左侧选项 Time

      • Time step interval = 1 s

      • No. of time steps = 300

  • 模块选择(Module Selection):

    • 左侧选项 Module Selection:保持仅 HD 勾选。

  • 数值格式(Solution Technique):

    • 左侧选项 Solution Technique

      • Shallow water equations

        • Time integration = Low order, fast algorithm

        • Space discretization = Low order, fast algorithm

        • Minimum time step = 1.0E-5 s

        • Maximum time step = 1 s

        • Critical CFL number = 0.8

      • Transport equations(此处与 HD 保持一致设置)

        • Minimum time step = 1.0E-5 s

        • Maximum time step = 1 s

        • Critical CFL number = 0.8

time1.jpg

module selection.jpg

solution tec.jpg

  • 底床糙率(Bed Resistance):

    • 左侧选项Bed Resistance

      • Resistance type = Manning number

      • Format = Constant

      • Constant value = 100

  • 科里奥利力(Coriolis Forcing):

    • 左侧选项 Coriolis Forcing

      • Coriolis type = No coriolis force

  • 其余保持不变

resit.jpg

cf.jpg

3.4 初始条件(Initial Conditions):

  • 左侧选项 Initial Conditions

    • Type = Constant

    • Surface elevation = -0.111 m

    • u-velocity = 0 m/s

    • v-velocity = 0 m/s

initial.jpg

3.5 边界条件(Boundary Conditions):

  • 左侧选项 Boundary Conditions

    • code2(入口)

      • Type = Specified discharge

      • Format = Constant

      • Constant value = 0.048 m²/s

    • code3(出口)

      • Type = Specified level

      • Format = Constant

      • Constant value = -0.111 m

in.jpg

out.jpg

3.6 结果输出(Output):

  • 左侧 OutputNew output 新建 output 1 → 在新行最右侧 Go to

    • Output specification选项卡

      • Field type = 2D (horizontal)

      • Output format = Area series

      • Output file = 2DArea.dfsu

      • Time stepstart = 0last = 300Frequency = 1

    • Output items 选项卡勾选:

      • Surface elevation

      • Total water depth

      • U velocity

      • V velocity

      • Current speed

newoutput.jpg

output1.jpg

items.jpg

3.7 计算(Run)

  • 菜单 Run → Start simulation... → 选项卡 Parallelization:勾选 Use shared memory approach (OpenMP)OK 开始计算。

run.jpg

4 结果查看

计算完毕后,左侧菜单 Output → 点击 output 1后的 View 打开结果浏览器

view.jpg

结果项选择:顶部下拉菜单在 Surface elevation / Total water depth / U velocity / V velocity / Current speed 之间切换。

时间控制:单箭头为前后一个时间步;双箭头为跳至首/末时间步。

基本交互操作:

  • 缩放:Shift + 鼠标中键滚轮

  • 平移:Shift + 鼠标左键拖动

  • 右击菜单 Vectors 可显示速度矢量。步。

viewoutput.jpg

观察结果:

  • 入口断面平均流速估算:

\bar{u} \approx \frac{q}{h} = \frac{0.048~\mathrm{m}^2\,·\mathrm{s}^{-1}}{0.189~\mathrm{m}} \approx 0.254~\mathrm{m}\,·\mathrm{s}^{-1}

水流进入丁坝前断面平均流速是否约为0.254\mathrm{m}\,·\mathrm{s}^{-1}在丁坝前可能出现壅水,数值结果略低于该值属合理情况。

  • 丁坝尾部应出现回流区与尾涡,速度矢量应显示局地环流结构。。

output-000.jpg

output-001.jpg

附录

建议的目录结构:

.../Working Directory/

├─ mdf/

│ ├─ spur.mdf

│ └─ spur.xyz

├─ mesh/

│ └─ spur.mesh

└─ model/

├─ spur.m21fm

└─ spur.m21fm - Result Files(此文件夹及其内容为自动生成的)

└─ 2DArea.dfsu