COMSOL大法好(一):一些固有问题和折中方法

模拟技术 发布于 2023-9-10 23:50

COMSOL大法好,用了才知道。大法好,问题也不少。

COMSOL大法好,用了才知道。大法好,问题也不少。

无论对刚接触等离子体模拟的新手,还是深耕代码多年的老手,COMSOL绝对都是等离子体模拟中很有用的工具之一——工坊粉丝中也有很多COMSOL用户(我认识的就有好几个骨灰级的)。结合日常的经验教训,工坊总结了一些COMSOL模拟等离子体存在的固有问题和折中办法(其中一部分可以在工坊菜单的“COMSOL修正库”中找到案例)。

内存消耗巨大

COMSOL采用全隐式算法,需要求解Ax=B稀疏矩阵,而等离子体数值模拟对网格存在硬性物理约束,因而网格尺寸一般非常小——后果就是矩阵[A]巨大,内存不够。即使换用刀片式服务器,内存消耗依然惊人,运算速度却提升有限。

解决经验:

1、换操作系统。同等配置下,MAC>LINUX>WIN,内存利用率提高,速度提升很明显;

2、换迭代求解器,直接法理论上速度快,但是容易被巨量数据交换拖后腿;

3、“全耦合”改为“分离步”,比如先解电场再解输运……


负浓度/密度

用COMSOL模拟等离子体,用的一般是流体模型。然而最适合流体模型的差分方式是具有质量守恒特征的有限体积法。COMSOL的有限元方法,虽然最具有通用性,但是从能量守恒出发使得有限元算法求解流体问题存在固有缺陷,最典型的就是负浓度:

大量的负浓度坏点充斥在COMSOL组装的求解矩阵中,反过来又拖累了COMSOL的收敛速度(或者不收敛)。

解决经验:

1、如果负浓度出现边界附近——设计算例时尽量不要让等离子体主体部分靠近边界(解区域等离子体);

2、如果负浓度到处都是——无解,后处理用一些ne*(ne>0)之类的表达式抑制坏点——当然,这样得到的结果,是需要经过再三推敲的!


PDE柱坐标算子问题和数值耗散问题

这个问题其实在工坊菜单-->COMSOL修正库的第一个和第三个算例中已经详细介绍过了,情况更加复杂,有兴趣的用户可以去看一下。


纠错困难

像这样的框子,很熟悉吧。由于代码封装,算法和时间步长固定,COMSOL算例的纠错是个无比痛苦的过程——得猜,得试,有时即使解决了问题得到了结果,也没找到问题根本。

解决经验:找我们讨论啊!

阅读 516· 评论 0