Phono3py 晶格热输运入门
从真实Si位移与ABACUS力到RTA、LBTE、寿命和谱函数,按操作顺序学习。
阅读本篇目录
Phono3py通过二阶、三阶力常数计算声子间相互作用,可用于晶格热导率、散射率、寿命、平均自由程以及频率分辨谱函数。一个常见任务分为四步:生成位移结构 → 计算并收集原子力 → 建立力常数 → 求解输运与分析输出。

1. 先选适合自己的入口#
| 当前已有的数据 | 从哪里开始 |
|---|---|
| 只有结构 | 生成位移与准备DFT输入 |
| 位移结构和各自的DFT力 | 收集力与建立力常数 |
| fc2.hdf5、fc3.hdf5和结构YAML | RTA与LBTE |
| 已有kappa HDF5 | 累计热导与绘图 |
2. 本例体系与环境#
本组实例采用Si金刚石结构,原胞2原子,2×2×2原胞超胞共16原子,晶格常数5.43 Å;位移0.03 Å,三阶模型截断3 Å。力来自此前在鸢算科技集群完成的39个ABACUS条件:平衡结构1个、位移结构38个。这里复用真实力数据开展Phono3py后处理,没有把力常数模型的数据写成新增DFT计算。
ABACUS采用LCAO/PBE、双精度、电子k网格2×2×2。本专题采用Phono3py 4.8.2独立Python 3.11.16环境,默认Rust后端,另有C后端对照;FC3由symfc建立,FC2采用traditional并作平移/置换对称化。Phono3py这一组计算走CPU路径,前面的DFT程序可以使用GPU。
module purge
module load phono3py/4.8.2
phono3py-load --version
一次只加载一个科学Python环境;不要同时加载另一个Phonopy/ASE环境来覆盖依赖。
3. 直接复现完整实例#
下载完整实例包,解压到自己的工作目录。包内含真实输入、已有力输出、28个计算条件、工具命令、结果CSV和绘图脚本。
只读已有数据并重新画图:
bash analyze.sh
生成 analysis-reference/thermal.csv、19份模分辨CSV、figures/中的9张高清图。首次运行后保留结果;若要重新执行,在另一份新解压目录运行,脚本会保护已存在的任务目录。
需要从位移生成、力收集到28个Phono3py条件全部重新计算时,在新解压目录提交:
sbatch submit.slurm
submit.slurm是CPU资源模板,是否可提交以当前队列为准。已经获得适合的计算资源后,也可以执行:
bash run-all.sh
这个入口重新生成位移,读取包内已有ABACUS力,拟合FC2/FC3,然后依次运行28个条件、13个工具命令并画图;不会自动启动新的ABACUS或VASP计算。不要在普通登录会话中直接开展自己的大规模生产计算。
4. 结果与学习顺序#
| 内容 | 教程 |
|---|---|
| 结构、超胞和位移清单 | 位移与DFT输入 |
| 力的顺序、漂移、截断和残差 | 力常数 |
| 热导张量与温度 | RTA/LBTE |
| q网格与Gaussian展宽 | 数值参数与收敛 |
| 同位素、边界、寿命和MFP | 散射分析 |
| JDOS、自能和谱函数 | 频率分辨分析 |
| 累计热导、分布图、Grüneisen | 后处理工具 |
| 六个命令入口、两后端和缓存 | 命令与环境 |
本例用于学习实际流程。16原子、3 Å三阶截断和短q网格仍会影响数值,不把示例热导率当作已收敛的块体Si预测。更换体系时,应重新检查结构稳定性、电子参数、超胞、位移幅度、相互作用范围和q网格。