Triangular DGM

1. Basis functions

decomposing the domain \(\Omega\) into \(N_e\) conforming

non-overlapping triangular elements \(\Omega_e\).

\[\begin{equation}
\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

\[\begin{equation}
\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

将方程左乘质量矩阵的逆并除以雅克比系数,可得

\[\begin{equation}
\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{equation}
\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{equation}
\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{equation}
\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

\[\begin{equation}
\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}\) 写为如下矩阵相乘形式

\[\begin{equation}
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}\]

因此

\[D^{\xi} = \begin{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}\]

因此

\[\hat{D}^{\xi} = M^{-1} \begin{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方法的更多相关文章

  1. Window中C++进行精确计时的方法

    嗯,程序员一个永恒的追求就是性能吧? 为了衡量性能,自然需要计时. 奈何无论C标准库还是C++标准库,因为通用性的考虑,其time API精度都不高.基本都是毫秒级的. 所以如果要真正精确地衡量程序的 ...

  2. 减小delphi体积的方法

    1.关闭RTTI反射机制  自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制.而我们的工程并不每每都 ...

  3. 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

    浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸 ...

  4. 积分从入门到放弃<2>

    这部分重新从定积分学了 1,lnx 的导数就是x^(-1) = 1/x 那么求∫(1/x)dx = ln|x|+C  2,初值问题.就是求∫f(x)dx = F(x) + C 求C . 3,Houdi ...

  5. STM32 精确输出PWM脉冲数控制电机(转)

    STM32 精确输出PWM脉冲数控制电机 发脉冲两种目的1)速度控制2)位置控制 速度控制目的和模拟量一样,没有什么需要关注的地方发送脉冲方式为PWM,速率稳定而且资源占用少 stm32位置控制需要获 ...

  6. 浅谈人脸检测之Haar分类器方法

    我们要探讨的Haar分类器实际上是Boosting算法(提升算法)的一个应用,Haar分类器用到了Boosting算法中的AdaBoost算法,只是把AdaBoost算法训练出的强分类器进行了级联,并 ...

  7. JavaScript中判断对象类型方法大全1

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

  8. 浅析人脸检测之Haar分类器方法

    一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...

  9. JavaScript中判断对象类型的种种方法

    我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一 ...

随机推荐

  1. Java只有值传递

    二哥,好久没更新面试官系列的文章了啊,真的是把我等着急了,所以特意过来催催.我最近一段时间在找工作,能从二哥的文章中学到一点就多一点信心啊! 说句实在话,离读者 trust you 发给我这段信息已经 ...

  2. Java:volatile笔记

    Java:volatile笔记 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. volatile 和 JMM 内存模型的可见性 JUC 下的三个包 java ...

  3. UltraSoft - Alpha - Scrum Meeting 5

    Date: Apr q9th, 2020. Scrum 情况汇报 进度情况 组员 负责 昨日进度 后两日任务 CookieLau PM 统筹个人进度,协助推进进度 辅助前后端连接工作 刘zh 前端 完 ...

  4. OO--第三单元规格化设计 博客作业

    OO--第三单元规格化设计 博客作业 前言 第三单元,我们以JML为基础,先后完成了 PathContainer -> Graph -> RailwaySystem 这是一个递进的过程,代 ...

  5. 多边形——————区间dp

    原题链接:https://www.acwing.com/problem/content/285/ 题意简单来说就是:给你一个环,断掉一条边使其成为一个链,用这个链跑dp,求最大得分. 首先这不是一道板 ...

  6. Spring Security:Authorization 授权(二)

    Authorization 授权 在更简单的应用程序中,身份验证可能就足够了:用户进行身份验证后,便可以访问应用程序的每个部分. 但是大多数应用程序都有权限(或角色)的概念.想象一下:有权访问你的面向 ...

  7. spring-cloud-square开发实战(三种类型全覆盖)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文<五分钟搞懂spring-clou ...

  8. PCIE学习链接集合

    <PCIE基础知识+vivado IP core设置> https://blog.csdn.net/eagle217/article/details/81736822 <一步一步开始 ...

  9. linked-list-cycle leetcode C++

    Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using ex ...

  10. Serverless 工程实践|自建 Apache OpenWhisk 平台

    作者 | 刘宇(江昱) 前言:OpenWhisk 是一个开源.无服务器的云平台,可以在运行时容器中通过执行扩展的代码响应各种事件,而无须用户关心相关的基础设施架构. OpenWhisk 简介 Open ...