Cyclic周期性边界条件
-
@东岳 全场的压力都趋近于0了,感觉是压力释放没了。
没有关注过前后出口压差诶。应该是不断下降得吧。 -
@Calf-Z-DNS 我最近计算周期边界也发现了这个问题。我测试的系统是个2维系统,左右(x方向)壁面,上下(z方向)周期,,y方向一层网格empty,算气固两相流,用twoPhaseEulerFoam求解器,重力方向沿-z,然后用fvOption的meanvelocityForce保证气体全场平均速度为定值,初场给定固含率0.1。计算开始全场平均压力不断降低,不过监测的全场平均气体速度确实是我给定的值,最奇怪的是整体固含率会不断降低,最后会降到非常低,局部最低固含率都负数了,然后固含率又开始升高,压力也开始升高……总感觉openFOAM里面的cyclic边界有问题……把fvOption去掉,仅在重力下计算,也有同样的现象。不知道你对这个问题有什么新的认识吗?
-
Sorry, I don't have chinese input this moment.
总感觉openFOAM里面的cyclic边界有问题?
Can you provide your test case?
I did not see any report (cyclic precision issue) in OpenFOAM bug report website.
I create a new case to study it if you interested in.
Comment anything as you will.
-
@random_ran 谢谢您的回复,这是我的测试算例cyc_test.zip
我的算例是两相流的2D算例,求解器用的twoPhaseEulerFoam,重力沿-z,然后fvOption的meanvelocityForce给了气体一个+z方向的源项保证气速,计算开始后我输出的全场平均压力在不断降低,固含率也无法保持恒定。虽然不可压缩流动的绝对压力没有意义,但是总压和固含率的变动无法解释。并且这种情况在撤掉气体上的源项,也即只施加重力的情况下仍然存在。
关于channel395的算例,如果把初始的压力场不设为0,也会出现迅速泄压的情况,不过看起来流场还是比较正常。对于C++和openFOAM都是刚接触,基本照着算例改的,很多设置还没有搞清楚,不知道是不是我的设置有问题?
-
@random_ran @Calf-Z-DNS @东岳 各位大神,我在CFD-online上找到了一个类似的问题%(#006fff)[https://www.cfd-online.com/Forums/openfoam-solving/146839-cyclic-boundary-violates-mass-conservation.html],似乎cyclic BC在处理两相流的时候会导致质量不守恒。苦于刚接触C++和openFAM,我确实看不明白cyclic边界具体是如何实现的。请问各位有什么理解,有什么文章可以推荐一下吗?
-
-
@random_ran 谢谢您的关注。我在controlDict里面输出了全场的固含率、速度、压力,不需要计算完就可以看到质量明显的不守恒。
如果您把fvOption加的源项去掉,仅在重力作用下计算还会出现颗粒相沿重力反方向运动的非物理现象……
但是如果我不使用周期边界,上下边界也设成壁面,是会出现比较正常的固相堆积在底部,气相被挤压到上部运动趋势和结果,且质量是守恒的。
所以我考虑问题应该还是出在cyclic边界上,具体需要看一下cyclic怎么实现,对于单向流和多相流的差别在什么地方,我最近也好好研究一下。如果您有什么想法和发现,欢迎讨论和指导。
-
@Calf-Z-DNS 圆管不会泄压吗?我计算二维的box,左右壁面,也是会出现泄压的问题。如果cyclic确实是周期边界的话,我觉得即使是3维无限大平板间流动,或者三维全周期流动,也都不应该出现泄压或者质量不守恒的问题,因为从任何边界流出去的都会从对应的neighbour流进来,所以我怀疑openFOAM里面的cyclic并不是准确的periodic,当然具体还是要看代码,我最近正在看。
-
@气固两相流 您好,我在simpleFoam里加了能量方程想测试一下fixedJump边界,是三维槽道算例,边界上会出现如下图的情况,在槽道出入口处有些网格上的结果感觉比较异常。
该算例中采用fvoptions添加动量源项实现动量方程的周期边界,因此速度的边界就是cyclic,在出入口处云图就很平滑:
除此以外,我在对一个横掠管束的算例中对压力采用fixedJump边界的时候,也出现了这种现象(压力场):
但是在采用fvoptions添加动量源项时边界处结果就比较正常(虽然对管束这么实现周期边界是不正确的):
还有就是采用这种边界,温度场好像会因为数值误差的累计(存疑)使得整体计算区域温度越算越高,下图分别是采用simpleFoam刚开始计算和很久之后的温度场分布,明显发现计算很久之后的温度场温度整体偏高,按理说稳态计算应该是不变的才对。(另:这个网格原来是用来算DNS的,所以我觉得算很久之后出现的这种温度场波动应该是算出湍流脉动了):
这是我最近调试fixedJump边界遇到的一些问题,烦请大佬有时间帮忙瞅瞅~
如有描述不清的地方,还请多多指教! -
@xiexiaoyang simpleFoam怎么加入的温度场
-
@xiexiaoyang https://openfoam.org/release/2-2-0/boundary-conditions/ 我看了下这个边界条件的介绍,看起来更倾向于在计算域内部添加baffle然后实现某种jump。类似计算域内部添加的fan边界条件。所以你目前这种前后面肯定不是baffle,经过你测试,如果用起来有问题,那应该就是不能用这个fixedJump边界条件。
simpleFoam加温度,为何不用rhoSimpleFoam。
-
@xiexiaoyang 感谢反馈!