使用黏度递变方法提高 CFD 模型的收敛性

2016年 3月 29日

你是否正在通过 CFD 仿真分析求解湍流问题?那么,你可能会对这种情况很熟悉:得到数值解相当困难,因为这需要大量计算时间。这些困难是由湍流模型方程中的非线性引起的。黏度递变方法可以通过求解黏度较高的问题,并将其解作为黏度较低的问题的初始条件,帮助减少计算时间。这篇博客将向你展示如何在 COMSOL Multiphysics 中实现这种方法。

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

在开始任何流体的流动仿真之前,通常都会检查雷诺数,其定义如下:

Re = \frac{\rho U d}{\mu}

其中,\rho 为密度,\mu 为流体的动力黏度。U 为特征速度,d 为模拟系统的特征长度。

雷诺数指流动时惯性力与黏性力之间的比值。计算出雷诺数有助于确定使用COMSOL Multiphysics 分析的是层流还是湍流。例如,在特征速度和特征长度相对较小的微流体通道中,雷诺数较低,流动为层流。作为对比,汽车附近气流速度快,雷诺数较高,流动则为湍流。你可以查阅之前的博客,了解关于流动的更多特性。

在使用 CFD 仿真求解流体流动问题时,找出湍流问题的数值解往往比求解层流问题更具挑战性。为探明其中的原因,让我们来看一下求解的方程。对于湍流,COMSOL Multiphysics 会求解 Navier-Stokes 方程形式的雷诺平均 Navier-Stokes(RANS)公式。RANS 公式引入了一个湍流黏度变量,用于描述流动时的湍流等级。湍流黏度是通过软件中内置的湍流模型所定义的其他方程计算的。

例如,k-ε 湍流模型使用湍流动能(k)和湍流耗散率(ε)计算湍流黏度。湍流模型方程与 Navier-Stokes 方程形式相似,都包含线性项和非线性项。湍流方程中引入的非线性问题是高雷诺数仿真更难实现收敛的原因。了解应该选择哪种湍流模型,请查阅这篇博客

所以,对于高雷诺数仿真,我们必须使用湍流模型,并且使用 COMSOL Multiphysics 求解的方程会变得高度非线性。设置一个良好的初始条件有助于非线性问题收敛,如这篇文章所述。流体黏度决定方程的非线性程度。通过先求解黏度较高的模型,我们可以求解更容易收敛的弱非线性问题。然后,将较高黏度问题的解作为要求解的低黏度问题的良好初始条件,来提高收敛性。这一方法被称为 黏度递变

可以使用黏度递变方法先求解一组黏度较高的流体,然后逐渐降低黏度直到返回所需的值。黏度较高问题的解用作下一个黏度较低问题的初始条件。先求解黏度较高的模型,也就是雷诺数更低的模型,使我们可以先从更容易收敛的弱非线性模型开始求解。通过逐步降低黏度(从而提高雷诺数)直到其回到原始值,我们可以将弱非线性问题转变为强非线性问题,并且在此程序的最终获得初始模型的答案。接下来,让我们看一看如何在 COMSOL Multiphysics 中进行操作。

使用 COMSOL Multiphysics 实现黏度递变方法

假定我们已经使用 COMSOL Multiphysics 建立了一个 CFD 模型,并且希望提高收敛性。黏度梯度方法分三个步骤:

  • 创建递变参数
  • 将黏度与递变参数相乘
  • 在研究中为递变参数定义一个辅助扫描

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

显示在 COMSOL Multiphysics 中如何定义黏度递变参数的屏幕截图。
定义新参数。

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

显示黏度如何与 visc_ramp 相乘的屏幕截图。
将黏度与 “visc_ramp” 相乘。

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

COMSOL Multiphysics 中稳态研究步骤图。
稳态研究步骤。

在求解此研究的同时,进度 选项卡会显示当前正在求解的 “visc_ramp” 值。最后,解实现收敛,我们就能查看结果。

显示仿真计算的进度选项卡屏幕截图。
进度选项卡显示正在进行 “visc_ramp” 值为 100 时的计算。

黏度递变过程图显示如下。该图显示后台阶流场中湍流的流线与速度,图像来源于COMSOL 案例库的案例模型

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

选择用于扫描的递变参数

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

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

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

进度选项卡中显示黏度递变解的屏幕抓图。
进度选项卡显示了 “visc_ramp” 设为 501 时的计算。

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

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

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

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

非线性递变方法可以应用于各种问题。例如,除黏度递变外,我们还可以逐渐减小自然对流问题中的重力,或逐渐减小非牛顿流体流动中的流动特性指数“n”。这一方法还可以广泛用于任何非线性物理场问题,如这篇文章中重点讨论的问题

在类似于非线性递变的过程中,我们可以逐渐减小系统中的载荷,从而提高其收敛性。流体流动中载荷递变通常意味着入口速度逐渐减小,这是另一种非常有用的方法。

想了解更多相关这种方法的更多内容,并使用此方法求解你的 COMSOL Multiphysics 仿真吗?请立即联系我们


评论 (0)

正在加载...
浏览 COMSOL 博客