Phonopy专题

Phonopy准谐近似:五个体积到热膨胀

基于鸢算科技集群实际VASP数据的Phonopy 4.8.3终端操作、输入、数据和图片。

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

下载完整输入、原始输出和后处理脚本。解压后进入phonopy-workflows子目录。在已分配的CPU资源中运行bash run.sh,可重建本文全部后处理结果;这不会重新提交VASP任务。

输入需要两类能量#

每个体积需要一份静态电子能和一套该体积下的声子热自由能。将E电子(V)+F振动(V,T)按体积拟合后,寻找每个温度的自由能最低点。只在一个体积下计算声子不能直接得到热膨胀。

本例复用集群真实硅计算:基准体积的96%、98%、100%、102%、104%,每个体积含16原子超胞的位移受力及2原子原胞静态电子能。本次用Phonopy 4.8.3的Vinet EOS重新做QHA后处理;这与旧教程中的五点二次拟合拟合形式不同,最后几位不必完全相同。

1 检查体积、受力和静态目录配对#

ls si/si-phonon-v*.yaml
ls si/calculations/si-qha-static-v*/OUTCAR
python analyze_si.py
cat si/analysis/RESULTS.json

脚本逐体积重新读取受力,求力常数、16³网格和0–800 K、每50 K的振动热力学,然后把电子能和振动自由能传给PhonopyQHA。脚本读取的是OUTCAR的energy(sigma->0),每项归一到同一2原子原胞。

2 理解矩阵形状和单位#

qha = phonopy.PhonopyQHA(
    volumes=volumes,                 # ų,长度为体积数
    electronic_energies=energies,     # eV,同一原胞
    temperatures=temperatures,       # K
    free_energy=free_energy,          # kJ/mol,形状[温度, 体积]
    cv=heat_capacity,                # J/(mol K)
    entropy=entropy,                 # J/(mol K)
    eos='vinet', t_max=700
)

这里API接受的振动自由能为kJ/mol,内部处理单位换算;不要先自行换成eV后仍按此接口传入。电子能则是eV。五个体积的顺序必须与热力学矩阵各列一致。

3 读取实际结果#

温度/K 平衡原胞体积/ų 体膨胀系数/K⁻¹
0 41.080236 端点占位,不用于导数判断
100 41.070265 −3.413891×10⁻⁶
300 41.078591 5.125071×10⁻⁶
500 41.136946 8.418965×10⁻⁶
700 41.212750 9.833822×10⁻⁶

硅准谐体积与体膨胀系数

低温局部负体膨胀是这套谐力常数和拟合给出的结果,并不意味着出现负体积。对立方晶体的小应变,可将体膨胀系数除以3得到线膨胀系数;各向异性材料不能这样直接处理。

所有拟合最低点都在本例采样的39.2570–42.5284 ų范围内。若自己的最低点跑到体积边界之外,应补算体积点,而不是外推后直接发布结果。QHA不包含充分的显式非谐效应;五体积和小超胞仅作流程参考。

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

查看配图

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

100%查看原图 ↗