Phonopy态密度、热容、群速度与热位移
复用真实Si力常数,完成四种q网格和四类声子后处理。
阅读本篇目录
本文使用鸢算科技集群实际运行的小算例。先下载输入、完整脚本与参考数据并解压,以下命令从解压目录开始。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)

| 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)

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

程序在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。