本期工坊君整理了一些近期遇到的关于等离子体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讨论所的,在此表示感谢。如有叙述不准确之处,还请大家指正,工坊君期待与大家相互讨论交流! 喜欢请关注公众号:等离子体计算工坊 公众号交流微信:工坊君 你感兴趣的就是工坊希望和你共同学习的 |