体积与边精确积分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 是一元运算符,返回结果是一 ...
随机推荐
- UltraSoft - Beta - Scrum Meeting 3
20200519会议纪要 Date: May 19th, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 暂无 Liuzh 前端 暂无 Kkkk 前端 完成了前端 ...
- [no code][scrum meeting] Alpha 10
项目 内容 会议时间 2020-04-16 会议主题 用户管理第一版交付 会议时长 15min 参会人员 PM+后端组成员 $( "#cnblogs_post_body" ).ca ...
- the Agiles Scrum Meeting 8
会议时间:2020.4.16 20:00 1.每个人的工作 今天已完成的工作 个人结对项目增量开发组:完成个人项目创建的部分功能 issues:增量组:准备评测机制,增加仓库自动创建和管理 团队项目增 ...
- Python课程笔记(四)
1.模块的导入 相当于Java的包或C语言的头文件 (1) import math s = math.sqrt(25) print(s) (2) from math import sqrt s=mat ...
- httprunner3源码解读(3)client.py
源码目录结构 ApiResponse 这个类没啥好说的 class ApiResponse(Response): """ 继承了requests模块中的Response类 ...
- JavaScript 简单介绍
一.简介 JavaScript是一门面向对象的动态语言,他一般用来处理以下任务: 修饰网页 生成HTML和CSS 生成动态HTML内容 生成一些特效 提供用户交互接口 生成用户交互组件 验证用户输入 ...
- 用 python 解决线性代数中的矩阵运算
用 python 解决线性代数中的矩阵运算 矩阵叉乘 矩阵求逆 矩阵转置 假定AX=B,求解未知矩阵X 矩阵的行列式值|matrix| 未完待续..... import sys from PyQt5. ...
- js 事件流和事件冒泡阻止
js 事件流和事件冒泡阻止 事件流 当浏览器发展到第四代的时候(IE4与Netscape4)浏览器开发团队遇到一个有意思的的问题: 页面的哪一部分会拥有某个特定的事件? 比如在纸上画上一组同心圆,如果 ...
- 第三天 while循环 及其用法
(1)语法格式:while 条件: ..... 语法二:while 条件: break # 跳出当前循环 语法三:while 条件: else # 当while循环正常结束时执行该语句:只有程 ...
- 痞子衡嵌入式:在IAR开发环境下RT-Thread工程函数重定向失效分析
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下RT-Thread工程函数重定向失效分析. 痞子衡旧文 <在IAR下将关键函数重定向到RAM中执行的方法> ...