平台: 所有平台 版本: 所有版本

问题描述

出现错误消息,其中包含内存不足字样,例如: LU 因式分解时内存不足。装配期间内存不足

解决方法

背景

在解决此问题之前,您应该先执行以下步骤:

1) 检查系统的可用内存量

首先,请检查计算机上安装的内存 (RAM)。出现内存不足错误消息的原因是,COMSOL 向操作系统请求的内存多于计算机上的可用内存。大多数操作系统也会使用硬盘(虚拟内存)来存储数据。然而,使用虚拟内存比在 RAM 中存储数据更慢,因此默认情况下,虚拟内存不会明显大于安装的 RAM 内存。COMSOL 向操作系统请求内存,并总是使用系统上可用的物理内存和虚拟内存。

2) 检查 COMSOL 模型的大小

接下来,检查模型的自由度 (DOF) 数。当您开始求解问题时,COMSOL GUI 的消息窗口将报告此信息。知识库 875 描述了如何基于网格近似预测自由度数。自由度数与特定模型所需的内存量有关。

3) 通过求解较小模型来预测内存需求

首先,您可以通过求解具有相同物理场的较小模型,或使用较粗化的网格来求解同一模型,并监视这些较小模型的内存需求和自由度数。然后将二阶多项式曲线与此数据相拟合,即可粗略预测您要求解的实际问题所需的内存量。了解您要求解的模型的大小非常重要。

解决办法

在知道系统中安装的内存量并大致了解模型将要占用的内存量以后,您就可以考虑从以下几种可行的方法中选择其一。

1) 使用具有更多内存的计算机

请查看您是否可以访问具有所需内存量的机器。如果您使用网络浮动许可证,还可以在集群上进行求解。

如果您预计要运行许多大小相似的模型,那么考虑硬件升级比较合理。有关推荐使用的硬件信息,请参见知识库解决方法 866

2) 简化问题

简化问题的技巧多种多样,您可以研究其中一些或所有建议。

利用对称性

如果几何结构具有任何对称性(或近似对称性),并且您希望解也具有对称性(或近似对称性),请考虑是否可以减小问题的大小。举例来说,如果三维几何在一个方向上具有等截面,您可以考虑通过模型降阶将其转换为二维模型。类似地,如果三维几何结构绕旋转轴是均匀的(或几乎均匀),您可以考虑通过模型降阶将其转换为二维轴对称模型。

避免对薄结构建模

通常,我们不需要对薄壁结构或小间隙进行显式建模。大多数物理场接口都包含可用于表示薄结构的边界条件,从而避免对薄域进行建模和网格划分。

降低几何复杂度

请仔细检查几何结构,观察其中是否包含实际分析中不需要的任何特征。然后移除这些装饰性特征。如果您正在处理来自其他源的 CAD 数据,可以使用特征去除和修复操作来移除对分析不重要的任何小面。有关更多详细信息,请阅读处理导入的 CAD 设计

使用虚拟操作

虚拟操作用于对几何结构进行近似处理,方便您划分网格。这些操作对于任何几何结构都非常有用,您可以快速忽略对分析不重要的细节。有关更多详细信息,请阅读使用虚拟操作对几何进行简化。有关这一技巧的例子,请参见:“轮辋几何虚拟操作”http://cn.comsol.com/model/virtual-operation-on-a-wheel-rim-geometry-14317

3) 使用子模型

子模型的建立是求解一系列具有不同精细程度和不同网格的模型的过程。有关这一技巧的例子,请参见:“曲轴子模型分析”http://cn.comsol.com/model/submodeling-analysis-of-a-shaft-20359

4) 使用装配网格划分

您可以根据所使用的物理场采用装配网格划分。如果装配由特征大小不同的零件组成,您可以使用不一致的网格。对于涉及固体力学和传热的问题,特别推荐您使用此功能。有关更多详细信息,请参见知识库解决方法 1216

5) 使用不同的网格

建议您总是研究不同的网格大小。您必须基于不同大小的网格重复求解,对有限元解进行验证。您应该始终从尽可能粗化的网格开始,然后逐渐减小网格大小,并观察解的变化情况。随着网格的细化,有限元解将变得越来越精确。您可以研究需要使用自适应网格细化还是手动网格划分。

6) 使用低阶离散化方法

默认情况下,许多物理场都使用二阶(二次)离散化。您可以研究使用一阶(线性)离散化方法的结果。这种方法可以并且应该与研究不同的网格结合使用。有关更多详细信息,请参见:在多物理场模型中跟踪单元阶次

7) 使用不同的求解器

如果您要处理一维、二维或二维轴对称模型,由于这些模型的内存需求通常很低,因此,您可以首先考虑硬件升级。如果您要求解包含多个物理场的模型,则大多数情况下的默认操作是使用全耦合方法同时求解所有物理场。您可以转为使用分离方法来求解多物理场问题。

如果您要处理三维模型,默认的求解器通常为适用于求解单物理场问题的“迭代”求解器,但某些物理场默认使用“直接”求解器。与“直接”求解器相比,“迭代”求解器需要的内存更少,且速度更快。如果您使用的是“直接”求解器,建议您研究是否可以改用“迭代”求解器。对于包含多个物理场的模型,软件将默认使用分离方法并使用“直接”或“迭代”求解器单独求解每个物理场。

如果您必须使用“直接”求解器来求解问题,可以使用“核外”选项,如下面的屏幕截图所示。

另请参见:

知识库 1186:装配期间内存不足

知识库 1243:内存不足