mod_G01_collision.f90
直接用途
mod_G01_collision 是该目录的模块包装器,集中 include 或暴露本组公开入口。
公开入口与 include 关系
下列源码文件由 mod_G01_collision 在 contains 中 include;调用方通常
use mod_G01_collision 后调用具体例程,不应把这些 include 文件当作独立
translation unit 编译。
文件 |
功能 |
何时使用 |
|---|---|---|
|
读取两列能量-截面表,补齐到 |
初始化碰撞截面数据时调用。 |
|
执行电子-中性粒子 MCC,覆盖弹性散射、激发和电离,并在电离时生成新电子/离子和源项。 |
推进电子碰撞过程时调用。 |
|
执行离子-中性粒子 MCC,覆盖电荷交换和离子-中性粒子弹性散射。 |
推进离子碰撞过程时调用。 |
|
根据已选电子碰撞类型更新碰后速度,并在电离事件中抽样二次电子和离子。 |
由电子碰撞例程内部调用,通常不是外层主循环的直接入口。 |
|
对均匀能量网格上的截面表做线性插值,超出表范围时钳制到边界值。 |
碰撞频率评估需要查询指定能量截面时调用。 |
局部假设
碰撞例程假定粒子数组 par(1:6,...) 中 1:3 是位置、4:6 是速度。随机数来自 Fortran random_number;能量、截面、密度和时间步单位必须由调用方保持自洽。这里不替调用方设置随机种子。
实现逻辑
该模块主要通过 include 或 contains 汇总本目录公开入口;调用方通常 use 模块后调用具体子程序。
调用注意
本页只说明该例程本身的调用边界和实现事实;完整接口声明和源码级 API 仍以英文侧的 generated API 为准。
Direct Purpose
mod_G01_collision is documented by its generated API and local notes on this page.
Public Entries And Includes
The following source files are included inside mod_G01_collision under
contains. Callers normally use mod_G01_collision and call the
concrete routines; the include files are not standalone translation units.
File |
Function |
Typical use |
|---|---|---|
|
Reads a two-column energy/cross-section table, pads it to |
During collision table initialization. |
|
Runs electron-neutral MCC for elastic scattering, excitation, and ionization, including secondary particles and source deposition. |
During electron collision advancement. |
|
Runs ion-neutral MCC for charge exchange and ion-neutral elastic scattering. |
During ion collision advancement. |
|
Updates the post-collision electron velocity and samples secondary electron/ion particles for ionization events. |
Called internally by the electron collision routine; normally not the outer loop entry. |
|
Linearly interpolates a uniformly spaced cross-section table and clamps out-of-range energies to boundary values. |
When evaluating collision frequencies at a given particle energy. |
Local Assumptions
Collision routines assume par(1:6,...) stores position in 1:3 and velocity in 4:6. Random numbers come from Fortran random_number. Units of energy, cross section, density, and time step must be kept self-consistent by the caller. These routines do not seed the RNG.
Implementation Notes
This module groups public entries through include or contains; callers normally use the module and call the concrete routine.
Generated API
-
namespace mod_g01_collision