先介绍下背景:最近有位学生使用XFlow,感觉碰到了一个非常奇怪的问题,在用XFlow中的多相流模型研究水射流时,发现进出口质量不在一个数量级上,或者说质量不守恒,或许是XFlow的一个bug?
初始拿到问题的时候,CAE从业者也很纳闷。但心里还是坚持XFlow应该不会犯这么低级的错误,否则XFlow就别在市面上混了。既然选择相信XFlow没问题,那么就得查证这位学生的模型问题到底出在哪里。
来看一下这个水射流模型。
几何是一个很简单的组合直管道,包含一小段圆柱管和一大段方管,基本尺寸:圆柱段直径1mm,长度4mm;方管段边长3mm,长度20mm。
边界条件也很常规:左边端面inlet速度进口,15m/s;右边端面压力出口,表压0。
仿真后的视频动画是这样子的:
动画看起来也没有什么异常,可是在列出进出口的mass flow的时候,却是下面这样:
入口的mass flow是正常的,如下:
出口的mass flow却是这样:
看起来出口的质量流和入口的质量流确实差了数量级。出入口的质量流是如下的定义,是一个定积分,根据公式,在射流经过出口后,出入口的质量流确实应该至少在同一个数量级上。
那么小伙伴们可能会问了:是不是仿真时间太短了导致还没稳定下来?可以告诉大家的是,这个案例会和仿真时间没有关系,因为该案例的仿真入口速度15m/s,仿真时间2ms,射流已经流出出口,从仿真动画也可以看出射流已经流出出口。
那么问题会出在哪里呢?
仔细看一下动画的每一帧,以最后一帧为例:
发现了什么问题?射流的尾流怎么没有严格地经过几何出口呢?
再来看原始模型设置,原来使用了自适应加密,却没有使用尾流长度控制,而XFlow在默认的情况下,在没有尾流长度控制的时候,至少会在流体的边界处保留一层格子,所以射流的尾流并没有严格地经过几何出口。从中间切面的最后一帧地格子分布也可以看出来。
解决办法也很简单,就是利用尾流长度控制把整个长度包含在尾流控制长度里。当然,如果不关心出口的质量流,上述设置也没有问题。或者CAE从业者教给大家另外一种处理方式:复制一个出口面到尾流经过的区域内,并设置用户自定义域函数。如下图所示,重新计算后,复制面的质量流就和进口面接近相同了(为什么不严格相同,大家想一想?可留言回复讨论)。
既然谈到了质量流问题,再继续沿着这个话题深入探讨一下XFlow多相流中总质量overall mass的问题。
还拿上述水射流案例为例,overall mass如下所示:
可能又会有小伙伴会问:为什么总质量是一直线性增加的呢?
CAE从业者和大家一起探讨一下。
XFlow对overall mass并没有详细的说明,只有下面一个积分公式。所以严格说来我们并不知道XFlow是怎么计算overall mass的。
但这并不妨碍去我们去探究XFlow算法的真相。从上述射流案例的总质量曲线来推断,对于多相流,XFlow计算的overall mass应该是所有经过流体域的多相的总质量,随着时间是增加的,并非固定流体域中的瞬时质量。
验证方法如下:设置用户自定义域函数,vof*第一相密度 (1-vof)*第二相密度,或者直接将域函数定义为rho,然后定义体积分即可计算总质量,与XFlow自身计算的overall mass进行对比即可。这个验证方法交给感兴趣的小伙伴们自己研究吧。
文章的最后,给自己拉一下票,谢谢各位仿友给CAE从业则投票(识别二维码投票,每人每天可投10票),支持原创,支持科普。