前言

        使用有限元软件进行多场耦合仿真时,由于涉及多个物理场使得整个过程比较复杂,经常面对软件中的各种报错无从下手,那么这篇文章可能适合你。首先抛出我的观点:你应该像调试程序一样去调试你的模型。本文将首先介绍我的建模思路,然后介绍真正报错之后可能对你有用的操作,最后说明一点多物理场建模中的注意事项,以下思想针对不同的多物理耦合都是通用的。


一、建模思路

1.描述

       为什么我会有这样的观点呢,回忆以前写代码调试的时候,经常需要设置断点和合适的输出来监测程序到底是因为哪个点出了问题。那么针对多物理场耦合调试同样适用。我将从我熟悉的几个模块去写,下面开始我的介绍。

  • 设置断点:你可以将一些物理场屏蔽掉,将前面的调通以后再逐步添加物理场;
  • 合适的输出:你可以在计算前就设置合适的探针去监测,也可以在计算完成绘制各类参数的曲线或云图分析。

        面对一个多物理场问题,主要的思路即是逐步复杂。以我的模型为例,我常使用电路模块、磁场模块、传热模块、固体力学和移动网格模块。首先我会先去跑包含电路模块和磁场模块的模型,跑完以后,去查看线圈的电流以及磁通密度的数量级是否和以往经验或文献相匹配。同样的,在电路模块中,你也可以在后处理中监测每一个定义的节点的电压值。

        电磁场跑通以后这是基础,第二步加上传热模块,将系统的温度分布跑出来,不对的话这时只需要检查传热模块中的设置。第三步把传热模块屏蔽掉,然后添加固体力学,调试电路-磁场-结构耦合的模型。调通以后,第四步将移动网格模块,调试电路-磁场-结构-移动网格耦合的模型。最后再把传热模块加上,构成完整的多物理场耦合模型。

        采用这样的建模思路,对于一个复杂的模型来说,是非常节约计算时间的,而且你的整个建模思路是清晰的。特别是对于新人来说,不管是学习官网复杂的模型,还是课题组内复杂的模型自己去研究。如果你能够化繁为简地通过屏蔽逐步将模型调通,将各个物理场载荷的施加与传递搞清楚,这同样是一种锻炼。

2.软件操作

2.1 建立探针

        在建模完成以后建立合适的探针可以在计算过程绘制一些图像,如果发现与预期有出入可以及时停止计算修改模型。
在这里插入图片描述
在这里插入图片描述

2.2 多种监测

        在后处理对电路模块节点电压进行绘制。
在这里插入图片描述
        在后处理中对磁场中的线圈相关参数进行监测。
在这里插入图片描述
        还包括云图去查看场量的分布及数量级。

二、报错调试

        对于一些比较常见的报错问题,你可能在网上查询一下就能解决。但是如果找不到问题出处,根据前面的建模思路,针对多物理场模型报错以后,你需要做的第一步就是屏蔽。在帮别人看模型的时候,我会屏蔽掉只剩下电磁场相关的内容,然后再一步一步地调试增加内容。需要注意的是需要将物理场之间相关的变量处理好,以防计算时出现未定义的变量这样的报错提示。


三、多物理场建模注意

        在使用COMSOL建模时,由于建模的时候软件中带有多物理场接口可以很方便的将几个物理场耦合。比如下图中所示的磁场与传热模块的耦合,需要注意的是在“热源”中如果已经定义了“体积损耗密度,电磁”,那么就不需要在多物理场接口中将磁场与固体传热耦合起来。换句话说,这两种耦合只有一个就行,如果两个都激活了,热源将是两倍。
在这里插入图片描述
在这里插入图片描述
        与前面相类似的,如果在固体力学模块中体载荷中已经定义了载荷为“洛伦兹力贡献”,那也没有必要在后面多物理场接口中进行耦合。这个得依据个人的建模习惯,对于其他物理场的耦合可以举一反三。
在这里插入图片描述
在这里插入图片描述

总结

        以上就是今天要分享的内容,个人觉得是比较重要但在网上并没有看到相关的介绍,希望对您的学习有所帮助。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐