Phonopy专题

Phonopy 质量替换与模式结构实操

从相同真实力常数比较质量效应,运行原生对称性、不可约表示、模式结构与动画工具。

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

下载输入、数值参考与绘图脚本。在已分配的CPU资源中新建目录:

unzip phonopy-masses-modes-tensors-wave245.zip -d phonopy-modes
cd phonopy-modes
bash run.sh

run.sh加载phonopy/4.8.3,依次执行run.py、analyze.py、plot.py,生成source/、analysis/和figures/;同名结果目录存在时不覆盖,重做请换新的解压目录。使用Python3.11.16、NumPy2.3.5,C/OpenMP部分由GCC13.3构建,当前默认Rust数值后端。每个程序使用1个CPU线程,不需要GPU。

本批复用鸢算科技集群实际Si16的VASP6.6.1 DFPT力常数,2Si原胞、2×2×2超胞,ENCUT=450 eV、EDIFF=1E-6、IBRION=8,电子k网格2×2×2。与其他教程中的550 eV有限位移数据分开。本包只含安全输入、真实数值力常数和后处理脚本,运行时不启动VASP。保留原始力常数,不施加声学和规则或额外对称化,不把微小负频改成正频。下面的结果用于操作参考,正式材料参数另做收敛。

1 先看改变质量后的频率#

程序使用同一套力常数,在原胞倒易分数坐标q=(0.25,0,0)比较原质量、两原子都改为30 u以及两个子晶格分别28.0855/30 u。

原生命令的主要参数如下;完整调用见run.py:

cd source/mass-30
phonopy ../reference.yaml --no-fc-symmetry \
  --mass '30 30' --qpoints '0.25 0 0' \
  --eigvecs --writedm --qpoints-format hdf5
cd ../..
head -n 7 analysis/mass-frequencies.csv

--mass按输入晶胞原子顺序填写,单位u。改变质量不需要重新计算电子结构;这里假设同位素替换不改变原子间势能面。两个Si全部从28.0855变成30 u时,各支频率乘以sqrt(28.0855/30)=0.96756567:

支 原质量/THz 全部30 u/THz
1、2 2.166591 2.096319
3 6.349214 6.143282
4 14.631081 14.156532
5、6 14.916603 14.432793

同一真实力常数下三种质量设置的频率

两个子晶格分别设置质量构成周期有序质量模型,不等于随机同位素无序。谐频率改变也不直接给出同位素散射寿命或热导率。

2 检查晶体对称性和Γ点表示#

phonopy-symmetry source/POSCAR --tolerance 1e-5
cat source/irreps-gamma/irreps.yaml
cat source/irreps-adapted/irreps.yaml

Si空间群为Fd-3m(227)。Γ点六个模式分成T1u声学三重态和T2g光学三重态;光学频率15.3899537372 THz。--irreps '0 0 0'指定q点,--show-irreps输出表示矩阵;本包同时运行默认按频率分组和--irreps-symmetry-adapted两种方式。简并子空间内本征矢基底可以不同,应比较表示和整个子空间,不能仅凭某个原子的箭头方向判定结果不同。

3 沿指定模式生成可继续计算的POSCAR#

cd source/modulation
phonopy ../reference.yaml --no-fc-symmetry \
  --modulation '2 2 2, 0.5 0 0 4 1 0, 0.5 0 0 4 0.5 90'
ls MPOSCAR* modulation.yaml
cd ../..

逗号前2 2 2指定生成的超胞。每段随后依次是q的三个分量、从1开始的分支编号、模式幅度参数和角度相位。q=(0.5,0,0)与本例超胞相容,第4支频率11.8821943829 THz。

  • MPOSCAR-orig:未位移超胞。
  • MPOSCAR-001、MPOSCAR-002:两段单独模式的实部位移。
  • MPOSCAR:两段位移叠加。
  • modulation.yaml:复数位移、本征矢、频率和模式参数。

幅度参数不是“每个原子移动1 Å”。实际位移还含质量、本征矢归一化与超胞大小。本例第一段最大原子位移约0.03336 Å;第二段相位90°,该模式取实部后位移几乎为零,因此叠加结构主要来自第一段。这说明改相位不保证生成更大的结构扰动。

Si16模式结构与相位,箭头放大15倍

图中箭头为实际位移放大15倍,未用放大后的坐标替代POSCAR。生成结构后,如需位移能量曲线或新力标签,应按自己的电子结构参数另行提交计算;本节没有把结构生成当成DFT求力。

4 打开模式动画#

head -n 12 source/animation/anime.xyz
cat source/animation/settings.conf

本例配置为:

ANIME_TYPE = XYZ
ANIME = 4 1 12

即Γ点第4支、显示幅度参数1、一个周期12帧。可用OVITO等打开anime.xyz。这些是预设相位的模式动画帧,不能用来求扩散或作为真实时间轨迹。

**当前4.8.3原生XYZ输出有两点要注意:**坐标被旋转到标准晶胞朝向,与原POSCAR逐个坐标分量不必相同;另外文件头f值在此输出为15.150393,它由原生程序直接将动力学矩阵本征值乘换算因子得到,缺少开平方,不是本例正确的Γ点声子频率。看频率请用irreps.yaml或qpoints.hdf5,正确值为15.3899537372 THz;本包保留原始XYZ,供查看运动形态。

继续看热位移矩阵与统计;谐热快照操作见振动模式、热位移与随机快照。接口语义参考Phonopy官方设置说明,实际命令以本机4.8.3为准。

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

查看配图

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

100%查看原图 ↗