Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动
-
@Albert-Lee 在 Fluent VOF 耦合Level-Set方法时的Density correction 抑制虚拟流动 中说:
我用来验证虚拟流动的模型是:2D方形计算域,里面填充了一圆形气相区域来验证虚拟流速大小,里面填充一个小方形气相区来验证特征时间。整场无重力(相当于计算域内只有表面张力源项)。介质为水和空气。
没太看懂,你可以把你openfoam的算例清理干净后上传一下
-
@东岳 谢谢东岳老师的回复!
如上图所示,我在这样的举行计算域里面(蓝色为液相,红色为气相,水),初始化的时候气相即为圆,没有重力及其他体积力,0速度场,0相对压力场。界面用CFS模型平衡。这样的话,理论上,计算一段时间之后,流场的速度应该为0(在数值收敛精度以下)。但是一开始算,界面上就会出现这种虚拟速度,速度适量如图所示。该结果实在确保网格无关、时间步长无关的情况下。(有关虚拟流动的研究已经有很多论文,检索 spurious/parasitic currents 即可)。而且,这种速度会导致界面变形,例如在本例中,无法维持为圆形。上图是FLuent 中VOF方法的0.1s计算结果。
以下是相同条件下中 interFoam的模拟结果结果前两幅图是0.1s的相分布和速度云图,后两幅是5s的相分布和速度云图。
可以看到,在0.1s时,由于虚拟流动的存在,圆形的气相区域已经变得有些“方”。在5s时气相直接跑到了一角。
这样比较下来,Fluent中利用PLIC方法捕捉的界面更准确一点。但影响还是很大。因此,我试图利用FLuent中的coupled level set 方法,其帮助文件里面有降到到我在前一问中提到的 density correction 和heaviside correction 。结果发现利用heaviside correction 方法抑制虚拟流动的效果和VOF方法相比差别不大。但是利用density correction效果就很好。
为了确保其准确性,我在上述的计算域中初始化气相区域时将圆形改为正方形,让它来通过计算恢复为圆形。在这一过程中,发现利用density correction计算时,气相区从方形到圆形恢复得特别慢。
我们知道,该过程为毛细力主导,特征时间是 $t=\sqrt{\rho_l R^3 / \sigma}$,在0.01s量级,二利用 density correction计算的结果在1s量级,显然不对。而用其他方法包括 heaviside correction 算的结果在时间量级上正确。
因此,我才在最初的问题中说“严重怀疑fluent中coupled level set 方法中的density-correction有误”。(模拟算例是改的Dam的那个例子,只改了计算域和相分布、物性)折腾了半天还没弄好打包的,Linux盲,请见谅。
在这里是想请教一下您/各位有没有这方面的经验、方法?面临毕业,自己编程序有点来不及。谢谢各位了。
-
@东岳 真的十分感谢!算例上传上来了,见附件。spuriousCurrentArc4-1.zip
-
@Albert-Lee 请问您知道fluent中Vof耦合level set如何进行初始化吗?简单液滴撞平壁算例,初始化时要对液滴区域给定level set function函数值吗? 我用的是heaviside方法。
麻烦看一下这个提问,http://www.cfd-china.com/topic/3500/fluent-vof-和level-set-耦合
-
@Albert-Lee 那您看我这个level set function算的是不是不对啊?
http://www.cfd-china.com/topic/3500/fluent-vof-和level-set-耦合