非静压模型NHWAVE学习(11)——孤立波爬坡测试算例(Solitary Wave on a Simple Beach)

本blog介绍了NHWAVE代码包中的几个基准测试算例。这几个算例都基于同一个孤立波传播、爬坡的基本模型,且包含了模型结果与解析解、实验结果的比较。

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

测试算例简介

该算例模拟了一维孤立波的传播和在斜面上爬升,并将它们与该问题的解析解和实验室结果相比较,以验证模型的有效性。关于该实验的解析解与实验室结果详见 Synolakis (1987)1
模拟所需参数文件和初始水深文件在代码包 /examples/landslide_benchmarks/inundation_benchmarks 目录下。其中,与解析解相关的模拟文件在 Solitary_wave_on_a_simple_beach_analytical 文件夹中,与实验室实验相关的模拟文件在 Solitary_wave_on_a_simple_beach_laboratory 文件夹中。

实验设置

模型区域为一个带斜坡的数值水槽,实验设置及几何参数如下图所示。实验中所研究的孤立波为上凸波,高度为H,初始水深为d;在初始时刻,其中心位置距离坡脚L。参考系坐标原点位于离坡脚水平距离x0的位置,角度β = arccot(19.85)。注意,这个x的方向是朝左的。
在这里插入图片描述

与解析解对比的模拟(Analytical Solution)

在此数值实验中,这些几何参数的关系如下:
L = d ⋅ a r c c o s h ( 20 ) / γ η ( x , 0 ) = H s e c h 2 ( γ ( x − x 1 ) / d ) x 1 = x 0 + L γ = 3 H / 4 d L=d \cdot arccosh( \sqrt{20})/γ \\ η(x, 0) = H sech^2 (γ(x − x_1)/d) \\ x_1 = x_0+L \\ γ = \sqrt{3H/4d} L=darccosh(20 )/γη(x,0)=Hsech2(γ(xx1)/d)x1=x0+Lγ=3H/4d
本算例的重点是对入射的非破碎孤立波进行模拟,并满足条件 H/d = 0.019。此外,波的初始速度满足:
u ( x , 0 ) = − g / d   η ( x , 0 ) . u(x, 0) = −\sqrt{g/d} \space η(x, 0). u(x,0)=g/d  η(x,0).

本内容可被分成以下两部分:

  1. 模拟孤立波的最大爬升高度,并与解析解比较(runup_law)
  2. 模拟水位的时空变化,并与解析解比较(time_solution)

最大爬升高度的模拟(max runup)

设置初始水深d = 0.5m,波高H/d=0.03;水槽总长为60m,其中平床水槽长 L = 40m。对应模型的参数设置详见 /runup_law/input-1_d0.5_Hd0.03_beta10 文件夹中的 input.txt 和 depth.txt。
在模型中,水平向网格尺寸为 Δx = 0.05 m,垂向上分为4个σ层。计算域左侧为孤立波的输入边界,底面为自由滑移边界。此外,模型中还采用了RNG k-ε紊流模型。
模拟结束后,可利用 /runup_law 文件夹中的两个MATLAB脚本分析模拟结果。
首先是波浪最大爬坡高度的模拟结果与解析解的对比。打开并运行RUNUPLINE.m,得到如下图所示的对比结果图。
在这里插入图片描述
可见,模拟结果的精度很高。此外,output_hmax.m脚本还计算了模拟结果与解析解之间的对比误差;先把结果文件中的hmax_00400复制到与output_hmax.m同目录下,后运行output_hmax.m,得到相对偏差5.5023%。

水位的时空变化模拟(Water profiles and time histories of surface elevation)

本例模拟了一个三维水槽,其总长为75.0m,平床水槽长 L = 40.25m,宽为0.5m。设置水平向网格尺寸Δx = Δy = 0.05 m。水槽的左侧为孤立波入射边界,其余侧面和底面均为自由滑移边界。此外,模型中还采用了RNG k-ε紊流模型。对于左侧的入射波,设置初始水深d = 1.0 m,波高H/d = 0.019。对应模型的参数设置详见 /time_solution/input 文件夹中的 input.txt 和 depth.txt。
模拟结束后,可利用 /time_solution 文件夹中的MATLAB脚本分析模拟结果。
首先是不同时刻水面线的比较,如下图所示,实线为模拟结果(通过运行ETA_Liner.m提取结果数据),红圈为解析解(数据来自/time_solution 文件夹中的analytical_SW.mat)。
在这里插入图片描述
另一个脚本Time_Liner.m对比了 x/d = 0.25(红)和9.95(黑)处水位随时间的变化。其中实线是模拟结果,数据来自结果文件probe_0001和probe_0002;圆圈为实验结果,数据来自/time_solution 文件夹中的analytical_RU.mat。
在这里插入图片描述

与实验室结果对比的模拟

本案例对应的物理实验来自加州理工大学波浪水槽。该水槽长31.73m、深60.96cm、宽39.97cm。水箱底部由涂漆的不锈钢板组成。在水槽的一端有一个斜坡,坡道的坡度为1:19.85(即cot β =19.85). 。实验装置的立面示意图与上图相同;其中的几何参数为:
L = d ⋅ a r c c o s h ( 20 ) / γ γ = 3 H / 4 d c o s h − 1 a = l o g ( a + a 2 − 1 ) η ( x , 0 ) = H s e c h 2 ( γ ( x − x 1 ) / d ) x 1 = x 0 + L L=d \cdot arccosh( \sqrt{20})/γ \\ γ = \sqrt{3H/4d}\\ cosh^{-1} a=log(a+\sqrt{a^2 - 1})\\ η(x, 0) = H sech^2 (γ(x − x_1)/d) \\ x_1 = x_0+L L=darccosh(20 )/γγ=3H/4d cosh1a=log(a+a21 )η(x,0)=Hsech2(γ(xx1)/d)x1=x0+L
初始条件为:
η ( x , 0 ) = H / c d o t s e c h 2 ( γ ( x − x 1 ) / d ) u ( x , 0 ) = − η ( x , 0 ) ⋅ g / d η(x, 0) = H /cdot sech^2 (γ(x − x_1)/d) \\ u (x,0) = -\eta(x,0) \cdot \sqrt{g/d} η(x,0)=H/cdotsech2(γ(xx1)/d)u(x,0)=η(x,0)g/d
在模型中,我们依旧建立一个长为75.0m的右侧带斜坡的立面二维数值水槽。其中,平床段长 L = 40.25 m。
实验中设置平床段的初始水深为1.0 m,H/d分别为0.0185和0.30。对于边界条件,左侧为孤立波输入边界,底面粗糙高度为0.0001m。此外,模型采用了RNG k-ε紊流模型。
对应模型的参数设置详见 /examples/Solitary_wave_on_a_simple_beach_laboratory/H_d_0.0185/input 文件夹和 /examples/Solitary_wave_on_a_simple_beach_laboratory/H_d_0.030/input 文件夹中的 input.txt 和 depth.txt。模拟结束后,可利用文件夹中的MATLAB脚本分析模拟结果。
首先是对于H/d = 0.0185的算例,/H_d_0.0185/ETA_Liner_BP1_A.m脚本能够提取几个时间段的水面线数据;模拟结果与实验结果(实验结果数据来自SW_01_00185.mat中)的比较如下图所示。图中实线表示模拟结果,小圆圈表示实验结果。
在这里插入图片描述
同理,对于 H/d = 0.30 算例,可以得到如下图的结果比较。其中的模型结果采用 /H_d_0.03/ETA_Liner_BP1_B.m 脚本提取,实验数据来自 SW_01_03.mat 文件。图中实线表示模拟结果,小圆圈表示实验结果。
在这里插入图片描述


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值