在“求解多物理场问题”这篇博客中,我们介绍了 COMSOL 中用于求解稳态多物理场问题的全耦合和分离算法。这里,我们再来看一下能够加快这两种方法收敛的一些技巧。
载荷递增和非线性递增技巧
就像我们刚刚了解到的那样,利用全耦合方法求解稳态非线性问题时,所用的正是用于求解非线性单物理场问题的阻尼 Newton-Raphson 算法。虽然这一算法在许多情况下收敛良好,但如果选择的初始条件较差,可能会出现无法收敛或收敛很慢的问题。综合这些方面不难看出,我们之前介绍的一些技巧同样适用于多物理场问题,例如载荷递增和非线性递增。事实上,我们也无需再为这些技巧多做补充,因为它们的使用方法相同。
递增多物理场问题
这是非线性递增技巧的一个新变形,即逐渐增加物理场之间的耦合。从数值角度来看,它其实与之前讨论的非线性递增技巧相同,但从概念角度来看,它是物理场间耦合的递增量级, 而非单一物理场中非线性的量级。唯一的难点在于选择和执行将发生递增的项。幸运的是,绝大多数多物理场问题中物理场间的耦合都相当明显,可以通过以下方式轻松找出:写出控制方程和边界条件,并查看材料属性和载荷如何依赖于求解变量。
这里要记住的重要一点是:求解全耦合多物理场问题的底层算法与求解非线性单物理场问题的算法完全相同。记住这一点之后您就会发现,除了要理解全耦合多物理场问题模型中物理场间的相互作用外,并没有其他概念上的障碍。
另一方面,分离方法则可能带来许多不同的求解策略,它们可以极大地加快解的收敛,并能显著影响求解问题所需的内存量。为了更好地理解这一点,让我们做一个有关不同多物理场求解技巧的流程图。这里还是继续以之前母线板博客中讨论的问题为例进行说明,母线板由于电流的影响被加热,并承受了热应力。
全耦合方法
首先,全耦合求解器会从初始猜测开始,然后应用 Newton-Raphson 迭代直到收敛的解:
求解这一问题时,您将得到一个收敛图,其中显示误差估算会随着 Newton-Raphson 迭代逐渐减小。理想情况下,如果确实在收敛的话,误差单调下降,然后开始分析载荷递增、非线性,或多物理场耦合。本方法通常需要使用内存要求较高的直接求解器,用来求解每个 Newton-Raphson 迭代中的线性方程组。
分离法
现在,对比全耦合方法与分离法,分离法会按顺序逐个求解每个物理场,直到收敛:
针对这一问题,您将得到一类不同的收敛图,它将显示与您求解的每个物理场相关的误差。每个物理场可以选择直接或内存要求较低的迭代求解器作为最优求解器,用以求解线性方程组。每个分离步骤本身都可以看作一个非线性问题,可以求解至允许的容差,并能根据正在求解的具体物理问题组合定制合适的递增。
使用这一求解方法,您将至少得到两个收敛图,一个针对分离步中可能用到的迭代求解器,第二个则是分离法的总收敛图:
上图显示了每个物理场中误差的下降情况。虽然分离求解法可能需要进行更多次迭代来求解相同问题,但其中的每个环节都要快于全耦合方法中的 Newton-Raphson 步骤。您还可以从中获得其他一些信息,比如,如果只有一个或者两个物理场不收敛,那您可以首先检查它们的一些设定。
顺序求解步骤
有关此问题,您可能还会想到一点,即温度变化是由电流的电阻加热驱动,电流分布依赖于电导率,电导率又依赖于温度。也就是说,电压与温度的解双向耦合。另一方面,虽然热应变和杨氏模量依赖于温度,但电压与温度的解却并不依赖于位移或应力。也就是说,热学问题和结构问题之间存在一个单向耦合。我们可以立即发现一个更有效的方法来求解这一问题。我们可以首先求解电压和温度问题,然后再求解位移:
因此,我们可以看到该问题(至少)有三种不同的求解方法:全耦合、分离并假定所有物理场间的耦合是分离的,或者利用温度和位移之间的单向耦合进行顺序求解。当求解一个多物理场问题时,COMSOL 会假定所有物理场之间的耦合,并根据物理场和问题大小尝试选择最优的全耦合或分离法。当然,打开求解器设定部分查看软件选择了哪种设定,也通常会对您有较大帮助。
求解器系列博客结束语
我们设计本系列博客的初衷,是希望帮助您理解 COMSOL 用于求解单物理场和多物理场线性及非线性稳态问题的算法,同时还讲到了诸如网格剖分、精度和收敛等问题。掌握这些信息之后,您会更有信心地进行此类模型的求解。
评论 (6)
头 大
2018-03-21It is perfect!
凡凡 刘
2019-05-29这篇博客太精彩了!还想请问有关于应用“顺序求解步骤”的案例模型吗?
天浩 韩
2021-10-04非常有用的分享,感谢,能否讲一下求解其中各种求解其的设置优化方法
hao huang
2021-10-13 COMSOL 员工您好,可以观看 “多物理场仿真基础强化教程 / 第三部分” 学习求解器配置设置://www.denkrieger.com/video-training/intensive-training-cn-prt3
Li Jie
2022-12-19你好,请问多物理场耦合求解时,双向耦合粒子追踪下,计算最后报错,internal error call back,然后没有返回时间的解。
hao huang
2022-12-29 COMSOL 员工您好,计算报错原因一般仅从报错信息无法推断,可以联系技术支持检查问题原因://www.denkrieger.com/support