Phono3py 命令、后端与缓存
映射本地六个可执行入口的实际实例,给出Rust/C切换、缓存与可复现环境操作。
阅读本篇目录
本地Phono3py 4.8.2有六个可执行入口。本页把每个入口对应到真正跑过的实例;完整参数帮助保存在下载包 command-help/,不把帮助中所有开关都称为逐项实算。
下载完整实例包,解压到自己的工作目录。包内含真实输入、已有力输出、28个计算条件、工具命令、结果CSV和绘图脚本。
1. 六个入口#
| 命令 | 作用 | 本组实际使用 |
|---|---|---|
| phono3py-init | 位移生成与准备 | Si16、0.03 Å、38个有效位移 |
| phono3py-load | 读YAML与力常数并计算 | RTA/LBTE、散射、JDOS、自能、Grüneisen和缓存 |
| phono3py | 兼容入口 | q4、σ=0.2 THz的RTA |
| phono3py-kaccum | 按频率/MFP累计或求密度 | 11组标量/张量操作 |
| phono3py-kdeplot | 寿命分布可视化 | 300 K密度PNG |
| phono3py-coleigplot | 碰撞矩阵特征值 | 实际导出coleigs.dat |
module purge
module load phono3py/4.8.2
phono3py-init --help
phono3py-load --help
2. 默认Rust与C后端#
bash prepare.sh
bash run.sh rta-q4-s0p1-rust
bash run.sh rta-q4-s0p1-c
bash run.sh lbte-q4-s0p2-rust
bash run.sh lbte-q4-s0p2-c
默认使用Rust;切换C后端加 --legacy-backend。同条件RTA为295.840987855869与295.840987855886 W/(m·K),同条件LBTE为125.261220650505与125.261220650500 W/(m·K)。这些是数值一致性例子,不是速度排名;RTA这组σ为0.1,LBTE这组σ为0.2,不能拿这两组数字直接评价求解器差别。
力常数求解器symfc/traditional与输运Rust/C是不同层次的选择。外部DFT接口又是另一个层次。本组ABACUS力通过官方Phonopy解析器读取,不在 phono3py-init 后添加本版本没有的 --abacus 开关。
3. 声子缓存#
bash run.sh phonon-cache-q4
bash run.sh rta-read-phonon-q4
先 --write-phonon 生成 phonon-m444.hdf5,再用 --read-phonon。包内运行器会传递同一套力常数与缓存,读缓存的RTA与相同网格/温度/展宽的直接计算一致。
4. 相互作用强度缓存#
bash run.sh rta-write-pp-q4
bash run.sh rta-read-pp-q4
对应 --write-pp 与 --read-pp。网格、结构、力常数、带选择及相关设置变化后应重建缓存;不要仅因为文件名相同就复用。两种缓存都可以节省部分重复处理,但不会自动解决大网格的内存需求。
5. 线程与任务目录#
export OMP_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
export MKL_NUM_THREADS=1
export RAYON_NUM_THREADS=1
实例包默认每个原生命令单线程,方便独立条件对照;Rust与数学库线程应一起控制,避免多层线程叠加。正式任务的进程/线程必须与申请资源相符。submit.slurm是56核CPU整节点模板,本例流程逐条件执行,不将整节点资源数当作每条命令的实用线程数。
脚本为每个条件建立 work/条件名/,记录实际命令与输入哈希;已存在的目录会受到保护。重新计算时使用新解压目录,避免不同条件输出覆盖。
6. 这组实例的范围#
六个入口和两种输运后端有实际操作;谱函数采用公开API。其他DFT解析器、随机位移、机器学习力常数、Wigner/跨带输运以及大规模网格分发属于另有输入条件的方法,不能根据这组Si实例认定它们都已实跑。需要某个功能时,先看实际版本帮助和该方法所需输入,再设计对应的计算任务。