type
status
date
slug
summary
tags
category
icon
password
VASP 声子谱计算
1. Phonopy 安装
Phonopy 是计算声子谱的主流工具。推荐通过以下方法安装:在线安装
使用
conda install -c conda-forge phonopy 安装。离线安装
考虑到集群无法联网的情况,可以通过以下步骤离线安装:
- 安装:
- 安装依赖:
如果遇到依赖问题,可逐一手动安装。以
Phonopy的依赖库spglib为例,可以访问 PyPI 下载目标版本的.whl文件,并安装:
注意根据集群修改文件名以符合当前集群操作系统规范。例如,
spglib-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 需要改为 spglib-2.0.2-cp37-cp37m-linux_x86_64.whl才能在集群 2 安装。集群兼容性注意事项
- 低版本 Anaconda: 对于旧版本集群(如集群 2),推荐安装兼容的
Phonopy版本(如 2.14.0)。
- GLIBC 限制: 若集群支持的 GLIBC 版本较低(如仅支持到 2.12,可通过
strings /lib64/libc.so.6 | grep GLIBC查看),确保使用兼容版本的依赖库(如spglib-1.16.0)。
验证安装
安装完成后,运行
phonopy,若成功,输出类似以下信息:若显示
bash: command not found,需将 Phonopy 的路径添加到环境变量:2. 声子谱计算
VASP 结合
Phonopy 计算声子谱有两种主要方法:有限位移法: 又称 frozen-phonon 方法或直接法。
有限位移法是通过在优化后的平衡结构中引入原子位移,计算作用在原子上的 Hellmann-Feynman 力,进而由动力学矩阵算出声子色散曲线。有限位移法的缺陷在于它要求声子波矢与原胞边界 supersize 正交,或者原胞足够大使得 Hellmann-Feynman 力在原胞外可以忽略不计。这使得对于复杂系统,如对称性高的晶体、合金、超晶格等材料需要采用超原胞。超原胞的采用使计算量急剧增加,极大的限制了该方法的使用。
密度泛函微扰理论 (DFPT)。
1987年,Baroni、Giannozzi 和 Testa 提出了 DFPT 方法。DFPT 通过计算系统能量对外场微扰的响应来求出晶格动力学性质。该方法最大的优势在于它不限定微扰的波矢与原胞边界正交,不需要超原胞也可以对任意波矢求解。Castep、Vasp 等采用的是一种 linear response theory 的方法(或者称为 density perturbation functional theory,DFPT)。
直接计算出原子的移动而导致的势场变化,再进一步构造出动力学矩阵,进而计算出声子谱。
无论使用哪种方法,都需要非常高的计算精度(如
EDIFF = 1E-08),并确保初始结构已充分优化以减少虚频的可能性。Phonopy 前处理
- 声子谱计算要求超胞的晶格常数通常大于 10 Å,原子数在 100 左右。
- 优化完成后,执行扩胞操作,将 POSCAR 沿着 a、b、c 轴分别扩 4 倍: 生成以下文件:
SPOSCAR: 完美超胞的结构文件。phonopy_disp.yaml: 原子位移信息。POSCAR-{number}: 包含位移的结构文件。
有限位移法
- 使用脚本将位移结构文件分配到不同的文件夹进行单点能计算:
- 在各个文件夹中运行高精度单点计算(
IBRION = -1),生成vasprun.xml。
- 使用命令
phonopy -f {001..004}/vasprun.xml --pa="AUTO"生成FORCE_SETS文件,-pa参数适用于惯用胞计算;或者使用命令phonopy --fc {001..004}/vasprun.xml生成FORCE_CONSTANTS文件。
密度泛函微扰理论 (DFPT)
- 将
SPOSCAR复制为POSCAR。
- 在
INCAR中设置IBRION = 8、NSW = 1、ISIF = 3并注释掉并行参数。若需要考虑色散校正或自旋轨道耦合,可设置IBRION = 5或IBRION = 6。
- 使用命令
phonopy --fc vasprun.xml生成FORCE_CONSTANTS文件。
检查输出
- 检查计算:
- 生成 FORCE_CONSTANTS:
如果需要从 FORCE_SETS 获得 FORCE_CONSTANTS。创建
writefc.conf文件:
运行命令:
Phonopy 后处理绘制声子谱
- 生成
band.conf:使用vaspkit 305 3创建KPATH.phonopy文件,并修改为band.conf。 然后对band.conf文件稍作修改,例如:
band.conf 文件的参数含义详见 Phonopy 官网。- 运行绘图:
依次运行下面命令输出
band.yaml、band.dat和band_dos.pdf:
其中,
--factor=521.471 意指将单位从 THZ 换为 。- 作者:wangchr1617
- 链接:https://www.wangchr1617.top/learning/vasp-5
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

