流量限制器(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 ...
随机推荐
- OO第四单元UML作业总结暨OO课程总结
目录 目录一.第四单元UML两次作业架构设计第一次作业第二次作业二.架构设计总结与OO方法理解演进三.测试理解与实践演进四.课程收获总结五.课程改进建议六.尾声 一.第四单元UML两次作业架构设计 第 ...
- C语言链表实例--玩转链表
下图为最一简单链表的示意图: 第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量.以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 n ...
- 从四个方向分析我们可以从linux学到什么
我们真正关心的是自身可以从这个生态圈中获得些什么?说得更直白一点就是,我们可以从linux系统上面学到点什么,它对我们个人的成长和发展有哪些积极的因素.个人觉得,完全可以通过下面四个维度并结合自己的兴 ...
- 零基础入门C语言超详细的字符串详解
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...
- python画图的工具及网站
①Gallery - Matplotlib 3.4.3 documentation 学会模仿并超越 ②Examples - Apache ECharts js网页端动态展示 ③WEB色見本 原色大辞典 ...
- 你一定不知道的Unsafe用法
Unsafe是什么 首先我们说Unsafe类位于rt.jar里面sun.misc包下面,Unsafe翻译过来是不安全的,这倒不是说这个类是不安全的,而是说开发人员使用Unsafe是不安全的,也就是不推 ...
- 与 Python 之父聊天:更快的 Python!
Python猫注: 在今年 5 月的 Python 语言峰会上,Guido van Rossum 作了一场<Making CPython Faster>的分享(材料在此),宣告他加入了激动 ...
- python fnmatch & glob
1,转载:Python模块学习 - fnmatch & glob - Dahlhin - 博客园 (cnblogs.com) 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名 ...
- Codeforces 1009E Intercity Travelling | 概率与期望
题目链接 题目大意: 一个人要从$A$地前往$B$地,两地相距$N$千米,$A$地在第$0$千米处,$B$地在第$N$千米处. 从$A$地开始,每隔$1$千米都有$\dfrac{1}{2}$的概率拥有 ...
- cf17B Hierarchy(额,,,水)
题意: Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbod ...