问题描述

在求解多物理场模型时,应该选择全耦合还是分步求解?为什么?

应当选择直接求解器还是迭代线性求解器?为什么?

解决方法

全耦合与分离求解方法

在求解多物理场模型时,您可以使用软件中提供的两种方法来求解用于描述解的方程(通常是非线性)组。

全耦合方法会形成一个大型方程组,用于求解所有未知量(场),并在单次迭代中一次包含未知量(多物理场效应)之间的所有耦合。

另一方面,分离方法不会一次求解所有未知量。相反,该方法将问题细分为两个或更多分离步骤。每个步骤通常表示一个物理场,但有时,即使是一个物理场也可以细分为多个步骤,有时一个步骤可以包含多个物理场。这些单独的分离步骤小于通过“全耦合”方法形成的完整方程组。“分离”步骤在单次迭代中按顺序进行求解,因此需要较少的内存。

在许多情况下,软件会自动选择分离方法,在求解三维模型时尤其如此。另一方面,对于大多数二维模型,软件默认使用全耦合方法。选择这些默认设置可以实现一般稳定性。

无论采用哪种方法求解非线性问题,都是通过迭代方式进行求解。也就是说,系统会反复调用“全耦合”或“分离”方法,然后逐渐收敛到非线性问题的解。由于“全耦合”方法包含未知量之间的所有耦合项,因此与“分离”方法相比,其收敛性通常更好,且迭代次数更少。但是,每次迭代求解都需要相对更多的内存和时间,因此采用“分离”方法时,总体求解速度会更快。有关求解非线性模型的一般性指导,请参见:知识库 103:提高非线性稳态模型的收敛性。有关如何减少内存需求的指导信息,请参见知识库 1030:“内存不足”

设置全耦合或分离方法

要在当前使用“分离”方法的模型中使用“全耦合”方法,可以展开研究 > 求解器配置设置,并查找稳态求解器瞬态求解器特征。右键单击此特征并选择全耦合,求解器序列中会出现一个新的“全耦合”特征,而分离式求解器将变灰。

*“全耦合”特征。

要设置“分离”方法,右键单击稳态求解器瞬态求解器特征,并选择分离以添加新的“分离”特征。接着,右键单击分离特征并添加至少两个分离步骤,然后选择您要在该步骤中求解的物理场对应的变量。

“分离”特征和“分离步骤”子特征。

直接与迭代线性方程组求解器

无论采用全耦合方法还是分离方法,每次迭代中都会求解线性方程组。软件为求解线性方程组提供两类算法:直接迭代求解器。

直接求解器具有最稳健、最通用的优点。其缺点是需要相对大量的内存和时间,并且随着问题规模的增加,内存需求和求解时间都会迅速增加。迭代求解器需要的内存和时间都更少,并且随着模型大小的增加,内存需求和时间的增加速度比较缓慢。但是,迭代求解器的鲁棒性较差,对于所谓的病态问题,其收敛速度较慢。例如,当材料属性的反差非常明显或者几何宽高比非常大时,就会出现病态问题。近似病态的问题示例包括一根非常细长的梁的结构弯曲,或者材料电导率相差几个数量级的电流模型。

COMSOL Multiphysics 提供的“直接”求解器包括 PARDISO、MUMPS 和 SPOOLES,以及“密集矩阵求解器”。PARDISO 或 MUMPS 的求解速度可能最快,而 SPOOLES 使用的内存可能最少。它们都应收敛到同一个解。“密集矩阵求解器”仅适用于“边界元法”模型。

软件中提供许多不同类型的“迭代”求解器,每个求解器都包含多个较低级别的设置。通常建议您不要手动选择迭代求解器并调整这些设置。当已知某个特定问题适用的迭代求解器时,软件会自动将这一组合作为选项提供。

选择直接或迭代求解器

要在“直接”或“迭代”线性方程组求解器之间进行切换,可以转到全耦合特征(如果使用“全耦合”方法)或其中一个分离步骤特征(如果使用“分离”方法),并在常规栏中,将线性求解器改为其中一个可用选项。

“全耦合”特征中使用的迭代求解器。

“分离步骤”特征中使用的直接求解器。