提示:
本教程依据的软件版本为 2014 版,不覆盖之后版本软件的新特性和新功能。
本教程主要针对 MIKE 21 FM (Flexible Mesh) 的建模流程,不涉及 MIKE 21 Classic 的建模流程。
教程中提到的MIKE 21 均指 MIKE 21 FM。
目标:在小型矩形水槽中布置一座丁坝,完成一次二维水动力(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)。

2 网格生成
2.1 划分策略
主要网格尺度:最大单元面积 0.005 m²,最小角:30°;
丁坝表达:将丁坝纳入计算域多边形边界,形成凹入的边界几何。
2.2 软件操作
启动MIKE ZERO→New→Mesh Generator(.mdf)→在弹出的指定地图投影窗口选择“NON-UTM”→在保存.mdf文件。


界面基本操作:
Mesh Generator界面,
缩放:Shift + 鼠标滚轮
平移:Shift + 鼠标左键拖动
工具栏:位于窗口上方(绘制与编辑均在此处完成)。

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


精确调整边界点的位置:
工具:Select point → 右击各顶点 → Properties → 逐点输入坐标。
顶点顺序:自左下角起,逆时针。推荐坐标(单位:m)如下:



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


设置边界编号:
工具:Select arcs → 右击对应边界线段 → Properties → 设置 Arc attribute:
左侧竖向边界(入口)设为 2;
右侧竖向边界(出口)设为 3。
其余边界保持默认。


加入地形散点并保存:
工具:Add scatter data →
value = -0.30→ 选择保存位置。在计算域内部及四周均匀点击布设散点,使域周围形成闭合带状覆盖,避免大空缺。
点击 Save Edits 保存散点为 .xyz。



生成网格:
菜单:Mesh → Generate Mesh...
设置:
Maximum element area = 0.005
Smallest allowable angle = 30
Maximum number of nodes = 5000
点击 Generate



地形插值到网格:
菜单:Mesh → Interpolate...
设置:
Interpolation Method = Linear
Extrapolation – constant value = -0.30
点击 Start

导出网格:
菜单:Mesh → Export Mesh...
Export As: Mesh File(.mesh) → 选择输出路径与文件名 → OK

3 参数设置与计算
3.1 创建模型文件:
MIKE Zero → New → MIKE 21 → Flow Model FM (.m21fm) → 保存

3.2 导入计算网格:
左侧 Domain → 右侧 Mesh and Bathymetry → Mesh file 选择上一步导出的 .mesh。

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



底床糙率(Bed Resistance):
左侧选项Bed Resistance
Resistance type = Manning number
Format = Constant
Constant value = 100
科里奥利力(Coriolis Forcing):
左侧选项 Coriolis Forcing
Coriolis type = No coriolis force
其余保持不变


3.4 初始条件(Initial Conditions):
左侧选项 Initial Conditions
Type = Constant
Surface elevation = -0.111 m
u-velocity = 0 m/s
v-velocity = 0 m/s

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


3.6 结果输出(Output):
左侧 Output → New output 新建 output 1 → 在新行最右侧 Go to:
Output specification选项卡
Field type = 2D (horizontal)
Output format = Area series
Output file = 2DArea.dfsu
Time step:start = 0,last = 300,Frequency = 1
Output items 选项卡勾选:
Surface elevation
Total water depth
U velocity
V velocity
Current speed



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

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

结果项选择:顶部下拉菜单在 Surface elevation / Total water depth / U velocity / V velocity / Current speed 之间切换。
时间控制:单箭头为前后一个时间步;双箭头为跳至首/末时间步。
基本交互操作:
缩放:Shift + 鼠标中键滚轮
平移:Shift + 鼠标左键拖动
右击菜单 Vectors 可显示速度矢量。步。

观察结果:
入口断面平均流速估算:
水流进入丁坝前断面平均流速是否约为0.254\mathrm{m}\,·\mathrm{s}^{-1}在丁坝前可能出现壅水,数值结果略低于该值属合理情况。
丁坝尾部应出现回流区与尾涡,速度矢量应显示局地环流结构。。


附录
建议的目录结构:
.../Working Directory/
├─ mdf/
│ ├─ spur.mdf
│ └─ spur.xyz
├─ mesh/
│ └─ spur.mesh
└─ model/
├─ spur.m21fm
└─ spur.m21fm - Result Files(此文件夹及其内容为自动生成的)
└─ 2DArea.dfsu