非静压模型NHWAVE学习(12)——复杂地形下波浪爬坡测试算例(Runup onto a complex 3-D beach)

复杂地形下波浪爬坡测试算例(Runup onto a complex 3-D beach)

本blog介绍了NHWAVE代码包中的几个基准测试算例。这几个算例都基于一个复杂地形条件下波浪爬升的基本模型;且该blog包含了模型结果与实验结果的比较。

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

算例简介

该算例模拟了三维波浪的传播和在岸滩上的爬升过程,并将它们与该问题的解析解和实验室结果相比较。该物理实验是日本Abiko中央电气研究所进行的一项大型水槽实验,以模拟Monai附近复杂海滩上长波的爬高。与实际的海滩相比,实验室水槽中的海滩比例尺为1:400,入射波是由远离岸线的波浪桨叶产生,并通过压力计在多个位置记录水位变化过程。
模拟所需参数文件和初始水深文件在代码包 /examples/landslide_benchmarks/Runup_onto_a_complex_3-D_beach_Monai_Valley 目录下。其中,模拟的参数文件在 input 文件夹中,部分实验数据在 /time_solution 文件夹中。
关于该物理实验的更多信息参考文献[1]1

实验设置

实验水槽如下图所示。其中,左侧设置有造波装置,前后两侧均为固体壁面;红色箭头指示了水位监测点的位置。在数值模型中,实验区域在x方向长5.488m、y方向宽3.402m。该实验重点观察了海岸线的时空变化。实验照片详见 frames/video_frames 文件夹内的图片。拍摄图片横向范围大致对应于计算区域4.7≤ x≤ 5.2 (m) 和 1.5≤ y≤ 2.2 (m)。
在这里插入图片描述
数值模型为三维模型。计算区域水平向网格尺寸为0.014m,垂向均分了4个σ层;其中,x方向网格工492个,y方向网格数243。对于模型的边界条件,在x=0采用了波浪入射边界,x=5.5m、y=0m和y=3.4m边界上采用滑移壁面边界,底面的粗糙高度取0.0001m。对于该模型中的波浪边界,在 t=0~22.5s 时,波浪正常入射;但在过了 t=22.5s 后,波浪入射停止,左侧边界可视为一固体壁面。

参数设置

本算例的参数设置与其它波浪水槽算例类似,而唯一特殊的是入射波参数的设置。由于入射波仅发生于模拟的前22.5s,而非孤立波或持续不断的波列的形式,故本例中考虑采用内部波浪边界方式向数值水槽中加入波浪。在NHWAVE模型中,我们采用 internal wavemaker for irregular wave 的入射边界,具体参数设置如下:

! ---------------------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 = INT_IRR
AMP = 0.001
PER = 10.5
DEP = 0.135
THETA = 0.0
CUR = 0.0
sd_return = 0.75

在这样的设置下,波浪的具体参数需要通过 irr2d.txt文件给定。irr2d.txt文件的格式如下:

[NumFreq]  [NumDir]
[Freq_1]
[Freq_2]
...
[Freq_NumFreq]
[Dir_1]
[Dir_2]
...
[Dir_NumDir]
[Spc2d_1]
[Spc2d_2]
...
[Spc2d_(NumFreq×NumDir)]
[RandomPhs_1]
[RandomPhs_2]
...
[RandomPhs_(NumFreq×NumDir)]

第一行有两个整数,NumFreq 和 NumDir,它们分别代表输入的波浪频率的个数和波浪入射方向(角度)个数。以本算例为例,模型中所用的频率序列共一个,即所设定一个角度入射的波浪,且每个序列的频率个数为399;这1×399个频率输入在Freq的位置,每行一个数。输入Freq后,下一行填入Dir_1(因为本例中方向数为1,所以只用填一个)。下面展示一下本例中的Freq序列,为一个等差数列。
在这里插入图片描述
之后根据这个频率大小,给出每个点所对应的频谱(振幅,Spc2d)以及随机参数(相位角,RandomPhs)。这些数据也都是每行一个,然后按照入射方向的顺序,依次输入NumFreq个频谱(或相位角)。
下图即所对应的频谱输入数据。
在这里插入图片描述
下图即所对应的相位角输入数据。
在这里插入图片描述

模拟结果

将/input文件夹中的文件复制到nhwave编译模型所在文件夹。编译后运行nhwave。最终得到三个监测点的模拟结果,及其与测量结果的对比(如下图)。
在这里插入图片描述


  1. Liu P , Yeh H , Synolakis C E . Advanced numerical models for simulating tsunami waves and runup[M]. WORLD SCIENTIFIC, 2008. ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值