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 ...
随机推荐
- 【UE4 C++ 基础知识】<6> 容器——TMap
概述 TMap主要由两个类型定义(一个键类型和一个值类型),以关联对的形式存储在映射中. 将数据存储为键值对(TPair<KeyType, ValueType>),只将键用于存储和获取 映 ...
- iNeuOS工业互联网操作系统,智慧用电测控应用案例
目 录 1. 概述... 2 2. 系统部署结构... 2 3. 用电测控终端... 3 4. 系统应用介绍... 6 1. 概述 通过物联网技 ...
- C/C++编程笔记:浪漫流星雨表白装b程序
作为一个未来可能会成为一个专业程序员的小伙们,不知道你们现在学到哪里了,学了点东西之后有没有想在你女朋友面前装个大大的b呢,今天小编就给你一个机会来研究一下下边的代码吧,保证大写的N,当然大佬是排除在 ...
- 零基础入门Linux有什么好的学习方法吗?(超详细)
本节旨在介绍对于初学者如何学习 Linux 的建议,在这里不具体分析Linux的学习节点只分析对于零基础的伙伴的学习方法.那么如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Li ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- 数字在排序数组中出现的次数 牛客网 剑指Offer
数字在排序数组中出现的次数 牛客网 剑指Offer 题目描述 统计一个数字在排序数组中出现的次数. class Solution: def GetNumberOfK(self, data, k): i ...
- binary-tree-preorder-traversal leetcode C++
Given a binary tree, return the preorder traversal of its nodes' values. For example: Given binary t ...
- BQ40Z50固件怎么升级?告诉你BQ系列芯片内部结构和升级方法
一 BQ芯片初步认识 包括BQ40Z50在内,BQ系列电池管理芯片看起来是一个芯片,其实芯片里面封装了两个die.一个是MCU部分负责计算和控制,其采用的是bqBMP内核的16位处理器:另外一个die ...
- git与pycharm的使用详解(git+gitlab+pycham)
前言 当自动化框架搭建出来后,需要多个人来使用框架,写自动化用例. 在这个阶段,我们不可能将写好的代码打包发给其他人,这样很麻烦,多人协作一点也不灵活. 这时候,就提现出了git的价值 一.下载安装 ...
- SpringCloud概念
SpringCloud概述 1.SpringCloud是什么? 官方解释: 官网: https://spring.io/projects/spring-cloud/ SpringCloud是一系列 ...