ABACUS 专题

ABACUS 三阶力常数与格式转换

实际有限位移力、symfc受限拟合、hiPhive交换与单位检查。

更新于 2026-10-29约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、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。

原始DFT力与受限力常数模型预测

本例力预测残差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官方参数说明。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗