三维孤立波在锥形岛屿上的爬坡过程(Runup of solitary waves on a conical island)
- 算例简介
- 模型配置
- 网格及参数设置
- 网格与地形
- 初始条件与边界条件
- 数值求解方法
- 输出设置
- 模拟时间
- 波浪(孤立波)入射边界的时间序列.bnd文件
- 模拟结果
- 注意
SWASH是由Delft大学开发,用于模拟非静压条件下的水动力/波浪运动的数值模型。
与模型原理相关的内容详见以下论文:
- SWASH: An operational public domain code for simulating wave fields and rapidly varied flows in coastal waters (Marcel Zijlema, Guus Stelling, Pieter Smit)1
- Computation of free surface waves in coastal waters with SWASH on unstructured grids (Marcel Zijlema)2
- An accurate and efficient finite-difference algorithm for non-hydrostatic free-surface flow with application to wave propagation3
其中,第2篇论文是描述了SWASH模型的最新功能,即可支持非结构化三角形网格。不过,本blog提及的算法、设置以swash结构化网格的版本为对象,不涉及非机构化网格。
注:有些指令、参数已经在前面的博客中进行讲解了,故之后不会再详细说明;相关内容详见之前的博文。也希望大家能留言,来相互交流!
SWASH主页:https://swash.sourceforge.io/
模型手册:https://swash.sourceforge.io/online_doc/swashuse/swashuse.html
算例简介
本算例模拟了表面孤立波在经过一个圆锥形岛屿时候的波形演变,其中还涉及了内孤立波传播、爬坡等过程。本例的模型配置详见Stelling&Zijlema3和Briggs et al. (1982)4。
模型输入文件及相关数据可下载于【传送门】。若要运行此算例,请将此下载的压缩文件解压,将含有.sws、 .bot和 .bnd后缀的所有文件解压至swash.exe所在的目录下。
模型配置
模拟区域长Lx = 25.0m,宽Ly = 30.0m,如下图所示。计算域内有一高为0.625m的圆台,圆台中心的坐标为(x, y) = (12.96m, 13.80m);圆台顶面的直径为2.2m,底面直径为7.2m。孤立波从左边界x = 0处射入,波高与水深的比值设置为H/h = = 0.045、0.096和0.181,静止水深h = 0.32m。
此外,模型区域中有若干测点,如下图中蓝点所示。本次实验涉及的测点有:
测点编号 | x坐标/m | y坐标/m |
---|---|---|
‘gauge3’ | 6.82 | 13.05 |
‘gauge6’ | 9.36 | 13.80 |
‘gauge9’ | 10.36 | 13.80 |
‘gauge16’ | 12.96 | 11.22 |
‘gauge22’ | 15.56 | 13.80 |
网格及参数设置
本节将以H/h = 0.096所对应工况的实验为例,介绍模型运行步骤及运行结果。各工况对应的.sws配置文件类似。
网格与地形
本算例的参数文件中省略了MODE和vert,故采用默认设置 MODE TWODimensional和VERT 1,即该数值模型为平面的二维模型。
CGRID 0. 0. 0. 25. 30. 500 600
$
INPGRID BOTTOM 0. 0. 0. 500 600 0.05 0.05
READINP BOTTOM 1. 'l51conic.bot' 3 0 FREE
计算域的原点为(0.0, 0.0),两个方向的长度分别为25.0m和30.0m。x方向和y方向的网格数分别为500和600,即Δx=0.05m、Δy=0.05m。
之后,通过INPGRID和READINP指令,从文件’l51conic.bot’中读取地形数据。
初始条件与边界条件
INIT zero
$
BOU SIDE W CCW BTYPE WEAK CON SERIES 'l51con02.bnd'
BOU SIDE E CCW BTYPE RADIATION
INIT指令设定初始条件,即初始时水位和流速值均为零。
BOU指令设定了模型的左侧(West, x=0)和右侧(East, x=25.0m)边界的边界条件。首先,孤立波从左侧入射,其类型为弱反射(WEAKREFL);对于这种类型的边界,我们需要指定边界处的水位值,而且该边界水位值的时间序列(SERIES)在l51con02.bnd文件中。该文件中时间序列的格式如下,即该文件中含有两列数据,第一列表示时间,第二列表示对应的水位值。
对于右侧边界,本模型采用了辐射边界(RADIATION),以使得孤立波能向右传出右侧边界,壁面右侧边界的波浪反射影响到计算域。
数值求解方法
BREAK
NONHYDROSTATIC
$
DISCRET UPW FIRST
DISCRET CORRDEP FIRST
首先,模型采用了非静压模拟(NONHYDrostatic)的方法,并在计算中考虑了波浪破碎引起的能量耗散(BREAK)。对于BREAK指令更多的内容详见SWASH手册。
对于水平流速,模型采用一阶迎风格式(UPWind FIRST)进行计算;对于水位,模型也采用一阶格式进行重构与计算(CORRDEP FIRST)。
输出设置
POINTS 'gauge3' 6.82 13.05
POINTS 'gauge6' 9.36 13.80
POINTS 'gauge9' 10.36 13.80
POINTS 'gauge16' 12.96 11.22
POINTS 'gauge22' 15.56 13.80
$
TABLE 'gauge3' NOHEAD 'gauge3.tbl' TSEC WATL OUTPUT 000000.000 0.01 SEC
TABLE 'gauge6' NOHEAD 'gauge6.tbl' TSEC WATL OUTPUT 000000.000 0.01 SEC
TABLE 'gauge9' NOHEAD 'gauge9.tbl' TSEC WATL OUTPUT 000000.000 0.01 SEC
TABLE 'gauge16' NOHEAD 'gauge16.tbl' TSEC WATL OUTPUT 000000.000 0.01 SEC
TABLE 'gauge22' NOHEAD 'gauge22.tbl' TSEC WATL OUTPUT 000000.000 0.01 SEC
$
GROUP 'COMPGRD' 1 501 1 601
BLOCK 'COMPGRD' NOHEAD 'l51con02.mat' LAY 3 XP YP HRUNUP
输出的结果文件有两类。第一类是TABLE所对应的时间序列文件(.tbl),它输出了某一点水位的时间序列。第二类是.mat文件,它包含了整个计算域内的波浪爬升高度(HRUNUP)。
模拟时间
TEST 1,0
COMPUTE 000000.000 0.01 SEC 000025.000
STOP
模型计算时间为 25.0s,时间步长为 0.01s。
波浪(孤立波)入射边界的时间序列.bnd文件
本实验中,孤立波波面方程采用Laitone (1960)5得出的解:
η
=
H
s
e
c
h
2
[
3
4
H
h
3
(
x
0
−
c
t
)
]
c
=
g
(
H
+
h
)
x
0
=
4
h
H
/
h
\eta = H sech^2[\sqrt{\dfrac{3}{4}\dfrac{H}{h^3}}(x_0-ct)] \\[6pt] c = \sqrt{g(H+h)} \\[6pt] x0 = \dfrac{4h}{\sqrt{H/h}}
η=Hsech2[43h3H(x0−ct)]c=g(H+h)x0=H/h4h
模拟结果
本节将以H/h = 0.181所对应工况的实验为例,介绍模型运行步骤及运行结果。
首先,运行数据包中的InputFileMaker4SWASH_L51con.m脚本,以生成地形数据文件(.bot)和边界数据文件(.bnd)。之后,将参数文件l51con02.sws,以及地形数据文件l51con02.bot 和孤立波边界水位时间序列l51con02.bnd复制到swash.exe的同一目录下。并在这个目录下,用如下指令运行:
swashrun l51con02
随后,利用mkplot.m将数据结果可视化。各测点的水位过程如下:
t = 6、8、10、12s时刻的水位空间分布如下:
注意
- 若想改变波浪参数或运行别的工况,可以通过改变InputFileMaker4SWASH_L51con.m脚本内的数据并重新生成生成地形数据文件(.bot)和边界数据文件(.bnd),之后再用这批新的文件运行模型。
- 模型实验数据见Stelling&Zijlema3和Briggs et al. (1982)4。
https://doi.org/10.1016/j.coastaleng.2011.05.015 ↩︎
https://doi.org/10.1016/j.compfluid.2020.104751 ↩︎
https://doi.org/10.1002/fld.595 ↩︎ ↩︎ ↩︎
Briggs, M.J., Synolakis, C.E., Harkins, G.S. et al. Laboratory experiments of tsunami runup on a circular island. PAGEOPH 144, 569–593 (1995). https://doi.org/10.1007/BF00874384 ↩︎ ↩︎
Laitone, E.V., 1960. The second approximation to cnoidal and solitary waves. J. Fluid
Mech. 9 (03), 430–444 ↩︎