模拟tips:浅谈Particle-in-cell/Monte Carlo Collision (PIC/MCC) 方法

模拟技术 发布于 2023-9-11 01:05

本期工坊君整理了一些近期遇到的关于等离子体PIC/MCC模拟方法的入门问题,与大家分享。

本期工坊君整理了一些近期遇到的关于等离子体PIC/MCC模拟方法的入门问题,与大家分享。先祭出一本关于PIC模拟的圣经镇楼:

[1] Birdsall C K, Langdon A B. Plasma Physics Via Computer Simulation[M]. McGraw-Hill, 1985.

这本书经典易读,涉猎广泛,谁读谁知道。

典型PIC/MCC代码运行逻辑


与流体方法相比,PIC优势与劣势?

优势就一个字,。基于第一性原理,物理直观,模型无需基于过多假设。PIC方法可以给出很多对工程应用具有指导性的参数,比如表面过程中的粒子入射角度、粒子能量分布等等,这些对于近期大热的芯片制造工艺有着极为重要的意义。

左:流体模型 右:粒子模型

流体模型可以给出统计平均的结果,粒子模型展示了放电分叉的可能性

摘自:Plasma Sources Sci. Technol. 21 (2012) 055019 (14pp)


劣势也是一个字,。由于需要追踪的粒子数随着气压增加迅速上升,目前来看,采用PIC模拟低气压容性耦合等离子体放电的工作比较多,对于高气压乃至大气压,计算速度限制很大,须采取并行计算等加速措施。另外,PIC更多限于一维模拟,二维或三维的工作极少。


详细学习PIC应该如何起步?

工坊君建议目标牵引,先给自己订一个小目标:复现一个基准算例(benchmark)。比如,M.M.Turner等人的工作:

[2] Turner M M, Derzsi A, Donkó Z, et al. Simulation benchmarks for low-pressure plasmas: Capacitive discharges[J]. Physics of Plasmas, 2013, 20(1):785-797.

工坊成员二维PIC代码与基准算例对比结果


一方面,基准算例可以引导入门者有目的的掌握各个细节、了解模型;另一方面,得到基准验证的程序,其计算结果也更令人信服。


基准算例怎么做?

建议用模块化的思维,拆分问题。分模块验证,最后整体计算对比结果。对于泊松方程,可以对比解析解。对于Weighting,可以对weighting过后各个网格粒子数求和,对比总粒子数,二者应该完全相等。对于蒙特卡洛碰撞(MCC),可以对一个较大样本的具有麦克斯韦分布的粒子进行MC抽样,统计不同温度下参与不同种类碰撞的粒子数,该归一化的结果应该同按麦克斯韦分布积分的速率常数/速率系数具有相同的轮廓:

[3] Lieberman M A, Lichtenberg A J. Basic Plasma Equations and Equilibrium[M]// Principles of Plasma Discharges and Materials Processing, Second Edition. John Wiley & Sons, Inc. 2005:23-42. section 3.5


如何处理反应MCC部分

关于蒙特卡洛碰撞,目前绝大多数工作采用的是伪碰撞的方法:

[4] Vahedi V, Surendra M. A Monte Carlo collision model for the particle-in-cell method: applications to argon and oxygen discharges[J]. Computer Physics Communications, 1995, 87(1-2):179-198.

此外还有K. Nanbu的碰撞概率模型。所谓的伪碰撞,工坊君理解仅仅是对于传统MCC方法的一个加速处理。

工坊君提醒大家注意,MCC方法中对于时间步长的约束在低气压放电情况通常是一个弱条件(时间步长主要受等离子体频率约束,参考[1]),但在高气压或大气压情况下,该约束是一个强条件,会使得时间步长非常小,进而程序无比缓慢!

另外,上述两篇MCC工作,在处理散射速度的时候,给出的公式与工坊君推导验证的有出入,建议自行推导确证。


上述Benchmark方法中,绝大多数是工坊君与前同事Trevor Lafleur讨论所的,在此表示感谢。如有叙述不准确之处,还请大家指正,工坊君期待与大家相互讨论交流!

喜欢请关注公众号等离子体计算工坊


公众号交流微信工坊君

你感兴趣的就是工坊希望和你共同学习的


阅读 1070· 评论 0