G_Collision
概览
G_Collision 包含 G01_MCC 截面表碰撞模块和
G02_MCC_network 数据驱动的批量碰撞网络。
模块 |
数据对象 |
主要职责 |
|---|---|---|
粒子数组 |
用 null-collision 方法抽样碰撞,更新粒子速度,并在电离时生成新电子/离子和源项。 |
|
版本化 CSV 模型包、粒子与背景状态、碰撞结果和源项 |
每个 PIC 步批量处理粒子,支持二体与三体通道、C++ 接口及零维碰撞盒验证。 |
数据和调用边界
G01 的截面插值假设等间隔能量网格,碰撞例程使用
MPI_Allreduce。G02 的 C++20 核心可独立构建,MPI/OpenMP 可选;模型包采用显式单位与状态约定。
两个模块均不负责粒子推进和边界处理;G02 附带数据是合成值,不用于科研结论。
tests/009_collision包含 G01 加载器回归和 G02 单元、统计及零维算例验证。
文档组织
初次学习,推荐进入 G02 模块页, 按 MCC 基本概念 → 程序实现 → 零维碰撞盒 的顺序阅读。 算例部分保留运行命令、三张图的读法与检查判据。
两个子模块的公式、接口和限制见各自页面;G02 的测试与零维算例运行方式见 009_collision 测试总览。
Overview
G_Collision contains the tabulated-cross-section
G01_MCC module and the data-driven, whole-step
G02_MCC_network module.
Module |
Data objects |
Main responsibility |
|---|---|---|
Particle arrays |
Sample collisions with the null-collision method, update particle velocities, and create electron/ion particles and source terms for ionization events. |
|
Versioned CSV model packages, particle and background states, outcomes and source terms |
Process a whole PIC step with two- and three-body channels, C++ interfaces and a zero-dimensional collision-box validation case. |
Data and Call Boundaries
G01 assumes uniform energy spacing and uses
MPI_Allreducein its collision routines.G02’s C++20 core builds independently with optional MPI/OpenMP and explicit model units and states.
Both leave pushing and boundary handling to the caller. G02’s bundled data are synthetic and cannot support scientific conclusions.
tests/009_collisioncovers the G01 loader and G02 unit, statistical and collision-box validation.
Documentation Layout
Start with the G02 module page and follow MCC basics → the implementation → the collision box. The example section retains commands, plot explanations and pass criteria.
See the module pages for formulas, interfaces and limits, and the 009_collision test overview for G02’s collision-box validation case.