体积与边精确积分DGM方法
Triangular DGM
1. Basis functions
decomposing the domain \(\Omega\) into \(N_e\) conforming
non-overlapping triangular elements \(\Omega_e\).
\Omega = \bigcup_{e = 1}^{N_e} \Omega_e
\end{equation}\]
nonsingular mapping \(x = \Psi(\mathbf{\xi})\) which defines a transformation from the physical Cartesian coordinate system to the local reference coordinate system defined on the reference triangle.
local elementwise solution \(\mathbf{q}\) by an N th order polynomial in \(\mathbf{\xi}\) as
\mathbf{q}_N (\mathbf{\xi}) = \sum_{i = 1}^{M_N} \psi_i (\mathbf{\xi}) \mathbf{q}_N (\mathbf{\xi}_i)
\end{equation}\]
where \(\mathbf{\xi}_i\) represents \(M = \frac{1}{2} ( N + 1)( N + 2)\) interpolation points and \(\psi_i (\mathbf{\xi})\) are the associatedmultivariate Lagrange polynomials.
an explicit formula for the Lagrange basis —— reference to an easily constructed orthonormal PKD polynomial basis and the generalized Vandermonde matrix.
通过正交多项式和Vandermonde构造参考单元上Lagrange基函数。
2. Integration
2.1. Area integrals
\(\int_{\Omega_e} f(x) g(x) dx = \sum_{i = 1}^{M_C} \omega_i^e \left| J^e(\mathbf{\xi}_i) \right| f(\mathbf{\xi}_i) g(\mathbf{\xi}_i)\)
where \(M_C\) is a function of \(C\) which represents the order of the cubature approximation.
2.2. Boundary integrals
\(\int_{\Gamma_e} f(x) g(x) dx = \sum_{i = 0}^{Q} \omega_i^s \left| J^s(\mathbf{\xi}_i) \right| f(\mathbf{\xi}_i) g(\mathbf{\xi}_i)\)
where \(Q\) represents the order of the quadrature approximation. Using the Gauss quadrature, we
can use \(Q = N\) to achieve order \(2N\) accuracy.
3. Tangent and normal vectors of the element edges
4. Semi-discrete equations
5. Matrix form of the semi-discrete equations
5.1. Elimination of the mass matrix
将方程左乘质量矩阵的逆并除以雅克比系数,可得
\frac{\partial \mathbf{q}^e_i}{\partial t} + \left( \hat{D}_{ij}^{\xi} \xi_x^e + \hat{D}_{ij}^{\eta} \eta_x^e \right) \mathbf{f}_j^e + \left( \hat{D}_{ij}^{\xi} \xi_y^e + \hat{D}_{ij}^{\eta} \eta_y^e \right) \mathbf{g}_j^e - S_i^e = \frac{\left| J^s \right|}{\left| J^e \right|} \hat{M}_{ij}^s \left[ n_x^s \left( \mathbf{f}^e - \mathbf{f}^* \right)_j + n_y^s \left( \mathbf{g}^e - \mathbf{g}^* \right)_j \right]
\end{equation}\]
where the matrices are defined as
\begin{array}{lll}
\hat{D}_{ij}^{\xi} = M_{ik}^{-1} D_{kj}^{\xi}, & \hat{D}_{ij}^{\eta} = M_{ik}^{-1} D_{kj}^{\eta}, &
\hat{M}_{ij}^{s} = M_{ik}^{-1} M_{kj}^{\xi},
\end{array}
\end{equation}\]
where
\begin{array}{ll}
M_{ij} = \sum_{k = 1}^{M_C} \omega_k \psi_{ik} \phi_{jk}, & M_{ij}^s = \sum_{k = 1}^{M_Q} \omega_k \psi_{ik} \phi_{jk} \cr
D_{ij}^{\xi} = \sum_{k = 1}^{M_C} \omega_k \psi_{ik} \frac{\partial \phi_{jk}}{\partial \xi}, & D_{ij}^{\eta} = \sum_{k = 1}^{M_C} \omega_k \psi_{ik} \frac{\partial \phi_{jk}}{\partial \eta}
\end{array}
\end{equation}\]
\(M_C\) and \(M_Q\) denote the number of cubature (two dimensional) and quadrature (one dimensional) integration points required to achieve order 2N accuracy, and \(\psi_{ik}\) represents the function \(\psi\) at the \(i=1, \cdots,M_N\) interpolation points evaluated at the integration point k.
Since the mass matrix is constant (i.e. not a function of x) then, using Equations above, we can move the mass matrix inside the summations which are the discrete representations of the continuous integrals. This then gives
\begin{array}{ll}
\hat{M}_{ij}^{s} = \sum_{k = 1}^{M_Q} \omega_k \hat{\psi}_{ik} \psi_{jk}, & \hat{D}_{ij}^{\xi} = \sum_{k = 1}^{M_C} \omega_k \hat{\psi}_{ik} \frac{\partial \psi_{jk}}{\partial \xi}, & \hat{D}_{ij}^{\eta} = \sum_{k = 1}^{M_C} \omega_k \hat{\psi}_{ik} \frac{\partial \psi_{jk}}{\partial \eta}
\end{array}
\end{equation}\]
where
\hat{\psi}_i = M_{ik}^{-1} \psi_k
\end{equation}\]
根据
\(D_{ij}^{\xi} = \sum_{k = 1}^{M_C} \omega_k \psi_{ik} \frac{\partial \psi_{jk}}{\partial \xi}\)
我们可以将 \(D_{ij}^{\xi}\) 写为如下矩阵相乘形式
D_{ij}^{\xi} = \begin{bmatrix}
\omega_1 \psi_{11}, \omega_2 \psi_{12}, \cdots, \omega_{M_C} \psi_{1{M_C}}
\end{bmatrix}
\begin{bmatrix}
\frac{\partial \psi_{11}}{\partial \xi} \cr \frac{\partial \psi_{12}}{\partial \xi} \cr
\cdots \cr
\frac{\partial \psi_{1{M_C}}}{\partial \xi}
\end{bmatrix}
\end{equation}\]
因此
\omega_1 \psi_{11}, \omega_2 \psi_{12}, \cdots, \omega_{M_C} \psi_{1{M_C}} \cr
\omega_1 \psi_{21}, \omega_2 \psi_{22}, \cdots, \omega_{M_C} \psi_{2{M_C}} \cr
\cdots \cr
\omega_1 \psi_{{M_C}1}, \omega_2 \psi_{{M_C}2}, \cdots, \omega_{M_C} \psi_{{M_C}{M_C}} \cr
\end{bmatrix}
\begin{bmatrix}
\frac{\partial \psi_{11}}{\partial \xi}, & \frac{\partial \psi_{21}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}1}}{\partial \xi} \cr \frac{\partial \psi_{12}}{\partial \xi}, & \frac{\partial \psi_{22}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}2}}{\partial \xi} \cr
\cdots \cr
\frac{\partial \psi_{1{M_C}}}{\partial \xi}, & \frac{\partial \psi_{2{M_C}}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}{M_C}}}{\partial \xi}
\end{bmatrix}\]
因此
\omega_1 \psi_{11}, \omega_2 \psi_{12}, \cdots, \omega_{M_C} \psi_{1{M_C}} \cr
\omega_1 \psi_{21}, \omega_2 \psi_{22}, \cdots, \omega_{M_C} \psi_{2{M_C}} \cr
\cdots \cr
\omega_1 \psi_{{M_C}1}, \omega_2 \psi_{{M_C}2}, \cdots, \omega_{M_C} \psi_{{M_C}{M_C}} \cr
\end{bmatrix}
\begin{bmatrix}
\frac{\partial \psi_{11}}{\partial \xi}, & \frac{\partial \psi_{21}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}1}}{\partial \xi} \cr \frac{\partial \psi_{12}}{\partial \xi}, & \frac{\partial \psi_{22}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}2}}{\partial \xi} \cr
\cdots \cr
\frac{\partial \psi_{1{M_C}}}{\partial \xi}, & \frac{\partial \psi_{2{M_C}}}{\partial \xi}, & \cdots & \frac{\partial \psi_{{M_C}{M_C}}}{\partial \xi}
\end{bmatrix}\]
Reference:
[1]: GIRALDO F X, WARBURTON T. A high-order triangular discontinuous Galerkin oceanic shallow water model[J]. International Journal for Numerical Methods in Fluids, 2008, 56: 899–925.
体积与边精确积分DGM方法的更多相关文章
- Window中C++进行精确计时的方法
嗯,程序员一个永恒的追求就是性能吧? 为了衡量性能,自然需要计时. 奈何无论C标准库还是C++标准库,因为通用性的考虑,其time API精度都不高.基本都是毫秒级的. 所以如果要真正精确地衡量程序的 ...
- 减小delphi体积的方法
1.关闭RTTI反射机制 自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制.而我们的工程并不每每都 ...
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸 ...
- 积分从入门到放弃<2>
这部分重新从定积分学了 1,lnx 的导数就是x^(-1) = 1/x 那么求∫(1/x)dx = ln|x|+C 2,初值问题.就是求∫f(x)dx = F(x) + C 求C . 3,Houdi ...
- STM32 精确输出PWM脉冲数控制电机(转)
STM32 精确输出PWM脉冲数控制电机 发脉冲两种目的1)速度控制2)位置控制 速度控制目的和模拟量一样,没有什么需要关注的地方发送脉冲方式为PWM,速率稳定而且资源占用少 stm32位置控制需要获 ...
- 浅谈人脸检测之Haar分类器方法
我们要探讨的Haar分类器实际上是Boosting算法(提升算法)的一个应用,Haar分类器用到了Boosting算法中的AdaBoost算法,只是把AdaBoost算法训练出的强分类器进行了级联,并 ...
- JavaScript中判断对象类型方法大全1
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
- 浅析人脸检测之Haar分类器方法
一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...
- JavaScript中判断对象类型的种种方法
我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...
随机推荐
- 改善深层神经网络-week1编程题(Initializaion)
Initialization 如何选择初始化方式,不同的初始化会导致不同的结果 好的初始化方式: 加速梯度下降的收敛(Speed up the convergence of gradient desc ...
- Noip模拟69 2021.10.5
考场拼命$yy$高精度结果没学好$for$循环痛失$50pts$,当场枯死 以后一定打对拍,要不考后会... T1 石子游戏 首先要知道典型的$NIM$博弈,就是说如果所有堆石子个数的异或和为$0$则 ...
- 疯狂Java基础Day1
--每过一遍基础,都是一次提升! 太多遗忘了,慢慢补... 推一个Java学习教程--->b站搜:狂神说Java系列(排序完毕) 推荐原因:讲的不错,会涉及到底层,也会讲讲面试. 一.注释 主要 ...
- Oracle 11g 常用sql记录
--表备份 create table xxx_bak as select * from xxx; --表数据清除 truncate table xxx --锁表问题处理sql开始 select ses ...
- Envoy实现.NET架构的网关(三)代理GRPC
什么是GRPC gRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架.gRPC 的主要好处是: 现代.高性能.轻量级的 RPC 框架. 契约优先的 API 开发,默认使用协议缓冲区,与语言无 ...
- 你知道怎么使用Google两步验证保护账户安全吗?
目录 为什么我们需要使用它? 对有些人来说,盗取密码比您想象的更简单 什么是Google两步验证? 多一道安全防线 什么是Google Authenticator ? 使用Google两步验证的好处 ...
- VCS常用仿真选项开关及步骤总结
转自:https://blog.csdn.net/bcs_01/article/details/79803304 转自:https://blog.csdn.net/wonder_coole/artic ...
- readelf
readelf的help内容如下所示: Usage: readelf <option(s)> elf-file(s) Display information about the conte ...
- OOP作业总结一
PS:建议用 Edge 查看此博客,Chrome 的话文章界面会有点窄,看起来可能会比较难受,我想改宽点但是不会改. 我会改了!改宽了一些,现在看起来舒服了很多,芜湖. 问题数据已修复,我们胜利辣! ...
- ansible基本命令及剧本
ansible常用命令 1. -v, –verbose 详细模式,如果命令执行成功,输出详细的结果(-vv –vvv -vvvv) 2. -i, –inventory=PATH 指定host文件的路径 ...