绘制代数残差以研究模型的收敛性

Magnus Ringh 2016年 4月 27日

COMSOL Multiphysics 5.2 版本新发布的 residual 算子可用于计算并绘制模型的代数残差,进而有效解决模型的收敛性问题。本篇博客文章将介绍如何使用 residual 算子对湍流仿真模型的收敛性进行可视化处理,并帮助您准确地了解该模型的收敛特性。

什么是代数残差?

当求解有限元模型时,了解结果的精确度十分重要。根据网格(离散化)和所求解方程的性质,代数残差只是多种误差来源中的一种。计算误差的来源包括以下方面:

  • 截断误差(又称有限元方法的 Galerkin 误差)。
  • 正交误差 是由于使用数值方法对有限元积分进行近似处理而产生的。
  • 几何近似法误差 是因采用多项式表示法表征真实几何结构而产生的,这是一种临近弯曲边界,或位于弯曲边界上的单元积分误差。
  • 代数误差 因过早终止求解器(或使用了不恰当的容差)而产生。使用 residual 算子可存取这类误差。

一般情况下,代数误差(且应该)比截断误差小得多。然而当遇到收敛性问题时,代数残差会变大,并且能反映出模型中问题产生的原因。

与 COMSOL Multiphysics 已给出的相关信息(例如收敛数,即按比例缩放的全局数)完全相反,residual 算子可提供模型中每个变量的未缩放残差值,同时还能表明该物理量残差的空间分布情况。残差是来源于有限元离散化的最新计算残差矢量,但被解释为连续的空间场物理量。空间分布有助于准确找出建模域内残差相对较大进而阻碍解的收敛性的区域。模型中可能出现的问题包括:

  • 部分建模域的网格分辨率不足
  • 几何结构中出现尖锐边角
  • 边界条件不适合或不兼容

让我们了解一下如何使用 residual 算子来精确绘制及评估模型中的代数残差。

如何向模型添加代数残差

稳态和瞬态仿真都能使用 residual 算子。将 residual 算子添加到模型之前,需要在稳态或瞬态求解器的高级 子节点设置中将其激活。存储上一个残差 默认设为 Off。如要计算残差,请选择求解时;如要计算残差并将其存储在输出中以进行后处理,则应选择求解和输出时。将残差存储在输出中,便可将其用于绘图以及一般的后处理,这一操作需要额外的内存资源,但如果您只是想在求解时绘制残差,则没有必要使用这一操作。

在 COMSOL Multiphysics 中向模型添加代数残差的设置窗口。
指定上一个残差值储存方式的设置。

在 COMSOL Multiphysics 中使用 Residual 算子:以流体动力学为例

为了展示residual 算子是怎样帮助我们了解数值扰动进入有限元模型并进行扩散的方式,可以打开“案例下载”中的台阶湍流流场教学模型。此案例使用的是 k-ɛ 湍流模型,展示了一个经典的背阶梯式流场的二维几何结构,其中的台阶角在湍流流动仿真中形成一个回流区。
此版本的模型包含了绘制求解时动量方程(速度场)的残差。为此,“速度”绘图组下包含带有表达式 residual(spf2.U) 表面 绘图节点,其中 spf2.U 表示速度大小。

表面绘图节点的设置窗口显示了使用 residual 算子作为绘图表达式。
表面绘图节点“设置”窗口的一部分,使用 residual 算子作为绘图的表达式。

软件会计算每一次分离式迭代的更新。在分离式 求解器节点中,“伪时间步进”用于稳定和加速,选择“速度”绘图组来绘制求解中显示的结果。对于此类绘图,将存储上一个残差 特征设为求解时 选项就足够了。此外请注意,如果选择残差 作为分离式求解器的“终止准则”,所得的残差值将与 residual 算子给出的值完全一致。不过,针对默认解或残差准则, residual 算子还会提供其他重要信息。

屏幕截图显示了分离式求解器的设置窗口。
“分离式”求解器的设置窗口,可在 求解中显示结果栏下指定残差绘图。

这个案例清楚地表明了当使用某种稳态方法(此例中为伪时间步进)求解传递问题时会发生什么。我们需要将“背阶梯扰动”造成的残差从区域中移除。只有通道内的“扰动”被移除,残差才会降低,这样仿真才能结束。下方截图显示了残差相对较大的区域从入口移动到出口的过程。

仿真显示了求解开始时的速度场残差绘图。
求解结束时的速度场残差。

求解开始与即将结束时的速度场残差。

收敛图证实了当较大的残差消失后,仅需很少的迭代次数便可使起初缓慢的收敛转变为快速收敛。此现象符合扰动和误差会根据近似方程来发展这一事实,本文中的案例正是将以对流为主导的流动方程进行了瞬态近似处理。因此各类误差中需要将时间从域中移除,该时间对应于与伪时间步进迭代。

图像描绘了背阶梯式教学模型的收敛性。
“背阶梯式湍流流场”教学模型的收敛图。请注意即将结束时的快速收敛。

通过绘图及计算代数残差,您可以对不收敛或者收敛缓慢的模型进行调试,从而可以以最高效的方式获取仿真结果。

更多资源


博客标签

技术资料
正在加载评论...

博客分类


博客标签