粗论COMSOL等离子体仿真
前 言
如今,使用COMSOL的用户越来越多,这说明COMSOL有其独特的优势。比如强大而人性化且带有中文的GUI,相比于那些时不时加一点代码,各种命令行以及看不懂英文菜单的程序来讲,用户操作无疑是最方便快捷的。同时,其集成前、后处理和求解器于一体,省去了很多额外的步骤。完全可以不需要任何第三方软件(比如专业CAD,专业网格,专业绘图等)而一条龙式地进行仿真任务。
然而,简单意味着可以“无脑”吗?
答案是:NO
相信无数新手在被“丢给”COMSOL进行仿真项目的时候都会听到这样话,比如“你去把这个模拟一下,下周给我结果”,‘’我看人家那个COMSOL软件很厉害,你再去用它模拟一下看看‘’。这种极其“不负责任”的要求必定会对新手的自信造成重创。这是因为COMSOL往往被人误解为非常简单。殊不知,自认为的简单仅仅是软件给用户在操作体验上带来的方便而已。如果你不理解你的物理模型,不懂得一些基本的数值计算的基本概念,而直接去使用COMSOL进行仿真任务,那就跟坐穿天猴去火星是一个道理。
接下来小编结合大部分人遇到的问题谈一谈使用COMSOL对等离子体进行仿真的困难!
1.首先我们要清楚COMSOL能仿真哪些等离子体现象?
这不是一个绝对的能或不能的问题。如果我们单纯指comsol的等离子体模块,那可以仿真的等离子体类型有很多。等离子体模块的控制方程就是所谓的流体模型(即漂移扩散近似D-DA),我们知道等离子体仿真包括流体模型,粒子模型,混合模型。而流体模型针对不同的等离子体类型又有不同的‘变种’。比如常见的实验室内低温等离子体反应器如CCP,ICP,电晕,大气压的streamer,jet,直流辉光,这几大类都可以使用漂移扩散的流体模型。那么对于等离子体反应物种仿真,comsol也提供了全局模型。对于局部电场较高的情况下,提供了局部场(LFA)近似模型。
还有一类采用swarm参数的模型,比如电离系数,复合系数等均为局部电场的函数,这类模型可以使用PDE模块。
如果想模拟局域或非局域热平衡状态的低温等离子体,比如电弧,等离子体炬等热等离子体,其控制方程为磁流体力学方程组,此时等离子体模块将不再适用。而改用组合使用CFD和电磁场模块。不要再尝试用不适合的模型求解某个特定问题,那都将是徒劳。
原则上,只要仿真的物理模型为可数值求解的PDE方程组均可以使用comsol进行求解。
2.等离子体模块的气压限制
气压不能太低(小于0.01Pa,但实际上针对不同的放电类型,有些类型的最低气压限制可能更高),因为气压过低等离子体已不能使用流体描述,流体模型将不再适用。
3. 网格的影响,难度****
网格不光影响计算精度,还严重影响计算收敛性,特别是等离子体仿真。网格要“合适”不能过疏也不能过密。对于低气压放电,网格密度要求不高,收敛容易,但低气压网格不能太密,否则反而不易收敛。而对于大气压来说,尤其是电极附近需要及其细密的网格。因为电极附近电场特别大,非常容易导致电子温度或密度发散。
4.初始条件的影响,难度*****
所谓初始条件是指整个控制方程的所有未知量的初始值,当然这个值需要“适当”,适当的初值可以加速收敛,反之,不适当的初值可能导致程序直接无法求解。比如报错“找不到协调一致初始值”等。所有未知量的初始值,也就是说,每一个控制方程都有一个自变量的初始值。因此,电子密度,电子温度(如果求解),电势,其他重粒子的初始密度都需要设置的足够“适当”才行。这不光要理解方程本身,还需对整个模型有足够的认识。如果你认为做一个仿真项目,只要照着案例照猫画虎的设置一通就想得出结果,那简直是天方夜谭。这就是为什么有些新手直接把案例模型换了个反应导致无法计算的原因。因此,小编一直强调除了努力学习软件本身之外,还需要学习、补充对模型方程和基本物理的认识。毕竟,仿真也是具有一定技术含量的工作。
【新手常见问题】
如何查找碰撞截面?
查看往期文章,等离子体化学动力学反应截面查询方法
平时需要多注意总结相关文献,当然文献中大部分使用的是反应速率。
算完结果电子密度非常低是怎么回事?
电子密度非常低与很多因素有关,比如气压本身就太低,没有足够多的碰撞产生等离子体。其次可能是输入功率太低。还有比如求解时间太短。还有可能是物种反应导致的,一个模型应当包括除弹性碰撞之外的更多的电子产生的碰撞反应,比如分步电离,潘宁电离,直接电离,解离电离等。
如何选择碰撞反应?
在最初建立模型的时候应当从最简单的物种开始,比如建立好放电装置后(几何,功率源都设定好),先用comsol自带的氩气反应计算,将程序调通。其次,更换反应,因为每个物种的电离能,反应截面都不尽相同,因此初始密度,电源功率会有很大差别。不能换了反应不改其他参数,否则非常容易报错。更换反应应该从所需要的反应列表中选取几种最重要的反应进行初步测试,比如弹性碰撞,如果有激发或潘宁电离最好,以及直接电离等,先选择3到5种反应进行测试。如果测试成功,逐一添加后续反应进行测试。
忌讳直接添加所有反应列表,这样非常容易导致无法计算。如果已经添加了很多反应,无法计算时应当禁用大部分反应,包括重要的几个反应并逐一测试,一旦添加某个反应后导致计算无法进行,应当对该反应进行分析,查看是否是截面错误,反应系数错误导致的。
EEDF是什么?怎么用?
EEDF指的是电子能量分布函数,它需要单独求解玻尔兹曼方程获得。同时还会得到电子的输运系数,如迁移率和扩散系数等,这些输运系数是求解流体模型的关键参数。求解EEDF可以使用BOLSIG+,以及comsol里面的玻尔兹曼两项近似模块(具体使用方法参考案例库及模块手册)。
如何设置边界条件?
很多新手被文献中给的边界条件搞的稀里糊涂,当然,因为很多新手对方程模型完全不了解,看不懂也是正常。事实上,不要被文献上的边界条件或者是comsol里面的模块节点吓到。要记住,每个PDE方程都需要设置边界条件。因为方程有无数的解,但只有在特定边界条件下才会有特定的解,这就是为什么把初边值条件叫定解条件。比如,电子的输运方程,包括连续性方程,能量方程,它们的边界条件都在这个漂移扩散节点之下。
可以通过对比不同节点的方程来区分它们。常用的比如“壁”边界,是设置所有与等离子体接触的壁面条件,如金属电极,介电层。
而其他重粒子的输运方程的边界条件在重物质传递节点之下,也就是表面反应,因此表面反应仅仅是边界条件而已,它并不是反应源项。
对于泊松方程来说,其边界条件在静电节点之下,可以设置电极电势,电流等等。
注意查看节点方程来区分它们。
放电参数不要随意设置
小编遇到很多新手急于求成,随便画一个几何,随便改一改参数就开始计算,结果不收敛就找到小编询问。要知道,放电参数比如电势,放电间隙,反应腔尺度,物种反应截面,电源功率和频率,磁场大小等等,这些参数不能随便设置,要满足基本的‘物理’。还有一些基本物理参数比如原子摩尔质量,输运系数等也不能随意设置。随便给的参数是没办法计算出来的,即便有结果也未必是你想要的。
怎么知道结果对不对?
这里的结果指的是收敛的结果,如果1s可以算,2s发散,那说明模型还没有稳定,应当重新设置。其次一定要清楚,仿真结果无法跟真实情况相比,即便是实验测量的值也未必是准确的。对于数值计算来说,误差主要来自以下几个方面:基本物理参数(比如截面,输运系数,要知道截面和输运系数也都是实验测量的或者理论计算的,本身就有误差),几何简化带来的误差(仿真几何永远无法跟真实情况相比,比如,实际放电中的电极由于加工精度问题,可能存在毛边或者缺陷,这样的地方很容易击穿,最终放电发展完全是无法预知的,而模拟永远都是‘完美’的电极),物理模型简化带来的误差(流体模型本身的使用范围有限,如果完全求解每个物种的全流体模型,且同时求解每个物种的能量分布,这是及其困难的,至少在现阶段,因此物理模型本身就是简化后的产物,比如D-DA模型,忽略了动量方程的惯性项,而用通量代替,这样可以少求解一个动量方程),数值计算误差(无论哪种数值离散都会有相应的误差,同时计算机在计算的时候会产生计算误差)。
综上所述,仿真的用途一是补充实验,在理论上给出合理的解释,二是预测物理,预测实验上无法进行或无法诊断的现象。而不是精确地描述物理过程,至少现阶段还做不到。因此,我们需要结合已有的实验对仿真结果进行合理的分析,得到普适的规律。
计算中出现错误怎么办?
等离子体模块常见的报错信息,包括协调初值失败(常见星****),最后一个步长未收敛(常见星*****),其他常见问题及处理方法详见COMSOL的报错要点分析,你,收敛了吗?
协调初值失败:检查各个物种的初始密度,以及放电电源(电压,电流,功率等)。尝试加密电极网格。
最后一个步长未收敛:这个错误是最多的,因为新建的模型,所有参数都未达到最合适,因此最后发散是正常的。从头检查反应截面,反应速率(尤其注意反应速率单位及量级,有很多新手忘记乘以阿伏伽德罗常数,导致反应速率非常小)几何尺寸(很多人要模拟mm量级的放电,结果给成了m;还有如微波放电,几何形状和尺寸尤为重要,需要和微波功率匹配),尝试更改初始密度(等离子体模块对初始密度非常敏感),检查电子输运系数,其他物质的输运系数。
以上解决方案仅限绝大多数情况,所以需要从头至尾仔细检查程序,因为可能某个你意想不到的错误也会导致这些问题。
作者:冰封爱万俟
来源:Comsol等离子体模拟