ABACUS 三阶力常数与格式转换
实际有限位移力、symfc受限拟合、hiPhive交换与单位检查。
阅读本篇目录
下载完整输入、42个力计算结果、6个热输运条件和绘图脚本。解压进入附件根目录。先用已有结果熟悉提取与画图:
bash analyze.sh
结果表在 reference/analysis,6张高清图在 reference/figures。这个命令只处理附件内的实际计算结果,不启动新的DFT或热输运任务。下面按准备输入、提交、检查、提取的顺序操作。新计算请使用新解压目录,已有 work 时脚本会停止,避免覆盖结果。
1 这个步骤接在哪里#
先完成有限位移声子实操的力计算。二阶力常数决定谐近似频率与群速度;三阶力常数描述最低阶非谐耦合,是本例三声子散射计算的输入。已经有本附件结果时直接处理 reference,新计算完成后把下面的 reference 换成 work。
module load phono3py/4.8.2
python -B build_force_constants.py reference
本例使用38套实际位移的原子力和1套平衡力。脚本同时保留原始力、去平均漂移后的力以及显式减去平衡力的结果。76个被筛除组合不参加拟合,不能把它们解释成零力测量。
2 实际怎样求FC2与FC3#
二阶采用正负位移中心有限差分,再做声学求和规则/对称处理;三阶采用symfc1.7.3,限制3 Å范围。关键调用为:
p.produce_fc3(
fc_calculator='symfc',
fc_calculator_options='cutoff=3.0',
is_compact_fc=False,
)
p.produce_fc2(fc_calculator='traditional', is_compact_fc=False)
p.symmetrize_fc2()
实际FC2数组为16×16×3×3,FC3为16×16×16×3×3×3。力预测使用
F = −FC2·u − 1/2 FC3:uu。

本例力预测残差RMS约0.00019225 eV/Å,最大三阶分量约33.5093 eV/ų。平移/置换对称约束通过不代表模型范围已经收敛;3 Å短程模型、较小的超胞和有限位移仍需要针对目标材料测试。force-constants.npz内同时保留symfc拟合FC2与中心差分FC2,不能悄悄把不同结果混为一套。
3 用hiPhive导出ShengBTE格式#
module purge
module load hiphive/1.5
python -B export_transport.py reference
脚本使用实际原胞/超胞原子映射,把FC3交给hiPhive的 write_to_shengBTE,再读取生成文件还原到全张量进行比较。实际导出26个稀疏三元组块,还原误差约5×10⁻¹¹ eV/ų。二阶同时用Phonopy和hiPhive两种写出方法交叉比较。
head -n 6 reference/analysis/FORCE_CONSTANTS_2ND
head -n 12 reference/analysis/FORCE_CONSTANTS_3RD
cat reference/analysis/TRANSPORT-EXPORT-VALIDATION.json
这一步得到的文件包括 FORCE_CONSTANTS_2ND、FORCE_CONSTANTS_3RD 和原胞高对称路径 band-path.json。高对称路径由ASE按实际FCC晶胞生成,不从另一种晶胞机械抄坐标。
4 单位与原子顺序要一起传递#
| 数据 | 本附件使用单位/约定 |
|---|---|
| 内部位移、晶胞 | Å |
| 原子力 | eV/Å |
| FC2 | eV/Ų |
| FC3 | eV/ų |
| FC3平移向量 | Å |
| 原生ABACUS STRU晶格 | 按LATTICE_CONSTANT,工具适配为Bohr |
| ShengBTE CONTROL的lfactor | nm |
不要只复制一份三阶文件,却更换CONTROL的原胞方向、原子顺序或质量。Phonopy的ABACUS原生接口长度与本例内部Å/eV体系不同,频率换算因子不能随意混用。脚本把单位转换放在读写边界,实际声子频率还会与ShengBTE再次比较。
有关力常数交换API,可查hiPhive官方参考;距离筛选与拟合选项见Phono3py官方参数说明。