Phonopy专题

Phonopy态密度、热容、群速度与热位移

复用真实Si力常数,完成四种q网格和四类声子后处理。

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

本文使用鸢算科技集群实际运行的小算例。先下载输入、完整脚本与参考数据并解压,以下命令从解压目录开始。reference 保存原始参考结果,自己的运行放在 work,避免覆盖。

1 复用已完成的硅力常数#

本例使用Phonopy 4.8.3。inputs/si.yaml包含鸢算科技此前VASP有限位移实算得到的Si力常数:2原子原胞、2×2×2即16原子超胞,PBE、ENCUT=550 eV、EDIFF=1E-6、位移0.02 Å。参见VASP晶体声子与热容。这里新增的是后处理实例,不重新计算VASP原子力。

module purge
module load phonopy/4.8.3
mkdir -p work/phonopy
cp inputs/si.yaml scripts/phonopy_examples.py work/phonopy/
cd work/phonopy
python phonopy_examples.py thermal-grid
python phonopy_examples.py projected-dos
python phonopy_examples.py group-velocity
python phonopy_examples.py thermal-displacements

2 q网格和热容归一化#

import phonopy
p = phonopy.load('si.yaml')
p.run_mesh([16,16,16], is_gamma_center=True)
tp = p.run_thermal_properties(temperatures=[0,100,300,500,800,1500], exclude_gamma_acoustic=True)
print(tp.temperatures)
print(tp.heat_capacity)

Si四种q网格的谐近似热容

q网格 300 K的Cv / J·mol⁻¹·K⁻¹
8³ 39.835844
12³ 39.870127
16³ 39.878472
20³ 39.881444

这里每摩尔指每摩尔2Si原胞,换成每摩尔Si原子需除以2。Gamma声学零模显式排除;这不是把真正的虚频修正成正频。网格比较只检验布里渊区积分,不能替代超胞、电子k网格和位移幅度收敛。

3 总态密度与原子投影#

p.run_mesh([16,16,16], with_eigenvectors=True, is_mesh_symmetry=False, is_gamma_center=True)
total = p.run_total_dos(sigma=0.1)
projected = p.run_projected_dos(sigma=0.1)
print(projected.projected_dos.shape)

总声子态密度与两个硅原子的投影

采用0.1 THz高斯展宽。总DOS积分为 6.000000,与原胞6个自由度一致;两个原子投影之和与总DOS相符。相同元素、等价原子的两条投影曲线会重叠。

4 群速度不是热导率#

在倒空间分数坐标(0.1,0,0)至(0.4,0,0)四个点上计算6条分支:

q = [[0.1,0,0],[0.2,0,0],[0.3,0,0],[0.4,0,0]]
r = p.run_qpoints(q, with_eigenvectors=True, with_group_velocities=True)
print(r.frequencies)
print(r.group_velocities)

Si四个q点上六条声子分支的群速度

Phonopy在本输入单位下给出THz·Å,乘100得到m/s;采样点最大速度约 8098.635 m/s。有限q点结果不等于Γ极限声速。热导率还需要模式热容、寿命和布里渊区积分,不能仅凭群速度得到。

5 热位移包含零点运动#

Si原子的均方根热位移随温度变化

程序在12³完整网格上使用本征矢计算均方位移,输出单位Ų,开平方后才是图中的均方根位移Å。0 K仍有非零值,是谐近似零点运动。文件thermal-displacements.csv每行一个温度,后六列依次为两个Si原子的x、y、z均方位移。

cat thermal-grid/thermal-16.csv
head projected-dos/dos.csv
head group-velocity/velocity.csv
cat thermal-displacements/thermal-displacements.csv

查看和复现配图#

下载包 figures 中是高清图片,可点击正文图片放大。reference 中保存数据与结果表;重新绘图可执行:

module purge
module load ase/3.29.0
mkdir -p work/replot
cp -r reference work/replot/
cp plot_reference.py work/replot/
cd work/replot
python plot_reference.py

不同教程共用此资料包;同一个脚本不需要重复下载。重新运行算例时使用新的工作目录。

方法与接口参考:Phonopy官方API。

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

查看配图

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

100%查看原图 ↗