1D RKDG to shallow water equations
RKDG to shallow water equations
1.Governing Equations
\]
F = \begin{bmatrix} q \cr gh^2/2 + q^2/h \end{bmatrix}\]
2.Discrete with DGM
\]
\int_{\Omega} l_i \frac{\partial l_j}{\partial x} F(U_j) dx= 0 \end{equation}\]
\int_{\Omega} l_i \frac{\partial l_j}{\partial x} F(U_j) dx+
\oint_{\partial \Omega} l_i l_j (F^* - F)\cdot \vec{n} ds = 0 \end{equation}\]
\]
ODE:
\]
\]
It is important to point out that at dry cells no flux is flow inside the elemnt. Therefor, for dry cells
\]
3.Numerical Flux
3.1.HLL flux function
Formulations are given as
F^- \cr
\frac{S_R F^- - S_L F^+ + S_L S_R(U^+ - U^-)}{S_R S_L} \cr
F^+ \end{matrix} \right.
\begin{matrix}
S_L \geq 0 \cr
S_L < 0 < S_R \cr
S_R \leq 0
\end{matrix}\]
Wave Speed is suggested by Fraccarollo and Toro (1995)
\]
\]
\(u^*\) and \(c^*\) is defined by
\]
\]
for wet-dry interface, the wave speed is giving as
- left-hand dry bed
S_L = u^+ - 2\sqrt{g h^+} \quad S_R = u^+ + \sqrt{g h^+}
\end{equation}\]
- right-hand dry bed
S_L = u^- - \sqrt{g h^-} \quad S_R = u^- + 2\sqrt{g h^-}
\end{equation}\]
- both sides are dry
S_L = 0 \quad S_R = 0
\end{equation}\]
Noticing. 1
For flux terms, the discharge \(q^2\) is divided by water depth \(h\)
\]
so a threadhold of water depth \(h_{flux}\) ( \(10^{-3}\)m ) is add into flux function SWEFlux.m. When \(h\) is less than \(h_{flux}\), the \(q^2/h\) is approximated to 0 as there is no flow at this node.
Noticing. 2
When defining the dry beds, another threadhold of water depth \(h_{dry}\) is used. It is convenient to deine \(h_{dry}\) equals to \(h_{flux}\).
3.2.Rotational invariance
0 & n_x\end{bmatrix} \quad
T^{-1} = \begin{bmatrix} 1 & 0 \cr
0 & n_x\end{bmatrix}\]
\]
defining \(Q = TU\), the numerical flux \(\hat{\mathbf{F}}\) can be obtained through the evaluation of numerical flux \(\mathbf{F}\) by
\]
4.Limiter
Note: discontinuity detector from Krivodonova (2003) is not working
For better numerical stability, minmod limiter is used in limiting the discharge and elevation.
Check testing/Limiter1D/doc for more details about minmod limiter.
5. Positive preserving limiter
For the thin layer approach, a small depth ( \(h_{positive} = 10^{-3} m\)) and zeros velocity are prescribed for dry nodes.
The first step is to define wet elements. After each time step, the whole domain is calculated; If the any depth of nodes in \(\Omega_i\) is greater than \(h_{positive}\), then the element is defined as wet element, otherwise the water height of all nodes are remain unchanged.
The second step is to modify wet cells; If the depth of any nodes is less than \(h_{positive}\), then the flow rate is reset to zero and the new water depth is constructed as
\mathrm{M}\Pi_h h_i(x) = \theta_1 \left( h_i(x) - \bar{h}_i \right) + \bar{h}_i
\end{equation}\]
where
\theta_1 = min \left\{ \frac{\bar{h}_i - \xi }{\bar{h}_i - h_{min}}, 1 \right\}, \quad h_{min} = min\{ h_i (x_i) \}
\end{equation}\]
It is necessary to fulfill the restriction that the mean depth \(\bar{h}_i\) is greater than \(\xi\), i.e. \(10^{-4}\)m. In the function PositiveOperator, if the mean depth of element is less than \(\xi\), all nodes will add a small depth \(\xi - \bar{h}_i\) to re-fulfill the restriction.
At last, all values of water height at nodes with negative \(h_i(x_j) <0\) will be modified to zero and the discharge of dry nodes ( \(h_i \le h_{positive}\) ) will be reseted to zero.
6. Wet/Dry reconstruction
No special treatment is introduced in the model at the moment.
5.Numerical Test
5.1.Wet dam break
| Model Setting | value |
|---|---|
| channel length | 1000m |
| dam position | 500m |
| upstream depth | 10m |
| downstream depth | 2m |
| element num | 400 |
| Final Time | 20s |

5.2.Dry dam break
| Model Setting | value |
|---|---|
| channel length | 1000m |
| dam position | 500m |
| upstream depth | 10m |
| downstream depth | 0m |
| element num | 400 |
| Final Time | 20s |

5.3.Parabolic bowl
| Model Setting | value |
|---|---|
| channel length | 2000m |
| \(h_0\) | 10m |
| \(a\) | 600m |
| \(B\) | 5m/s |
| \(T\) | 269s |
Exact solution
Z(x,t) = \frac{-B^2 \mathrm{cos}(2wt) - B^2 - 4Bw \mathrm{cos}(wt)x}{4g}
\end{equation}\]
\(t = T/2\)

\(t = 3T/4\)

\(t = T\)

1D RKDG to shallow water equations的更多相关文章
- 论文翻译:2018_Source localization using deep neural networks in a shallow water environment
论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...
- BJ2 斜率限制器
BJ2 斜率限制器 本文介绍斜率限制器取自于 Anastasiou 与 Chan (1997)[1]研究,其所利用的斜率限制器也是 Barth 与 Jespersen 限制器的一种修正形式,并且包含一 ...
- 体积与边精确积分DGM方法
Triangular DGM 1. Basis functions decomposing the domain \(\Omega\) into \(N_e\) conforming non-over ...
- TRANSFORM YOUR HABITS
TRANSFORM YOUR HABITS3rd EditionNote from James Clear:I wrote Transform Your Habits to create a free ...
- TPO 02 - The Origins of Cetaceans
TPO 02 - The Origins of Cetaceans It should be obvious that cetaceans[n. 鲸目动物]-whales, porpoises [n. ...
- 洛谷P3070 [USACO13JAN]岛游记Island Travels
P3070 [USACO13JAN]岛游记Island Travels 题目描述 Farmer John has taken the cows to a vacation out on the oce ...
- BZOJ_3049_[Usaco2013 Jan]Island Travels _状压DP+BFS
BZOJ_3049_[Usaco2013 Jan]Island Travels _状压DP+BFS Description Farmer John has taken the cows to a va ...
- viva correction statements
* List of amendments| No. | Location | Amendments ...
- [Usaco2013 Jan]Island Travels
Description Farmer John has taken the cows to a vacation out on the ocean! The cows are living on N ...
随机推荐
- go-zero 实战之 blog 系统
go-zero 实战项目:blog 本文以 blog 的网站后台为例,着重介绍一下如何使用 go-zero 开发 blog 的用户模块. 本文涉及的所有资料都已上传 github 仓库 kougazh ...
- spring security中动态更新用户的权限
在程序的执行过程中,有时有这么一种需求,需要动态的更新某些角色的权限或某些人对应的权限,当前在线的用户拥有这个角色或拥有这个权限时,在不退出系统的情况下,需要动态的改变的他所拥有的权限. 需求:张三 ...
- 【做题记录】[NOI2008] 假面舞会—有向图上的环与最长链
luogu 1477 [NOI2008] 假面舞会 容易发现: 如果图中没有环,那么面具种数一定是所有联通块内最长链之和,最少为 \(3\) . 如果有环,则面具种数一定是所有环的大小的最大公约数. ...
- 阿里P7面试官:请你简单说一下类加载机制的实现原理?
面试题:类加载机制的原理 面试官考察点 考察目标: 了解面试者对JVM的理解,属于面试八股文系列. 考察范围: 工作3年以上. 技术背景知识 在回答这个问题之前,我们需要先了解一下什么是类加载机制? ...
- 2021CCPC华为云挑战赛 部分题题解
CDN流量调度问题 题看了没多久就看出来是\(DP\)的题,然后就设了状态\(f[i][j]\)表示到前\(i\)个点时已经用了\(j\)个节点的最小总代价,结果发现转移时\(O(nm^2)\),但这 ...
- Mac sourceTree每次都输入密码
打开终端 依次输入以下三条命令 curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain - ...
- 『动善时』JMeter基础 — 57、Linux系统中运行JMeter脚本
目录 1.Linux系统中安装Java环境 (1)解压Java安装包 (2)配置Java环境变量 (3)验证Java环境是否配置成功 2.Linux系统中安装JMeter (1)下载JMeter (2 ...
- 学习JS的第四天
一.循环 1.循环嵌套 1.一个循环内包含完整的另一个循环语句. 2.被包含的循环语句叫内循环,包含别的循环的循环语句叫外循环. 3.外循环每执行一次循环,内循环都会完全执行所有循环次数. 4.循环嵌 ...
- [python]Pytest+selenium+git+jenkins持续集成
1安装pytest框架 &pip install pytest #pytest &pip install pytest-html #pytest html测试报告 2.工程介绍 ...
- 10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用
什么是JWT JSON Web Token(JWT)是目前最流行的跨域身份验证.分布式登录.单点登录等解决方案. JWT的官网地址:https://jwt.io/ 通俗地来讲,JWT是能代表用户身份的 ...