非静压模型NHWAVE学习(8)——波浪破碎模拟算例学习(Breaking solitary wave run-up)

NHWAVE波浪破碎模拟算例学习(Breaking solitary wave run-up)

本blog介绍了NHWAVE模型自带算例 Breaking solitary wave run-up 的编译运行;并分享了该算例配置文件、模拟结果的学习记录。
关于该算例的详细描述见NHWAVE手册或Ma等人的论文 1

此外,本人在NHWAVE原版源代码基础上,更新了垂向网格分层百分比可指定、被动示踪剂输移、温度场输入输出等模块,并修正了植被水流模型中的一些BUG。有兴趣的朋友请上我的GitHub下载代码。

欢迎各位朋友对此提出指导意见;大家可以一起交流,共同进步!

算例简介

该算例模拟的是孤立波靠近斜坡时发生的变形与破碎。这个算例也是广泛地应用于检验模型对破碎波和干湿过程的模拟能力。相应的物理实验详见 Synolakis. (1987) 2
模拟所需参数文件和初始水深文件在代码包 /examples/solitary_wave_breaking 目录下。

地形与网格

本算例的计算域是一个垂向二维的水槽,如下图所示。在初始时刻,孤立波从左侧边界进入水域;计算域右侧是一个坡角为β的斜坡面,坡度为1/20。
初始时刻水深 d = 0.21 m,初始波浪振幅 A = 0.0588 m,波高水深比为0.28。此外,整个水槽水平方向长 11.0 m (39.04d < x < 13.33d);斜坡坡脚位于 x = 4.0 m 处(即图示 x = -20d 处)。
在这里插入图片描述
在模型中,我们设置550个水平均匀网格(Δx = 0.02 m)和3个均匀的垂向σ层。以上网格的部分我们在input.txt中设定。

! --------------------DIMENSION---------------------------------
! cell numbers
Mglob = 550
Nglob = 1
Kglob = 3
! ------------------------GRID----------------------------------
! grid sizes
DX = 0.02
DY = 0.02
! ---------------------VERTICAL GRID OPTION--------------------
! IVGRD = 1: uniform; 2: exponential
IVGRD = 1
GRD_R = 1.1

运行参数配置

首先需要确定边界条件。在本例中,左侧为波浪入射边界;右侧及地边界均为滑移边界(free-slip)。边界条件设定见 input.txt 的 BOUNDARY_TYPE 部分。

! -------------------BOUNDARY_TYPE--------------------------------
! bc_type=1: free-slip
!         2: no-slip
!         3: influx
!         4: outflux (specified eta)
!         5: bottom or wall friction
!         6: radiation bc
BC_X0 = 3
BC_Xn = 1
BC_Y0 = 1
BC_Yn = 1
BC_Z0 = 1
BC_Zn = 1

孤立波的参数在 input.txt 的 WAVEMAKER 部分中设定(对于孤立波,其控制作用的参数只有AMP和DEP)。

! ---------------------WAVEMAKER------------------------------
! wavemaker
! AMP - wave height; PER - wave period; DEP - incident water depth
! THETA - incident wave angle
! LEF_SOL - left boundary solitary wave, need AMP,DEP
! LEF_LIN - left boundary linear wave, need AMP,PER,DEP
! LEF_CON - left boundary cnoidal wave, need AMP,PER,DEP
! LEF_STK - left boundary stokes wave, need AMP,PER,DEP
! LEF_TID - left boundary tide wave, has to specify in subroutine
! LEF_JON - left boundary for JONSWAP spectrum
! RIG_LIN - right boundary linear wave, need AMP,PER,DEP,THETA
! INI_ETA - initial surface elevation specified in subroutine initial
! INT_LIN - internal wavemaker for linear wave
! INT_CON - internal wavemaker for cnoidal wave
! INT_SOL - internal wavemaker for solitary wave
! INT_JON - internal wavemaker for JONSWAP spectrum
! INT_SPC - internal wavemaker for 2D spectrum (need spc2d.txt)
! INT_IRR - internal wavemaker for irregular wave (need irr2d.txt)
! FLUX_LR - impose flux at both left and right boundaries
! FOCUSED - left boundary focusing wave packet (isolated whitecap)
! WAV_CUR - left boundary coexisting waves and currents
WAVEMAKER = LEF_SOL
AMP = 0.0588
PER = 1.0
DEP = 0.21
THETA = 0.0
CUR = 0.0
sd_return = 0.0

此外,本模拟算例强调了斜坡上网格的干湿变化。在模型中,我们设定网格的干湿分界点为0.005 m。当网格的计算水位低于0.005 m,该网格将被标记为干网格,不参与下一步的计算;若某个干网格由于相邻网格水流流入而使得计算水位大于0.005 m 时,干网格才可被重新激活,进入下一步的计算中。详细的算法详见Ma等人的论文 1。干湿水深的设定见 input.txt 的 WET-DRY 部分。

! ----------------------WET-DRY-------------------------------
! minimum depth for wetting-drying
MinDep = 0.005

模型的编译运行

首先,将代码包 /examples/solitary_wave_breaking 目录下的 input.txt 和 depth.txt 复制到 nhwave 所在的运行文件夹内。之后设定并行相关的参数,编译运行程序。

模拟结果处理

将模拟结果与 Synolakis. (1987) 2的实验数据比较。得到对比图如下(图源NHWAVE手册):
在这里插入图片描述
在上图中,蓝色实线代表模拟结果,蓝色圆圈代表实验结果;各子图的对应了不同时间的结果。图(a)和图(b)显示了孤立波的浅滩化过程。当水深降低时,波浪变得更加不对称,波高也随之增加。在一段时间后,波开始破碎,如图©所示,波的形态发生显著变化,波高迅速降低。当波浪的锋面向海岸线移动时,海浪不断地破碎。当波浪前缘经过干的海岸线后,波浪就会坍塌,随之的波浪爬升过程就开始了。爬升过程如图(d)和(e)所示。当波浪爬升到最高点后,波的前缘开始出现下降,如图(f)所示。

NHWAVE模拟结果与实验数据比较良好。这表明NHWAVE能很好的模拟孤立波的浅滩化、破碎、上升和下降过程。


  1. Ma G , Shi F , Kirby J T . Shock-capturing non-hydrostatic model for fully dispersive surface wave processes[J]. Ocean Modelling, 2012, 43-44(22-35):22-35. ↩︎ ↩︎

  2. Synolakis C E . The runup of solitary waves[J]. J Fluid Mechanics, 1987, 185:523-545. ↩︎ ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值