OpenFOAM+IBM
-
各位同学老师好,我最近用openfoam写了几个版本的IBM方法。但是遇到一个很疑惑的问题,请各位老师同学指点一下。 就是对于直接应力法的IBM,比如对于一个圆柱绕流问题,生成一圈ib点, 然后流速插值到ib点上,满足无滑移边界条件,能算出体积力,加到ns里,就是这个ibm方法的基本原理。但是,按理说,只需要圆柱边界处一圈布置ib点就可以了,然后圆柱内部相当于虚拟流体来计算,但是我写完代码这样计算得出的cd,cl不对。必须把圆柱内部占据的流体cell也按照无滑移边界条件算体积力加回刀ns方程才能算出正确结果,这样的话,如果对于静止圆柱绕流,那么圆柱内部的流场就是静止的了,不存在虚拟流体的计算了。但是原理上来说,应该没必要这样的。只需要外边一层节点,而且很多文章也写了在圆柱处布置一圈ib点就可以。请问有没有熟悉这方面的老师和同学呢?谢谢。
-
@李东岳 老师,我解决这个问题了,现在还是只需要边界一圈点就行了,结果正确。运动物体也验证了。固体内部的虚拟流体在ns中正常计算,只是在边界处和外部流体方向相反,保证刚好边界处满足无滑移。
我自己测试,这种虚拟流体的方法,和固体内部也算作固体cell满足无滑移相比,后者数值上更稳定,不会出现我题目里出现的问题。但前者,在处理运动物体时候,杂散力震荡会比较小,杂散力震荡是ibm的老问题了。Extended版本的我看了,是ghost cell的方法,我也写了个类似的版本,出现了极大的杂散力震荡。所以我又用直接应力法,然后只在边界布置ib点但固体内部虚拟流体正常计算的方法。本来内部流体就不应该影响外部流体,布置一圈点满足边界上的无滑移即可,之前的错误应该是中间速度更新体积力时候导致的数值上的误差,因为我在体积力的更新那里加入了一篇文章里用的一个小小的亚迭代,问题就解决了。
-
您好,我现在也在学习openfoam+ibm,可以和您交流一下吗
-
@rachel0096 您好 我也在持续学习中 可以在这个帖子里有啥问题直接问我 如果我知道的话肯定就解答一下
-
@oitocfd 不知道您有没有看过Meldi教授的《A pressure-corrected Immersed Boundary Method for the numerical simulation of compressible flows》链接如下:https://www.sciencedirect.com/science/article/pii/S0021999118304947 ?还有就是想问一下初入门学习ibm方法,您有什么建议呢,我现在略微有点迷茫
-
@rachel0096 我没看过他这个 但基本都大同小异 其实 写一个ibm在openfoam就用不了多少代码 我也就看了几篇文章 找准一篇你觉得好实现的对着做 你可以先用最简单的方法 比如在pimplefoam里 对于2d圆柱绕流 写一个函数检测小于半径r范围内的cell 这样就检测出一个圆柱范围内的流体cell 标记为1 其他流体的cell标记为0 然后在压力方程那里 根据固体cell和desired velocity的速度差算出体积力 加给phi那里 进入压力迭代 这就是一个最简单的ibm 这个弄对了再加上二阶插值分布函数那些来考虑更高精度的界面识别