Phonopy专题

Phonopy 原生命令画能带与热性质

终端生成声子能带、投影DOS、热容和热位移,再用bandplot、pdosplot、propplot与tdplot输出PDF。

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

下载模式Grüneisen与原生绘图资料包,在已分配CPU内用普通账号解压到新目录:

unzip phonopy-gruneisen-cli-wave243-*.zip -d phonopy-mode-practice
cd phonopy-mode-practice
bash run.sh
ls work figures

每次1个CPU,无需GPU。脚本从真实数值位移和力求力常数,再运行12条原生命令,输出六个PDF、三张高清图与CSV。它不会提交新的VASP计算。已存在输出目录时,另解压一份继续练习。

环境是Phonopy4.8.3、Python3.11.16、NumPy2.3.5、GCC13.3 C/OpenMP、phonors0.6.0及symfc1.7.3。源数据来自本集群实际VASP6.6.1 GPU计算,构建环境NVHPC25.3、CUDA12.8、HPC-X2.22.1与MKL2023.2;后处理不改变电子计算来源。

1. 先有数据,再使用绘图命令#

phonopy-bandplot等工具读取已有声子结果,它们不替代电子结构计算。资料包先从真实Si受力得到力常数,再依次生成数据和图片。按下表选择输入:

目标 数据文件 绘图工具
声子能带 band.yaml phonopy-bandplot
投影声子DOS projected_dos.dat phonopy-pdosplot
热容、熵、自由能 thermal_properties.yaml phonopy-propplot
热位移 thermal_displacements.yaml phonopy-tdplot
模式Grüneisen网格/路径 gruneisen_mesh.yaml或gruneisen_band.yaml phonopy-gruneisenplot

下面各节的cd work/...均以最初解压目录为起点;换一节前先回到该目录。脚本已生成的原生PDF保留,手动命令改用新的输出名。

2. 声子能带:数据生成与PDF输出#

cd work/bands
phonopy phonopy.yaml --no-fc-symmetry --nonac \
  --band '0 0 0 .5 0 .5 .5 .5 .5' --band-points 41
phonopy-bandplot band.yaml -o manual-bands.pdf
ls band.yaml manual-bands.pdf

本例两原子原胞有六支声子。路径Γ→X→L,每段41点;这是当前Si原胞下的路径,不应机械套到二维或其他晶系。本包已对力常数进行统一投影对称化,--no-fc-symmetry用于后处理时不再额外修改它。

真实Si声子能带与投影DOS

左图是实际band.yaml数据,路径距离采用不含2π的倒格矢约定。不要把它与之前均匀网格的q点编号混成一条连续能带。

3. 投影DOS:两个Si各贡献什么#

cd work/pdos
phonopy phonopy.yaml --no-fc-symmetry --nonac \
  --mesh '8 8 8' --nomeshsym --eigenvectors --pdos '1,2' \
  --sigma .1 --fmin -1 --fmax 18 --fpitch .02
phonopy-pdosplot projected_dos.dat -i '1,2' \
  -l -o manual-pdos.pdf

--eigenvectors保留投影所需本征矢;--pdos '1,2'分别投影原胞的第1、第2个原子。--sigma .1是声子DOS的0.1 THz展宽,不是VASP电子SCF里的SIGMA。

两个Si对称等价,两条曲线重合;两者之和在本例积分为约6个模式,每个Si约3个模式。频率范围−1至18 THz用于覆盖本例谱线,不能仅改变纵轴就消除真实虚频。实际材料要检查q网格、展宽与超胞,图中的尖峰不自动等于收敛谱形。

当前4.8.3数据生成使用projected_dos.dat,部分帮助文本仍提到旧名称partial_dos.dat;明确把实际文件名传给工具。

4. 热容、熵与自由能#

cd work/thermal
phonopy phonopy.yaml --no-fc-symmetry --nonac \
  --mesh '8 8 8' -t --tmin 0 --tmax 400 --tstep 100 \
  --exclude-gamma-acoustic
phonopy-propplot thermal_properties.yaml --cv \
  -o manual-heat-capacity.pdf

本例用原生工具直接输出热容PDF。其他物性的选择先看:

phonopy-propplot --help
head -20 thermal_properties.yaml

这里热容与熵的单位是每mol Si₂原胞 的J/(K·mol),不是每mol原子;自由能在YAML中为kJ/mol原胞。两原子原胞热容的经典高温极限是6R;熵不受6R上限约束,因此图中熵超过这条热容参考线不矛盾。

phonopy-propplot的-s表示熵选择,不是所有工具通用的“保存图片”参数;使用明确的-o 文件名指定输出。其他程序中的同一个短选项可能有不同含义。

5. 热位移:本版本要用fmin#

cd work/displacements
phonopy phonopy.yaml --no-fc-symmetry --nonac \
  --mesh '4 4 4' --nomeshsym --eigenvectors --td \
  --tmin 0 --tmax 400 --tstep 100 --fmin .1 \
  --exclude-gamma-acoustic
phonopy-tdplot thermal_displacements.yaml \
  -o manual-thermal-displacement.pdf

当前4.8.3热位移分支需要--fmin .1,使用旧--cutoff-freq .1会退出并提示改用FMIN。 这是热位移分支的具体行为,不能据此把其他流程的同名选项一律替换。

thermal_displacements.yaml中的数值是均方位移,单位Ų。资料包thermal-MSD.csv同样保留均方位移;下面的配图取平方根后显示RMS位移,单位Å。二者不能直接当作同一单位比较。

真实热容、熵与Si原子均方根热位移

Si立方对称性使x/y/z三条曲线重合;0 K仍有非零RMS位移,对应本例谐近似下的零点运动。本例用小网格演示操作,不能直接用这组位移替代实验温度因子或收敛MD统计。

6. 导出的图片和数据怎么用#

find work -name 'native-*.pdf'
ls figures
cat CHECKS.json | head

六个原生PDF分别是Grüneisen网格、Grüneisen路径、普通声子能带、PDOS、热容和热位移。figures/另有三张便于阅读的高清图;对应数据仍来自同一批真实输出。原始数值、单位、低频处理与所用网格应随图片一起保留。

原始力的准备见位移和力收集,模式体积响应见Grüneisen实操,全部入口见命令索引。

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

查看配图

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

100%查看原图 ↗