非静压模型SWASH学习(8)——三维孤立波在锥形岛屿上的爬坡过程(Runup of solitary waves on a conical island)

三维孤立波在锥形岛屿上的爬坡过程(Runup of solitary waves on a conical island)

  • 算例简介
  • 模型配置
  • 网格及参数设置
    • 网格与地形
    • 初始条件与边界条件
    • 数值求解方法
    • 输出设置
    • 模拟时间
  • 波浪(孤立波)入射边界的时间序列.bnd文件
  • 模拟结果
    • 注意

SWASH是由Delft大学开发,用于模拟非静压条件下的水动力/波浪运动的数值模型。
与模型原理相关的内容详见以下论文:

  1. SWASH: An operational public domain code for simulating wave fields and rapidly varied flows in coastal waters (Marcel Zijlema, Guus Stelling, Pieter Smit)1
  2. Computation of free surface waves in coastal waters with SWASH on unstructured grids (Marcel Zijlema)2
  3. 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坐标/my坐标/m
‘gauge3’6.8213.05
‘gauge6’9.3613.80
‘gauge9’10.3613.80
‘gauge16’12.9611.22
‘gauge22’15.5613.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 (x0ct)]c=g(H+h) x0=H/h 4h

模拟结果

本节将以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时刻的水位空间分布如下:
在这里插入图片描述

注意

  1. 若想改变波浪参数或运行别的工况,可以通过改变InputFileMaker4SWASH_L51con.m脚本内的数据并重新生成生成地形数据文件(.bot)和边界数据文件(.bnd),之后再用这批新的文件运行模型。
  2. 模型实验数据见Stelling&Zijlema3和Briggs et al. (1982)4

  1. https://doi.org/10.1016/j.coastaleng.2011.05.015 ↩︎

  2. https://doi.org/10.1016/j.compfluid.2020.104751 ↩︎

  3. https://doi.org/10.1002/fld.595 ↩︎ ↩︎ ↩︎

  4. 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 ↩︎ ↩︎

  5. Laitone, E.V., 1960. The second approximation to cnoidal and solitary waves. J. Fluid
    Mech. 9 (03), 430–444 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5 SVG: 探索矢量图形的新纪元

HTML5 SVG: 探索矢量图形的新纪元 引言 HTML5,作为现代网页开发的核心技术之一,极大地推动了网页内容的丰富性和交互性。在HTML5的众多特性中,SVG(可缩放矢量图形)发挥着重要作用,它允许开发者创建复杂、响应式的矢量图形,这些图形在任何分辨率下都能保持清晰。本文将…

服务器推送有几种方式,分别有什么优缺点

服务器推送主要有以下几种方式: 长轮询(Long Polling): 优点: 相对简单易实现。能够在一定程度上减少无效的请求,降低服务器资源消耗。 缺点: 仍然存在一定的延迟。如果连接意外中断&#xff…

[吃瓜教程]南瓜书第4章决策树

1.决策树的算法原理 从逻辑角度,条件判断语句的组合;从几何角度,根据某种准则划分特征空间; 是一种分治的思想,其最终目的是将样本约分约纯,而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …

Mamba项目实战-Ubuntu

注:演示环境需要一个可用的cuda环境,可执行两个命令进行验证 1.nvidia-smi 2.nvcc -V 若出现正确输出,可继续博客以下的操作步骤,否则请确认是否已经安装或已配置环境变量,若未安装则转到博客:深度学习项…

mac安装达梦数据库

参考:mac安装达梦数据库​​​​​​ 实践如下: 1、下载达梦Docker镜像文件 同参考链接 2、导入镜像 镜像可以随便放在某个目录,相当于安装包,导入后就没有作用了。 查找达梦镜像名称:dm8_20240613_rev229704_x86…

第1章 人工智能的基础概念与应用导论

亲爱的读者朋友们,你们好!欢迎来到这个充满神奇与奥秘的人工智能世界。我知道,对于很多人来说,人工智能(AI)可能是个既神秘又高大上的词汇,仿佛遥不可及,只存在于科幻电影或者顶级科…

Figma-ui设计学习APP Store

Figma汉化:Figma 中文社区_插件组件库,软件汉化教程 - Figma.Cool 选择Chorme汉化版离线包 插件安装: 打开浏览器安装扩展,解压加载进去即可。 打开标尺,设置左右内边距参考线(左21 右356),wi…

Java使用分布式实现数据库读写分离

配置主从复制:在MySQL中,可以通过配置主从复制来实现数据同步。将一个节点作为主节点(Master),其他节点作为从节点(Slave)。当主节点上的数据发生变化时,自动将变更内容同步到所有从…

JS面试题6——深拷贝和浅拷贝

它们都是用来复制的 1. 浅拷贝(只复制引用,而未复制真正的值) /* 简单赋值 */ var arr1 [a, b, c, d]; var arr2 arr1; /* Object.assign实现的也是浅拷贝 */ var obj1 {a:1, b:2} var obj2 Object.assign(obj1); 2. 深拷贝(是…

C++ 预处理器定义

目录 一、什么是预处理器定义 二、常见用法 1. 条件编译 2. 宏定义 3. 防止重复包含 4. 动态链接库的导入导出 5、如何设置预处理器定义 一、什么是预处理器定义 预处理器定义(Preprocessor Definitions)在C和C编程中用于在编译过程中进行文本替换…

华为OCR识别技术 [C#]

了解华为OCR识别技术 光学字符识别(OCR,Optical Character Recognition)是一种将印刷或手写的文本字符转换为机器可读文本的技术。华为的OCR技术在业界以其高精度和高效率而著称,广泛应用于金融、教育、政府等多个领域。 OCR技术…

hive explain分析Hsql详解

Hive explain HIVE提供了EXPLAIN命令来展示一个查询的执行计划,可以帮助我们查看stage的依赖情况、排查数据倾斜、hive 调优等 使用语法如下: EXPLAIN [EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE] query explain 后面可以…

【postgresql】版本学习

PostgreSQL 17 Beta 2 发布于2024-06-27。 PostgreSQL 17 Beta 2功能和变更功能的完整列表:PostgreSQL: Documentation: 17: E.1. Release 17 ​ 支持的版本: 16 ( 当前版本) / 15 / 14 / 13 / 12 ​ 不支持的版本: 11 / 10 / 9.6 / 9.5 /…

Symfony框架实战入门:打造简易博客应用全过程解析

Symfony框架详解 一、引言 随着Web应用的复杂度不断提升,开发者们越来越需要高效、可扩展和易于维护的框架来支持他们的工作。Symfony就是这样一款优秀的PHP框架,它基于MVC(模型-视图-控制器)设计模式,提供了许多强大…

探索工业AI智能摄像机的高端科技

在当今快速发展的工业智能化领域,工业AI智能摄像机系列以其卓越的性能和多功能性在国内外备受关注(文末有国外工程师的评测链接)。搭载Raspberry Pi CM4支持的旨在广泛应用,涵盖从简单的条形码扫描到基于人工智能的工业环境中的缺…

7.1.SQL注入-基于函数报错的方式来利用updatexml()

基于函数报错的方式来进行利用-字符型(本页updatexml()) 前提条件是后台数据库没有屏蔽数据库语法报错信息 updatexml()方法详解 注释: 第一个参数,意思就是xml文档的名称 第二个参数,意思就是定位到xml文档中指定…

OFDM关键技术——ICI消除技术

ICI消除算法可以分为以下几类: 1、OFDM符号长度和载波间隔的最优选择,较短的符号周期更有利于降低ICI 2、OFDM基信号的最佳选择,选择频域衰减更快的OFDM基带脉冲 3、自干扰消除技术,将信息调制到一组子载波上 4、频域均衡器&a…

认识100种电路之耦合电路

在电子电路的世界中,耦合电路宛如一座精巧的桥梁,连接着各个功能模块,发挥着至关重要的作用。 【为什么电路需要耦合】 在复杂的电子系统中,不同的电路模块往往需要协同工作,以实现特定的功能。然而,这些模…

网络爬虫(二) 哔哩哔哩热榜高频词按照图片形状排列

我们有时候需要爬取结果生成为自定义的词云图 生成自定义的词云图通常需要以下步骤: 1. 爬取数据:使用爬虫工具或库,如requests、BeautifulSoup等,可以爬取网页、论坛、社交媒体等平台上的文本数据。 2. 数据预处理&#xff1a…

uniapp微信小程序电子签名

先上效果图,不满意可以直接关闭这页签 新建成单独的组件,然后具体功能引入,具体功能点击签名按钮,把当前功能页面用样式隐藏掉,v-show和v-if也行,然后再把这个组件显示出来。 【签名-撤销】原理是之前绘画时…