Hermite WENO 重构格式
Hermite WENO 单元重构
本文主要介绍采用 Hermite WENO 重构方法作为斜率限制器应用于二维或高维单元中。
1.简介[1]
ENO格式最早由 Harten 等[2]提出,ENO格式避免在高梯度地区进行插值,其重构过程通过多个不同位置模板,并且选取其中最光滑模板上的解进行重构,由此保证在重构过程中具有较高的精度。然而这种方法会导致收敛问题并且在连续区域降低精度,随后Liu等[3]提出了 weighted ENO 格式。WENO 格式采用不同的权重系数组合各个模板,而非只采用一个判断光滑程度的系数。Qiu 和 Shu 首先将 WENO 格式作为一种斜率限制器应用于DG方法中[4],随后他们又根据 Hermite 多项式构造了一系列的 WENO 格式,称为 HWENO 格式并也将其作为限制器应用于 DG 方法中[5] [6]。
2.Hermite WENO 重构
一个典型的 WENO 重构过程包括以下步骤:
- 确定一系列模板
- 重构模板上单元解
- 计算每个重构多项式振荡算子
- 使用振荡算子计算相应权重
- 根据权重系数构造重构多项式

以三角形单元为例,单元e在计算不同模板多项式 \(P_1\) 时需满足下列关系中一种:
- 单元e中原始解;
- \(\frac{1}{\Omega_e}\int_{\Omega_e} P_1 d\Omega = u_e\), \(\frac{1}{\Omega_j}\int_{\Omega_j} P_1 d\Omega = u_j\), \(\frac{1}{\Omega_k}\int_{\Omega_k} P_1 d\Omega = u_k\),其中 \((j,k) = (a,b; b,c; c,a)\);
- \(\frac{1}{\Omega_e}\int_{\Omega_e} P_1 d\Omega = u_e\),\(\frac{1}{\Omega_k}\int_{\Omega_e} \frac{\partial P_1}{\partial x_i} d\Omega = \frac{\partial P_1}{\partial x_i}|_ k\),其中 \((k=a,b,c)\);
根据以上三种条件,便可以构造出7个具有二阶精度的多项式。对应模板分别为
- \((e)\),原始解;
- \((e,a,b;\, e,b,c;\, e,c,a)\),三个相邻单元均值;
- \((e,a;\, e,b;\, e,c)\),单元e均值与相邻单元斜率;
注意,不同模板上的重构多项式需满足在单元内均值与原始结果相同。对于三角形来说,除了原始解之外,计算模板共有6个,而四边形则有8个,在获得各个模板上的多项式后便可采用线性叠加的方法获得重构后的单元解。
为了避免重构解产生振荡,需要为各个模板设置不同权重系数,在 HWENO 格式中模板权重系数与其振荡幅度相关。Friedrich[7] 改进了 Jiang 与 Shu (1996) 提出的振荡算子,其改进的新形式为
\]
其中 \(h=mes(\Omega_e)\) 为单元尺度大小。使用振荡算子计算每个模板所占权重公式为
\]
其中 \(\gamma\) 为正值。
考虑到计算效率以及数值精度,以上重构过程应当只应用于数值解中存在间断位置,这就要求 HWENO 重构格式与间断检测器协同使用。
LUO H, BAUM J D, LÖHNER R. A Hermite WENO-based limiter for discontinuous Galerkin method on unstructured grids[J]. Journal of Computational Physics, 2007, 225(1): 686–713. ︎
A. Harden, B. Engquist, S. Osher, S.R. Chakravarthy, Uniformly high-order accurate essential non-oscillatory schemes III, Journal of Computational Physics 71 (1987) 231–303. ︎
X. Liu, S. Osher, T.F. Chen, Weighted essential non-oscillatory schemes, Journal of Computational Physics 115 (1994) 200–212. ︎
J. Qiu, C.W. Shu, Runge–Kutta discontinuous Galerkin method using WENO limiters, SIAM Journal of Scientific Computing 26
(2005) 907–929. ︎J. Qiu, C.W. Shu, Hermite WENO schemes and their application as limiters for Runge–Kutta discontinuous Galerkin method: one
dimensional case, Journal of Computational Physics 193 (2004) 115–135. ︎J. Qiu, C.W. Shu, Hermite WENO schemes and their application as limiters for Runge–Kutta discontinuous Galerkin method II: two
dimensional case, Computers & Fluids 34 (2005) 642–663. ︎O. Friedrich, Weighted essential non-oscillatory schemes for the interpolation of mean values on unstructured grids, Journal of Computational Physics 144 (1998) 194–212. ︎
Hermite WENO 重构格式的更多相关文章
- paper 41:正交变换
正交变换是保持图形形状和大小不变的几何变换,包含旋转,轴对称及上述变换的复合. 几何意义 正交变换是保持图形形状和大小不变的几何变换,包含旋转,轴对称及上述变换的复合. 代数定义 欧几里得空间V的线性 ...
- matlab 小波变换
MATLAB小波变换指令及其功能介绍 1 一维小波变换的 Matlab 实现 (1) dwt函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname') [cA,cD]=dwt(X ...
- matlab中图像处理常见用法
一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...
- javascript基础笔记学习
/** * Created by Administrator on 2016/12/26. */ /* var box; alert( typeof box); box是Undefined类型,值是u ...
- matlab 对图像操作的函数概览
转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...
- PHP(Zend Studio)入门视频
视频地址: http://www.ev-get.com/article/2014/5/9/20962.html (去掉地址中的减号-:可以看视频) Zend Studio教学视频之Zend Studi ...
- 记一次.NET代码重构
好久没写代码了,终于好不容易接到了开发任务,一看时间还挺充足的,我就慢慢整吧,若是遇上赶进度,基本上直接是功能优先,完全不考虑设计.你可以认为我完全没有追求,当身后有鞭子使劲赶的时候,神马设计都是浮云 ...
- [bzoj3123][sdoi2013森林] (树上主席树+lca+并查集启发式合并+暴力重构森林)
Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...
- 《HTML重构》读书笔记&思维导图
最近读了<HTML重构>这本书,以下做出自己的总结归纳,大家可以一起学习交流. 什么是重构?重构是在不改变程序行为的基础上进行小的改动是代码基本逐渐完善的过程,通常需要一些自动化工具的帮助 ...
随机推荐
- 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码
目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...
- k8s replicaset controller 分析(3)-expectations 机制分析
replicaset controller分析 replicaset controller简介 replicaset controller是kube-controller-manager组件中众多控制 ...
- Java基础-Java8新特性
一.Lambda表达式 在了解 Lambda 之前,首先回顾以下Java的方法. Java的方法分为实例方法,例如:Integer的equals()方法: public final class Int ...
- 函数指针和qsort函数
1.函数指针的形式: 函数指针:int (*funcP) (int *a, int *b) 表示定义了一个funcP函数指针,指向了返回值为int类型,参数为int* 和int* 的函数 使用方式: ...
- 常用Java API: ArrayList(Vector) 和 LinkedList
摘要: 本文主要介绍ArrayList(Vector)和LinkedList的常用方法, 也就是动态数组和链表. ArrayList ArrayList 类可以实现可增长的对象数组. 构造方法 Arr ...
- Spring IOC:BeanDefinition加载注册流程(转)
BeanFactory接口体系 以DefaultListableBeanFactory为例梳理一下BeanFactory接口体系的细节 主要接口.抽象类的作用如下: BeanFactory(根据注册的 ...
- 同人逼死官方系列!从 DDC 嗅探器到 sddc_sdk_lib 的数据解析
从 DDC 嗅探器到 sddc_sdk_lib 的数据解析 之前的 DDC 协议介绍 主要讲了设备加入.退出以及维持设备状态,而 SDK框架 sddc_sdk_lib 解析 主要讲了 SDK 库的结构 ...
- poj 1330 Nearest Common Ancestors (最简单的LCA)
题意: 给出一棵树的结构. 给出两个点X和Y,求它俩的LCA. 思路: 只需求两个点的LCA,用了两种方法,一种离线tarjan,一种直接搞. 看代码. 代码: 方法一:直接搞. int const ...
- linux 内核源代码情景分析——地址映射的全过程
linux 内核采用页式存储管理.虚拟地址空间划分成固定大小的"页面",由MMU在运行时将虚拟地址映射成某个物理内存页面中的地址.页式内存管理比段式内存管理有很多好处,但是由于In ...
- 谷歌chrome多个相同用户登陆同一个机器多开配置
创建快捷方式,目标中填写:路径+参数如下所示即可 参数:--user-data-dir=%LOCALAPPDATA%\Google\Chrome\%SessionName%