版本: 所有版本

问题描述

如何增加对求解结果精度的信心?如何执行网格细化研究?

解决方法

COMSOL Multiphysics® 采用的所有数值方法均通过网格对建模空间进行离散化,这些网格具有两个作用。首先,用于近似 CAD 几何结构;其次,用于在网格定义的空间离散点上求解问题的近似解。随着网格的细化,求解结果将更准确地逼近所提出边值问题的真实解。(COMSOL 中并非所有的物理问题都是边值问题,例如射线光学粒子追踪 接口所求解的控制方程是常微分方程。但即便如此,这些接口同样需要对 CAD 几何进行离散化。)

为了增强模型结果准确性的可信度,必须在逐步细化的网格上重新求解模型并比较结果。对于适定问题,在网格趋于细化的极限下,结果将趋于一致。不过,在实际操作中,网格细化程度通常受限于可用的计算资源。(另请参见:知识库条目 1030:错误:“内存不足”。)

执行网格细化研究可采用多种策略:

自适应网格细化

在使用自适应网格细化时(如下图所示),软件会在初始网格上进行求解,并计算误差较大的区域。随后,将在这些几何区域使用更细的单元重新划分网格,并在新网格上重新求解模型。此特征允许用户控制自适应网格细化的层数、更细网格中生成的单元数、误差评估所依据的度量方式,以及网格自适应所采用的方法。但是,该功能并非适用于所有物理场接口,例如,“射线光学”和“粒子追踪”接口不支持该功能。

COMSOL Multiphysics 核心软件包中展示此功能用法的示例模型包括点源实现带轮应力

屏幕截图显示了稳态研究的自适应网格细化设置、生成的网格,以及包含不同网格结果的数据集。

自适应网格细化的结果将是一系列不同的网格,可在网格分支中查看,同时还包含一个汇总所有网格细化层级结果的数据集。用户既可以手动设置初始网格,也可以使用软件默认网格进行设置。

对于瞬态研究,自适应网格细化设置和界面略有不同,如下图所示。在整个仿真时间段内,将生成多个网格,而不仅仅是单一网格。

屏幕截图显示了瞬态研究的自适应网格细化设置。生成了多个对应于不同时间的网格,并存储在单个数据集中。

手动定义网格细化

采用此方法时,您需要手动编辑网格划分序列,并结合多种设置,在模型的不同区域定义不同的网格大小。请参见 COMSOL 学习中心网格划分基础操作教程。关于如何使用网格划分序列的简单入门 App 示例,请参见使用网格划分序列

此方法的优势在于,您可以更直接地控制网格的细化程度以及所生成单元的纵横比。当您已知解在某一或两个方向上会剧烈或渐进变化时,这种方式尤为有效。与自适应网格细化相比,手动细化需要更多的交互操作、工作量与理解深度,但有助于制定更节省计算资源的策略。

您可以引入一个控制网格大小的参数,并使用参数化扫描功能对一系列网格控制值进行扫描。如需了解如何设置参数化扫描,请参见在 COMSOL Multiphysics® 中执行参数化扫描研究。所有参数化解将包含在单个数据集中,便于统一查看结果。

屏幕截图显示了手动网格划分策略,以及“参数化扫描”特征和生成的“数据集”。

来自 COMSOL Multiphysics 核心软件包的示例模型 Blasius 边界层,展示了其使用方式。另一个“结构力学模块”的示例为椭圆薄膜的应力分析

使用“物理场控制网格”设置

您也可以使用默认的物理场控制网格设置。根据模型中所涉及的物理场,软件会基于几何结构调整网格设置,可能还会考虑该物理场中的作用域、边界条件以及材料属性。最后一项仅适用于电磁波问题,详见示例在“电磁波,频域”仿真中自动划分网格

创建不同的网格后,可以在每个“研究步骤”的设置中选择使用的网格。

使用此方法时,用户无法直接控制网格,但操作非常简便。只需创建多个不同的网格,每个设置不同的单元大小:,并引入多个不同的研究。在如上图所示的位置选择所需的网格,每个研究的结果将分别包含在不同的数据集中。

增加单元阶次

除上述方法外,还可以(尽管相对少见)研究改变单元阶次的效果。请参见:Understanding, and changing, the element order。每个物理场接口都会定义用于在每个单元内近似场的单元阶次,可通过离散化设置进行升阶或降阶,如下图所示。提高离散化会显著增加内存使用量。在多物理场模型中更改此设置时需特别注意,尤其是不同物理场可能需要采用不同单元阶次。另请参见:追踪多物理场模型中的单元阶次

某个物理场的离散化设置。

通用说明

上述方法均假设软件能在每一种网格成功收敛并得到解。然而,对于非线性问题,这一假设并不总是成立:当网格过于粗化时,模型可能无法收敛。有关处理非线性模型的其他策略,请参见:Improving Convergence of Nonlinear Stationary Models

结果比较与评估

在采用上述任一方法或其组合后,您可能需要对不同情形下的结果进行比较。要查看任意两种情形之间的差异,可在结果 > 数据集中创建并使用合并数据集。调整您希望比较的两个数据集的设置,并选择作为组合方法,以创建两个不同网格细化级别之间差异的数据集,如下图所示。

“合并”数据集可用于评估解之间的差异。

在评估网格细化研究结果时,请务必谨慎。根据所评估的指标不同,一些物理量可能收敛得更快,而另一些则较慢。一般来说,对整个模型进行的积分最容易收敛,而局部值在网格细化下收敛速度最慢。尤其是在评估物理场在尖角处的导数时,要格外小心;这些导数在局部 可能不收敛,但这通常不会显著影响模型在远离奇异点处的整体精度。有关更多详细信息,请参见:

附加资源

以下文章针对特定案例进行讲解,同时也具有普遍参考价值: