全国服务热线

178-9711-7595
行业新闻
当前位置:首页>>新闻中心>>行业新闻
COMSOL:提高 CFD 模型收敛性的有效方法
作者:超级管理员   时间:2024-03-08 10:40:08  来源:本站   浏览472次

如果你正在使用 CFD 分析求解湍流问题,那么可能会发现得到数值解相当困难,因为这需要大量的计算时间。产生这个问题的主要原因是湍流模型方程中的非线性。黏度递变方法通过先求解黏度较高的问题,然后将解作为求解黏度较低的问题的初始条件,可以缩短计算时间。这篇文章,我们将向你展示如何在 COMSOL Multiphysics 中使用这种方法。

为什么黏度递变能提高 CFD 的收敛性?

在开始模拟任何流体的流动之前,我们通常会检查雷诺数公式:(1).png其中  是密度, 是流体的动力黏度。 是特征速度, 是模拟系统的特征长度。

雷诺数是指流动时的惯性力与黏性力之间的比值。计算出雷诺数可以帮助我们确定将要在 COMSOL Multiphysics 中进行的是层流分析还是湍流分析。例如,在特征速度和特征长度都相对较小的微流体通道中,雷诺数较低,所以这种流动是层流。相比之下,对于车辆周身速度较快的流动,雷诺数较高,所以这种流动是湍流。你可以查看文章如何正确模拟不同类型的流体流动,了解关于流动的更多特性。

在使用 CFD 求解流体流动的问题时,找出湍流问题的数值解往往比求解层流问题更具挑战性。为了理解其中的原因,让我们来看一下求解的方程。对于湍流,COMSOL Multiphysics 会求解纳维-斯托克斯方程形式的雷诺平均纳维-斯托克斯(Reynolds-averaged Navier-Stokes,简称 RANS)公式。RANS 公式引入了一个新变量,即湍流黏度,用于描述流动时的湍流等级。湍流黏度是通过模拟中应用的湍流模型所定义的其他方程计算的。

例如,k-ε 湍流模型使用湍流动能(k)和湍流耗散率(ε)计算湍流黏度。湍流模型方程与纳维-斯托克斯方程形式相似,都含有线性项和非线性项。湍流方程中出现的非线性问题是高雷诺数仿真更难以实现收敛的原因。要了解选择哪种湍流模型的更多信息,请查阅文章如何针对 CFD 应用选择合适的湍流模型?

所以,对于高雷诺数的仿真,必须使用湍流模型,并利用 COMSOL Multiphysics 求解高度非线性的方程。一开始就设置一个良好的初始条件有助于使非线性问题收敛,如文章如何求解线性稳态有限元模型中所述。流体黏度决定了方程的非线性程度。我们先求解黏度较高的模型,即求解更可能收敛的弱非线性问题。为了提高收敛性,将求解得到的高黏度结果作为真正要求解的低黏度问题的良好初始条件。这个方法被称为黏度递变。

借助黏度递变方法,先求解黏度较高的流体模型,然后逐渐降低黏度直到期望值,因此我们需要求解一系列模型。黏度较高问题的解用作求解下一个黏度较低问题的初始条件。由于先求解黏度较高的模型,也就是雷诺数更低的模型。因此我们先从更易收敛的弱非线性模型开始。逐步降低黏度(从而提高雷诺数),使其回到原始值,从而将弱非线性问题的求解转变成对强非线性问题的求解,并最终获得初始模型的解。接下来,让我们来看一看如何在 COMSOL Multiphysics 中进行操作。

利用 COMSOL Multiphysics 实现黏度递变

假定 COMSOL Multiphysics 中已建立了一个 CFD 模型,并且希望提高其收敛性。黏度梯度方法包括三个步骤:

  • 创建一个递变参数

  • 将黏度与递变参数相乘

  • 在研究中定义一个递变参数的辅助扫描

首先,定义一个将与黏度相乘的新参数。在参数中设置的“visc_ramp”值并不重要,因为随后定义的辅助扫描会覆盖这个当前值。

1.png

定义参数。

转至材料节点,将流体黏度与“visc_ramp”相乘。比如,如果“visc_ramp”的值100,表示要求解流动问题的流体黏度比初始值高100倍。最终当“visc_ramp”值达到 1 时,回到材料的实际黏度进行求解。

2.png

将黏度与“visc_ramp”相乘。

在稳态研究步骤中,我们为“visc_ramp”创建了一个辅助扫描,并将扫描的数值定为 1000、100、10 和 1 。辅助扫描会求解第一个“visc_ramp”值(1000),将它的解作为求解下一个“visc_ramp”值(100)的初始条件。以相同的方式持续扫描,直到“visc_ramp”达到 1,即求解流体的实际黏度。

3.png

稳态研究步骤。

在计算这个研究时,进度选项卡会显示当前正在求解的“visc_ramp”值。最后,解收敛后,即可查看结果。

4.png

进度选项卡显示正在进行“visc_ramp”值为 100 时的计算。

黏度递变过程如下图所示。该图显示了后台阶流场中湍流的流线与速度,此图来自 COMSOL 案例库中的教学模型。

5.png

三种不同黏度下,后台阶流场中湍流的流线与速度图。

选择扫描的递变参数

在大多数情况下,将开始时的递变参数设为 100 或 10 就可以实现收敛。不过对于有些收敛难度更大的情况,建议将黏度梯度参数的初始值设为较高的值,然后每次降低一个数量级(例如,1000、100、10 和 1)。

在这个示例中,我们先从一个黏度较高的流体(1000)开始,然后定义“visc_ramp”的中间值(100 和 10),帮助求解器过渡到实际流体黏度(1)。如果求解器找不到下一个较低黏度的解,可以尝试使用上一个收敛值和下一个用户指定值之间的中间值,这个过程称为回溯。

为演示回溯,我们将在“visc_ramp”值为 1000 和1 时分别运行辅助扫描。在用递变参数 1000 求解后,软件会尝试用递变参数 1 进行求解。一旦求解器注意到未实现收敛,就会开始回溯,尝试使用递变参数的中间值(本案例中为 501)。如果回溯参数值 501 能够使解收敛,那么求解器会再次尝试用递变梯度参数 1 求解,这一次成功在望!

6.png

进度选项卡显示“visc_ramp”设为 501 时进行的计算。

回溯是帮助求解器在辅助扫描中提高收敛性的很有价值的软件内置方法。不过,用户仍需指定扫描的中间值,便于求解器从高递变值过渡到低递变值。

在有些情况中,求解器使用了回溯法,但在值大于 1 时仍未收敛。这个现象通常表明网格过于粗化,无法解算流场。遇到这种情况时,应先细化网格。另外,请牢记在模型验证过程中一定要进行网格细化研究。

黏度递变和非线性递变的强大功能

这篇文章中展示了如何在 COMSOL Multiphysics 中利用黏度递变方法帮助CFD 模型收敛。为此,我们设置了一个连续的研究,从弱非线性问题着手,逐渐增强非线性,直至求解出初始问题。在求解 CFD 问题时,如果需要使用湍流模型且雷诺数很大,那么黏度递变方法相当有用。

非线性递变方法的应用多种多样。例如,除黏度递变外,还可以逐渐减小自然对流问题中的重力,或者逐渐减小非牛顿流体流动中的流动特性指数“n”。这个方法还可以广泛用于任何非线性物理场问题中,可以查看文章:通过递增非线性改进非线性问题的收敛。

在一个与非线性递变相似的过程中,我们可以逐渐减小系统中的载荷,从而提高其收敛性。流体流动中载荷的递变通常代表入口速度逐渐减小,这是另一个必须牢记的方法。