Rhie-Chow插值有没有对应的连续的微分方程/积分方程?
-
??
cannot understand. -
-
这一项在H.K. 那本书里面也有看见过。
-
OF没有Rhie-Chow,处理的过程大概是这样子的:
1)压力梯度不影响动量的phi
2)压力梯度不影响在压力方程里的系数A
3)压力方程在网格面上算,并且面上的值由邻居网格中心得出
4)压力梯度直接在网格面上算出
5)压力梯度不影响系数A对守恒速度的更新 -
@cfd-china
我的意思是,OF中代码明显是从方程矩阵中抽出系数来做Piso的,也就是只有离散形式。而Fluent TG也是没有给出Rhie-Chow差值实际求解的PDE形式,只有离散形式。我严重怀疑Rhie-Chow差值解的不是N-S方程,而是稳定化修正的N-S方程,收敛到的解和N-S会差一个 项。我的思路是这样的:
- 首先,求解连续的PDE方程本身是没有任何问题的,它是适定的;
- 但是求解离散的FVM同位网格就出了岔子,为啥?
- 一定是离散的过程有问题
- 首先交错的网格求解是没有问题的,对吧
- 那说明只是同位网格有问题
- 而同位网格的问题在于,只有segregate的求解有问题,coupled求解是没有问题的。
- 说明segregate 同位网格离散才会有checker board问题;
-
@程迪
1)Rhie-Chow解的既不是N-S方程,也不是稳定化修正的N-S方程,因为RC跟解方程没有任何关系
2)Fluent TG没有写,不代表Fluent没用RC
3)在OF内实现RC是个很简单的事情,这个时候是RC用来计算进入压力(修正)方程的那个通量的。以下是我随便写的:
phi_RC = (fvc::interpolate(U)&mesh.Sf()) - (((fvc::interpolate(rAU*(Volume))/Volume)*(gradP-gradPBar)&mesh.Sf());
你只是需要在之前定义Volume, gradP还有gradPBar而已
phi_RC算出来之后,进入压力修正方程。 -
@Him
Fluent TG写了用的是Rhie-Chow插值,但是没有给出Rhie-Chow实际求解的PDE,我的意思是当网格和时间步趋于0的时候,求解器整体所逼近的PDE,如果这个PDE不是N-S方程,那么理论上是会有问题的。@李东岳 在另一个帖子给出的三篇论文在证明原始RC会存在时间步和松弛因子依赖的时候的证明方式就是通过证明最终得到的表达式存在关于时间步、松弛因子和体积力的依赖项来证明的。我的问题是,Rhie-Chow插值在网格和时间步趋于0的时候实际逼近的是哪个PDE,根据文献来看似乎是一个修改之后带有
项的压力修正方程,这个方程应该是和不可压N-S方程导出的压力修正方程是不一样的。p.s. 不太明白,RC插值和那个A,H算子是个什么关系?A, H 算子是simple/piso算法这个层次里用到的东西还是RC差值实现的一个技巧?
我觉得RC插值在数学上还有很多东西没讲清楚,比如离散方程用迭代法求解不稳定不代表没有解啊。checker-board解虽然非物理,但是它是满足线性插值得到的离散方程的。那么线性插值得到的离散方程如果用耦合算法求解,是不是还会得到checker-board解?
-
不知道RC在在网格和时间步趋于0的时候实际逼近的是哪个PDE。
RC需要使用U方程的系数,那个系数在OF内用A()获取。
我从来没管过RC插值还会出现棋盘压力的问题,因为我在算稳态的时候不会用那么小的松弛。
-
我的意思是当网格和时间步趋于0的时候,求解器整体所逼近的PDE,如果这个PDE不是N-S方程,那么理论上是会有问题的。
是原始的PDE。至少从松弛来看,人为添加松弛,就是人为的操纵了。如果不添加松弛,使用RC和原始NS方程一样。
-
越来越复杂了。
可否认为Rhie-Chow是用额外的3阶项(对压力方程式4阶项)来平滑掉压力波动的,因为是3阶项,所以不会影响FVM的二阶及以下的空间精度。但是这样的话R-C插值算激波绝对是有问题的,激波的FFT展开后频率很宽,微分高阶项比低阶项大,这玩意儿搞插值还是会抖啊。
关于黑体字书上确实这么解释的。同为网格压力棋格子分布很明显就可以看出来,考虑一维度情况并且方程左边不做处理:
可见关于 的离散后的方程不包含 ,但是却和 联系起来了。这就是棋格子分布的产生。不管什么插值,都是要在 的离散方程添加 的影响。不太明白,RC插值和那个A,H算子是个什么关系?A, H 算子是simple/piso算法这个层次里用到的东西还是RC差值实现的一个技巧?
UEqn.A()
和UEqn.H()
是和SIMPLE以及SIMPLEC有关的,考虑SIMPLE,UEqn.A()
和UEqn.H()
就是离散后压力方程的对角线系数以及临点的影响。可能说的不是很精准但是大体是这个意思。SIMPLEC算法需要重写UEqn.H()
。这部分太复杂了并且感兴趣的人很少。 -
也可以用二阶算激波。
-
-
-
不可压缩流既可以算压力修正方程(pressure correction equation),e.g. SIMPLE - semi-implicit method with pressure-link equation,也可以算压力泊松方程(pressure Poison equation), e.g., PISO - pressure implicit with splitting of operator.
-
可压缩流既可以算压力修正方程(pressure correction equation),e.g. SIMPLE - semi-implicit method with pressure-link equation,也可以算压力泊松方程(pressure Poison equation), e.g., PISO - pressure implicit with splitting of operator.
以上两点都是隐式压力更新,并且压力矩阵的残差在很大程度上控制了质量守恒。算SIMPLE跟PISO只是两个不同的保证质量守恒的方式而已。
那个临点的说法,把很简单的问题复杂化了,已经脱离了Rhie-Chow插值的话题。
-
-
但是RC插值没有离散,因为它是显式计算源项 -- “速度插值+高阶压力导数项”。
11/21