流量限制器(Flux Limiter)
内容翻译自Wikipedia
Flux limiter
流量限制器(Flux limiters)应用在高精度格式中-这种数值方法用来求解科学与工程问题,特别是由偏微分方程(PDE's)描述的流体动力学。高精度数值方法,如MUSCL格式,可以避免由于高阶空间离散格式在间断或大梯度处引起的高阶振荡(wiggles)。使用流量限制器,并且配合合适的高精度格式,可是使格式满足总变差减小(TVD)性质。
注意流量限制器也称作梯度限制器,因为他们有相同的数学形式,都能够限制间断位置附近解的梯度。通常“流量限制器”用在限制算子作用在方程组流量项时候,而“梯度限制器”应用与限制器作用在方程变量上情况(system states)
如何工作
构建通量限制器的主要思想是限制空间导数计算使其接近实际值 - 在科学和工程问题中,这通常是指物理上可实现的并且有意义的值。它们被用在高分辨率的方法中来解决由偏微分方程描述的问题,并且只有大梯度的锋面存在时才发挥作用。对于平滑变换波形,通量限制器不起作用而空间导数可通过高阶近似方法求解并且不会引入高阶振荡。考虑下面的一维半离散格式,
\frac{d u_i}{d t} + \frac{1}{\Delta x_i} \left[
F \left( u_{i + \frac{1}{2}} \right) - F \left( u_{i - \frac{1}{2}} \right) \right] =0
\end{equation}\]
这里$ F ( u_{i + \frac{1}{2}} ) $ 与 \(F ( u_{i - \frac{1}{2}} )\) 代表边界\(i\)上数值通量。如果边界上通量可以有高阶和低阶两种格式,那么流量限制器就可以依据附近单元梯度使边界流量在这两种流量之间进行转换,如
\begin{aligned}
& F \left( u_{i + \frac{1}{2}} \right) = f^{low}_{i + \frac{1}{2}} - \phi\left( r_i \right)
\left( f^{low}_{i + \frac{1}{2}} - f^{high}_{i + \frac{1}{2}} \right) \cr
& F \left( u_{i - \frac{1}{2}} \right) = f^{low}_{i - \frac{1}{2}} - \phi\left( r_{i-1} \right)
\left( f^{low}_{i - \frac{1}{2}} - f^{high}_{i - \frac{1}{2}} \right)
\end{aligned}
\end{eqnarray}\]
这里
$f^{low} = \(低精度,高分辨率流量
\)f^{high} =\(高精度,低分辨率流量
\)\phi\ (r) =$流量限制器函数
并且\(r\)代表网格上连续梯度比值
r_{i} = \frac{u_{i} - u_{i-1}}{u_{i+1} - u_{i}}
\end{equation}\]
限制函数要求大于或者等于0,\(\phi \ (r)\geq 0\)。因此,当限制器为0时(附近存在大梯度,相反的斜率符号或者0梯度),流量项相当于低精度格式。类似的,当限制器为1时(连续解),就由高分辨率格式表示。不同的限制器有不同的切换特性,根据不同的问题和求解格式而选择不同格式。没有发现哪种限制器能够完美解决所有问题,限制器格式的选择通常由反复的试验决定。
限制函数
下面是一些常用的流量限制器/斜率限制器形式,\(\phi \ (r)\):
- CHARM [not 2nd order TVD] (Zhou, 1995)
\(\phi_{cm}(r)=\left\{ \begin{array}{ll}
\frac{r\left(3r+1\right)}{\left(r+1\right)^{2}}, \quad r>0, \quad\lim_{r\rightarrow\infty}\phi_{cm}(r)=3 \\
0 \quad \quad\, , \quad r\le 0
\end{array}\right.\) - HCUS [not 2nd order TVD] (Waterson & Deconinck, 1995)
\(\phi_{hc}(r) = \frac{ 1.5 \left(r+\left| r \right| \right)}{ \left(r+2 \right)} ; \quad \lim_{r \rightarrow \infty}\phi_{hc}(r) = 3\) - HQUICK [not 2nd order TVD] (Waterson & Deconinck, 1995)
\(\phi_{hq}(r) = \frac{2 \left(r + \left|r \right| \right)}{ \left(r+3 \right)} ; \quad \lim_{r \rightarrow \infty}\phi_{hq}(r) = 4\) - Koren (Koren, 1993) – third-order accurate for sufficiently smooth data[1]
\(\phi_{kn}(r) = \max \left[ 0, \min \left(2 r, \left(2 + r \right)/3, 2 \right) \right]; \quad \lim_{r \rightarrow \infty}\phi_{kn}(r) = 2\) - minmod – symmetric (Roe, 1986)
\(\phi_{mm} (r) = \max \left[ 0 , \min \left( 1 , r \right) \right] ; \quad \lim_{r \rightarrow \infty}\phi_{mm}(r) = 1\) - monotonized central (MC) – symmetric (van Leer, 1977)
$ \phi_{mc} (r) = \max \left[ 0 , \min \left( 2 r, 0.5 (1+r), 2 \right) \right] ; \quad \lim_{r \rightarrow \infty}\phi_{mc}(r) = 2$ - Osher (Chatkravathy and Osher, 1983)
\(\phi_{os} (r) = \max \left[ 0 , \min \left( r, \beta \right) \right], \quad \left(1 \leq \beta \leq 2 \right) ; \quad \lim_{r \rightarrow \infty}\phi_{os} (r) = \beta\) - ospre – symmetric (Waterson & Deconinck, 1995)
\(\phi_{op} (r) = \frac{1.5 \left(r^2 + r \right) }{\left(r^2 + r +1 \right)} ; \quad \lim_{r \rightarrow \infty}\phi_{op} (r) = 1.5\) - smart [not 2nd order TVD] (Gaskell & Lau, 1988)
\(\phi_{sm}(r) = \max \left[ 0, \min \left(2 r, \left(0.25 + 0.75 r \right), 4 \right) \right] ; \quad \lim_{r \rightarrow \infty}\phi_{sm}(r) = 4\) - superbee – symmetric (Roe, 1986)
\(\phi_{sb} (r) = \max \left[ 0, \min \left( 2 r , 1 \right), \min \left( r, 2 \right) \right] ; \quad \lim_{r \rightarrow \infty}\phi_{sb} (r) = 2\) - Sweby – symmetric (Sweby, 1984)
\(\phi_{sw} (r) = \max \left[ 0 , \min \left( \beta r, 1 \right), \min \left( r, \beta \right) \right], \quad \left(1 \leq \beta \leq 2 \right) ; \quad \lim_{r \rightarrow \infty}\phi_{sw} (r) = \beta\) - UMIST (Lien & Leschziner, 1994)
\(\phi_{um}(r) = \max \left[ 0, \min \left(2 r, \left(0.25 + 0.75 r \right), \left(0.75 + 0.25 r \right), 2 \right) \right] ; \quad \lim_{r \rightarrow \infty}\phi_{um}(r) = 2\) - van Albada 1 – symmetric (van Albada, et al., 1982)
\(\phi_{va1} (r) = \frac{r^2 + r}{r^2 + 1 } ; \quad \lim_{r \rightarrow \infty}\phi_{va1} (r) = 1\) - van Albada 2 – alternative form [not 2nd order TVD] used on high spatial order schemes (Kermani, 2003)
\(\phi_{va2} (r) = \frac{2 r}{r^2 + 1} ; \quad \lim_{r \rightarrow \infty}\phi_{va2} (r) = 0\) - van Leer – symmetric (van Leer, 1974)
\(\phi_{vl} (r) = \frac{r + \left| r \right| }{1 + \left| r \right| } ; \quad \lim_{r \rightarrow \infty}\phi_{vl} (r) = 2\)
上面所有对称型限制器都具有如下对称性质:
\begin{aligned}
\frac{ \phi \left( r \right)}{r} = \phi \left( \frac{1}{r} \right)
\end{aligned}
\end{eqnarray}\]
这个对称性质可以保证限制过程不管是向前或者向后结果都是相同的。
除非明确指出,以上限制器函数都是二阶。这代表它们都设计为通过解的某个特殊区域,及TVD区域,来保证格式的稳定性。二阶精度,TVD限制器至少满足以下条件
- \(r \le \phi(r) \le 2r, \left( 0 \le r \le 1 \right)\)
- $1 \le \phi(r) \le r, \left( 1 \le r \le 2 \right) $
- \(1 \le \phi(r) \le 2, \left( r > 2 \right)\)
- \(\phi(1) = 1\)
二阶TVD格式的允许区域如下图所示(Sweby Diagram),每个限制函数同时绘制在图中。在Osher和Sweby限制函数中,\(\beta\)取值为1.5
一般的minmod限制器
余下的一种限制器形式较特殊,val-Leer的单变量限制器(van Leer, 1979; Harten and Osher, 1987; Kurganov and Tadmor, 2000)。其形式如下
\phi_{mg}(u,\theta)=\max\left(0,\min\left(\theta r,\frac{1+r}{2},\theta\right)\right),\quad\theta\in\left[1,2\right].
\end{equation}\]
注意:当 \(\theta=1\) 时 \(\phi_{mg}\) 耗散形最强,当 \(\theta=2\) 时, \(\phi_{mg}\) 简化为 \(\phi_{mm}\),耗散性最小。
流量限制器(Flux Limiter)的更多相关文章
- 快速入门系列--WCF--06并发限流、可靠会话和队列服务
这部分将介绍一些相对深入的知识点,包括通过并发限流来保证服务的可用性,通过可靠会话机制保证会话信息的可靠性,通过队列服务来解耦客户端和服务端,提高系统的可服务数量并可以起到削峰的作用,最后还会对之前的 ...
- 单IP、网络、别名管道限速的设置
单IP.网络.别名管道限速的设置 在设备上,控制网络限速最常用的是流量×××中的“限制器”,你可以把它理解为一个管道,20Mit/s的下载管道,那么下载的最大流量就不会超过20Mit/s.流量限制器结 ...
- flask扩展系列之 - 访问速度限制
flask-limiter 是一个对客户端的访问速率进行限制的flask扩展.可以自定义一些访问的(速度)限制条件来把那些触发限制的请求拒之门外.一般常用来进行对爬虫的限制. 下面就常见的用法,举了一 ...
- 流量控制闸门——LimitLatch套接字连接数限制器
Tomcat作为web服务器,对于每个客户端的请求将给予处理响应,但对于一台机器而言,访问请求的总流量有高峰期且服务器有物理极限,为了保证web服务器不被冲垮我们需要采取一些措施进行保护预防,需要稍微 ...
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- Servlet过滤器——过滤器分析流量
1.概述 Servlet过滤器可以对用户提交的数据或服务器返回的数据进行更改.任何到达服务器的请求都会首先经过过滤器的处理.本实例应用过滤器的这个特点,编写了一个在过滤器中统计网站流量的实例. 本实例 ...
- 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- JAVA中限制接口流量、并发的方法
JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用.简单来说, RateLimiter类是控制 ...
- 探索从 MVC 到 MVVM + Flux 架构模式的转变
本文首发于 my blog 在业务中一般 MVVM 框架一般都会配合上数据状态库(redux, mobx 等)一起使用,本文会通过一个小 demo 来讲述为什么会引人数据状态库. 从 MVC 到 MV ...
随机推荐
- 【数据结构与算法Python版学习笔记】递归(Recursion)——定义及应用:分形树、谢尔宾斯基三角、汉诺塔、迷宫
定义 递归是一种解决问题的方法,它把一个问题分解为越来越小的子问题,直到问题的规模小到可以被很简单直接解决. 通常为了达到分解问题的效果,递归过程中要引入一个调用自身的函数. 举例 数列求和 def ...
- [软工顶级理解组] Beta阶段事后分析
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 质量提高 会议截图 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰 ...
- 百度OCR技术博客
百度OCR工具链使用 百度OCR的API使用总体来说比较容易,主要步骤为:注册云平台并登录,选择服务并创建应用,保存API Key以及Secret Key,选择调用API. 注册登录百度云平台 首先需 ...
- OO第三单元
OO第三单元 JML语言理论基础,应用工具链 JML语言基础 JML简介 定义: JML 是一种形式化的. 面向 JAVA 的行为接口规格语言 作用: 开展规格化设计.这样交给代码实现人员的将不是可能 ...
- TVS管相关知识
在设计中,使用到了TVS管,在之前的设计中没有特别关注TVS管.今天查了一些资料,算是简单的有个了解. TVS管是一种保护器件.它的英文全称为 transient voltage suppressor ...
- 写一段java程序来执行linux命令
摘要 在日常开发中,程序员需要经常查询服务器日志来排查问题和调试程序.如果是本地调试还好,但项目一旦发布到服务器上,每次查日志就很麻烦,而且日志量巨大,有时我们无法找到我们需要的信息.经常需要借助第三 ...
- caffe的idx1-ubyte和idx1-ubyte文件转换成图片文件和文本文件
train-images-idx3-ubyte : training set images train-labels-idx1-ubyte : training set labels t10k-i ...
- uvm中类继承和phase
1,uvm中类继承关系如下所示 2,uvm中phase如下所示
- CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!
摘要:CANN作为释放昇腾硬件算力的关键平台,通过深耕先进的模型压缩技术,聚力打造AMCT模型压缩工具,在保证模型精度前提下,不遗余力地降低模型的存储空间和计算量. 随着深度学习的发展,推理模型巨大的 ...
- Centos7 升级过内核 boot分区无法挂载修
参考连接:https://www.cnblogs.com/heqiuyong/p/11186301.html 故障图 挂载系统盘,光盘启动,急救模式, chroot /mnt/sysimage 报错 ...