在之前的博客文章中,我们讨论了使用基于场的方法(水平集和相场)为自由液面建模。动网格是另一种可选方法,它能够处理没有发生拓扑变化的自由液面。本文中我们将展示如何使用动网格方法为自由液面建模,并将结果与基于场的方法进行对比。
自由液面问题
为了演示动网格功能,我们继续以介绍相场和水平集方法的博客中的问题为例。实心杆模型一半浸没到小型管道内的水中。值得注意的是,实际上在水平集与相场方法中,动网格功能还可用于指定小矩形杆在液面上来回移动,在动网格方法中亦是如此。
示例问题的几何结构和定义。
自由液面的动网格方法限定了矩形杆的位移并追踪液面的位移。我们通过在动量方程中添加一个源来考虑模型内的重力。为了将动网格方法得到的结果与相场和水平集方法得到的进行对比,我们对壁使用了 Navier 滑移边界条件。滑移长度等于单元长度。
使用动网格为自由液面建模
在 COMSOL Multiphysics® 软件中,对于相同的问题,动网格自由液面建模功能与上一节讨论的水平集与相场法属于完全不同的方法。利用动网格方法,自由液面被建模为分隔两个域的几何面。表面张力及其他表面力被直接施加在自由表面,作为边界条件。
利用自由表面特征,我们可以计算出任意时间点上的液面流体速度,将之作为自由液面的位移速度。动网格方程的解可以平滑地取代流体域中的网格节点。我们随即计算了移动坐标系中的纳维-斯托克斯方程,并同时求解动网格方程,从而获得移动量。
通过该方法,我们完成了液体的建模,与此同时,我们以表面张力和压力效应的形式对自由液面上方的气体域内的流场进行了处理。因此,我们不能使用当前方程获得气相流场(当然,你可以通过手动添加第二个流体流动接口,或者通过使用“微流体模块”的两相流,动网格接口中的流体-流体界面特征改变这种情况)。此外,COMSOL Multiphysics 中的动网格方程无法处理自由液面的拓扑变化,比如破碎波。
在某种程度上,相比于水平集和相场法,利用动网格方法为自由液面建模显得更加简单干脆,因为如前文所述,我们可以直接将表面张力及其他表面力用作边界条件。不求解自由液面上方空气域内的流体流动有利于大大提高计算速度,因为纳维-斯托克斯系统的自由度数量几乎减少到基于场的方法的一半。在这种情况下,我们之所以忽略空气域的影响,是因为水和空气的密度与动力粘度比值很大。所造成的差异将在下一节中详述。
比较动网格与相场法的结果
下图比较了分别使用动网格与相场法计算的自由液面。我们可以看到两种方法的结果非常一致,自由液面的形状和速度场的流线都很相似。
不过模型并非完全相同。在相场法的案例中,自由液面上方的空气域在液面上产生了微小的阻尼效应,而动网格案例中不存在空气域,并且液面只“看见”流体表面上气压恒定不变。换句话说,动网格案例中的自由液面不必移动空气,并且可以利用这种能量使水波更高,表面波动更大。
使用两相流动网格接口(左图)和相场方法(右图)计算得到的不同时间下的自由液面形状和速度场。
下方动画展示了利用动网格方法求得的动态自由液面,我们可以将它与上一篇中只用相场法生成的动画作比较。可以清晰地看到,与相场动画相比,自由液面的波动幅度更大,反应也更快。这可能是因为动网格中没有空气域,而水平集和相场方法中的空气域会阻碍自由液面运动。
利用动网格方法获得的自由液面动画。
我们还可以将默认的自由液面动网格功能与两相流动网格接口进行比较,后者能够分析液相和气相的流场。可以看到,不管是包含两相的动网格,还是相场法,流场和速度矢量的大小都非常相似。对于三种情况(动网格、相场及包含两相的动网格),自由液面的形状均相似,但是在此例中,两个动网格案例所对应的形状更加相似。根据仿真结果,结论是空气域对流体的速度场具有一定的阻尼效应。此外,动网格和相场法在处理相边界的壁面上的差异似乎是造成自由表面形状不同(尽管差异很小)的原因。
使用两相流动网格接口得到的结果。
自动重新划分网格与自由液面
针对相场、水平集和动网格方法,我们还考虑到使用自动划分网格功能,以防单元质量太差而不能满足质量要求。质量与单元的最大角有关,还与最大和最小边的关系有关。如果角度很大,或单元被压缩得很厉害,就意味着单元质量很差,若勾选了自动重新划分网格功能,便会触发软件重新划分网格。下图显示了对示例问题应用自动重新划分网格的效果。0.35 秒后单元质量太差,从而触发了软件重新划分网格,这将大幅改善网格的质量。
自动重新划分网格之前(左图)及之后(右图)的网格。我们可以看到小矩形杆右侧的单元在重新划分网格前被拉长了,但在重新划分网格后变得更加各向同性。
流-固耦合与自由液面
在示例问题中,我们规定了矩形杆在液面上的位移。我们可以在矩形杆上施加作用力,并计算矩形杆在流体的反作用力下产生的位移,从而直接地对问题进行扩展。这就得到了所谓的流-固耦合(FSI)问题。
COMSOL Multiphysics 软件 5.3a 版本引入了新的流-固耦合接口,方便用户定义包含流-固耦合的自由液面问题(或两相流问题)。下图展示了经典的流体壁塌陷问题,但是现在一个小小的障碍物挡在流动路径上。我们将表面张力的影响、液体界面的位置及流动与被流体冲击的晶须的结构位移、应力和应变完全耦合。
动画演示了被水流波动冲击的晶须的两相流 FSI 问题。深度为 5 mm。
根据示例问题得到的一些结论
我们在本系列博客的第一篇中得出结论:当对受表面张力影响的系统的自由液面建模时,相场法在性能与精确度平衡方面优于水平集方法。示例问题的解表明采用自由表面特征的动网格方法在性能与精确度平衡方面甚至更出色。不过,它也存在两个缺点:
- 不能处理拓扑变化。
- 未默认分析自由液面上方的空气(或其他气体)。
我们可以得出结论:如果没有预见拓扑变化,动网格方法是自由液面建模的首选。如果存在表面张力和拓扑变化,那么相场方法是最优选择。或许在之后的博客文章中,我们可以选择表面张力可忽略不计,且有或无拓扑变化的问题,全面比较这三种方法。
更多资源
阅读上一篇关于水平集和相场法的博客文章。
本文的所有示例均可在“案例下载”中找到。如有兴趣,你可以尝试重现结果并验证结果的有效性!欢迎研究分析本系列博客所提到的模型,并阅读更多关于自由表面建模的文章:
评论 (0)