有限体积怎么算的Limiter中那个梯度比例r之类的东西?
-
如题,感觉文献里limiter有几种吧,一个是梯度限制器,gradient limiter,
,还有一个是通量限制器,flux limiter, , 是低阶的low order flux,比如upwind flux, 是高阶的high order flux,比如中心差分,然后 是限制器函数。到底有啥联系没?特别是对于非正交的有限体积的多面体网格,具体怎么搞的?因为只有网格面两边的信息呀。
而且我发现OF里没有fvm::grad,只有fvc::grad,感觉这玩意儿太扯了,至少Gauss cell based 应该可以做成fvm::grad吧。
-
@程迪
for example
mplementation of semi-discrete, non-staggered central schemes in a colocated, polyhedral, finite volume framework, for high-speed viscous flows DOI: 10.1002/fld.2069
里公式11是酱紫的: 分别是当前单元P和临近单元N的标量 的值。 是P网格中心到N网格中心的矢量。but,这破玩意儿没给出处,都不知道是咋来的。。。
-
参考
https://www.nas.nasa.gov/assets/pdf/techreports/2005/nas-05-007.pdfslope limiter等价于flux limiter,在FVM的REP过程中更natural...
-
没,还是不知道那个公式咋来的,不过基本解决了flux limiter 和slope/gradient limiter的等价关系问题。
但是这玩意儿也是个大坑,对于多维网格带skew和non-uniform的情况,限制器设计和计算量都挺大。
OpenFOAM具体实现还没看太懂。有一个先有鸡还是先有蛋的问题,到底是interpolation先调用gradient呢?还是gradient调用interpolation?
我看的文章里是先leastSquare算gradient,不用Gauss的情况下是不用插值的。然后interpolation可以用一些limited gradient。
暂时只看懂了cellLimited, faceLimited没看懂。
4/5