问题描述

如何以及为什么在完全耦合的方法和隔离方法之间切换来解决多物理模型?

如何以及为什么在直接和迭代线性系统求解器之间切换?

解决方案

完全耦合与隔离溶液方法

在求解多物理模型时,可以采用两种方法来求解描述解决方案的方程式(通常是非线性)。

完全耦合方法形成一个单个大型方程式,该方程式为所有未知数(字段)求解,并在单个迭代中立即包含未知数(多物理效应)之间的所有耦合。

另一方面,隔离方法不会一次解决所有未知数。相反,它将问题细分为两个或更多隔离步骤。每个步骤通常代表一个物理,但有时甚至可以将单个物理学细分为步骤,有时一个步骤可以包含多个物理。这些单独的隔离步骤小于以完全耦合方法形成的完整方程式系统。隔离步骤在单个迭代中顺序求解,因此需要更少的内存。

该软件将在许多情况下自动选择隔离方法,尤其是3D模型。另一方面,默认情况下,对于大多数2D型号,默认情况下使用了完全耦合的方法。这些默认设置是为了一般鲁棒性。

无论解决非线性问题的方法如何,该解决方案都是通过迭代来解决的。也就是说,完全耦合或隔离的方法被重复调用,并逐渐收敛到非线性问题的解决方案。由于完全耦合的方法包括未知数之间的所有耦合项,因此与隔离方法相比,它通常会更稳固,更少的迭代收敛。但是,每次迭代都需要相对较大的内存和时间来解决,因此隔离方法总体上可以更快。有关解决非线性模型的一般指导,请参见:知识库103:改善非线性固定模型的收敛性。有关如何减少内存需求的指导,请参阅知识基础1030:错误:“不记忆”

设置完全耦合或隔离方法

要在当前使用隔离方法的模型中使用完全耦合的方法,请扩展研究>求解器配置设置并寻找固定求解器或者时间依赖性求解器特征。右键单击此功能,然后选择完全耦合并且新的完全耦合功能将出现在求解器序列中,并且隔离求解器会被弄清楚。

完全耦合的功能。

要设置隔离方法,请右键单击固定求解器或者时间依赖性求解器功能和选择隔离添加一个新的隔离功能。然后,右键单击隔离功能并至少添加两个隔离步骤并选择与您要在该步骤内求解的物理相对应的变量。

隔离的特征和分离的步骤子场。

直接与迭代线性系统求解器

无论采用完整的耦合或隔离方法,在每次迭代中,都可以求解方程式系统。有两类可用于求解方程式系统的算法,直接的迭代求解器。

直接求解器的优势是成为最坚固和一般的。他们的缺点是需要相对大量的内存和时间,并且记忆需求和解决方案时间随着问题大小的增加而迅速增加。迭代求解器需要更少的内存和时间,并且随着模型大小的增加,这些缩放量更慢。但是,迭代求解器的稳定性较低,对于所谓的不良问题,它们的收敛性将较慢。例如,当材料特性存在很高的对比度,或者几何纵横比非常高时,可能会出现错误的问题。几乎没有条件的问题的示例包括非常长的细长梁或电流模型的结构弯曲,其中材料电导率通过几个数量级有所不同。

Comsol多物理学中可用的直接求解器是pardiso,mump和spooles,以及密集的矩阵求解器。pardiso或腮腺炎可能是最快的,齿轮可能会使用最少的内存。所有人都应收敛到相同的答案。密集的矩阵求解器仅应用于边界元素方法模型。

有许多不同类型的迭代求解器可用,每种都包含几个低级设置。通常不建议您手动选择迭代求解器并调整这些设置。当针对特定问题知道适当的迭代求解器时,该软件将自动呈现该组合作为选项。

还要注意,当您进行网状精炼研究时(请参阅:知识库1261:进行网状精炼研究)软件可以自动在直接和迭代求解器之间自动切换,按照自由度的数量约束。如果您手动更改了求解器设置,则可能需要手动切换到迭代求解器,以解决更大的问题,如果这样做是有意义的。

选择直接或迭代求解器

要在直接或迭代线性系统求解器之间切换,请转到完全耦合功能(如果使用了完全耦合的方法)或其中之一隔离步骤功能(如果使用了隔离方法),并且在一般的部分,更改线性求解器到可用选项之一。

完全耦合的功能中使用的迭代求解器。

直接求解器用于分离步骤功能。