Eastsheng's Wiki

声子色散关系计算(VASP+phonopy)

2026-03-18 18:11:28

[toc]


声子色散-有限位移


Step 1:结构优化

  • POSCAR-unitcell:初始晶胞结构

  • INCAR

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SYSTEM = SiC relax
    ENCUT = 520
    ICHARG = 2
    EDIFF = 1E-5
    EDIFFG = -0.05

    IBRION = 2
    ISIF = 3
    NSW = 100

    ISMEAR = 0
    SIGMA = 0.05
    PREC = Accurate
  • KPOINTS:推荐 Monkhorst–Pack 网格,比如 6 6 6

  • POTCAR:元素对应的赝势。

📌 运行 VASP,最后得到优化后的 CONTCAR → 作为后续 POSCAR-unitcell


Step 2:生成位移超胞

目标:生成有限位移所需的超胞。

1
phonopy -d --dim="2 2 2" -c POSCAR-unitcell

说明:

  • --dim="2 2 2":构造 2×2×2 的超胞。

  • 输出:多个 POSCAR-xxx 文件,每个文件表示一个原子被轻微位移后的结构。


Step 3:VASP 批量计算

目标:对每个位移超胞计算。

📂 输入文件(放在每个 xxx 目录里):

  • POSCAR ← 从 POSCAR-xxx 复制而来

    1
    2
    3
    4
    5
    for i in $(seq 1 8); do
    dir=$(printf "%03d" $i)
    mkdir -p $dir
    cp POSCAR-$dir $dir/POSCAR
    done

    INCAR

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ISMEAR = 0
    SIGMA = 0.01
    IBRION = -1
    EDIFF = 1E-08
    PREC = Accurate
    ENCUT = 500
    IALGO = 38
    LREAL = .FALSE.
    LWAVE = .FALSE.
    LCHARG = .FALSE.
    ADDGRID= .TRUE.

    (与声子谱有限位移计算相同,不让离子移动,仅计算力)

  • KPOINTS:比如 4 4 4(根据超胞大小适当缩小 k 网格)。

  • POTCAR:对应的赝势。

  • INCAR、POTCAR、KPOINTS

    1
    2
    3
    4
    for i in $(seq 1 160); do
    dir=$(printf "%03d" $i)
    cp 001/INCAR 001/KPOINTS 001/POTCAR $dir/
    done

📌 每个目录运行 VASP,得到 vasprun.xml

  • run vasp

    1
    2
    3
    4
    5
    6
    7
    8
    for i in $(seq 1 8); do
    dir=$(printf "%03d" $i)
    cd $dir/
    echo "----" $i "----"
    mpirun -np 4 vasp_std
    cd ..
    done


Step 4:提取力常数

收集所有 vasprun.xml 文件,提取二阶 & 三阶力常数。

1
phonopy -f {001..008}/vasprun.xml  
  • {001..008}包括所有的结构

Step 5:后处理

写 band.conf

1
2
3
4
ATOM_NAME = 4H-SiC
DIM = 2 2 2
BAND = 0 0 0 1/2 0.0 0.0, 1/2 0 0 1/3 1/3 0.0, 1/3 1/3 0 0.0 0.0 0.0, 0.0 0.0 0.0 0.0 0.0 1/2
BAND_LABELS = G M K G A

画图

1
2
3
phonopy -c POSCAR-unitcell -p band.conf
# 导出画图
phonopy-bandplot --gnuplot band.yaml > band.dat

有虚频一般是扩胞太小


声子色散-密度泛函微扰

结构优化

同上

扩胞

同上,使用SPOSCAR

微扰计算

    • NSW = 1
    • IBRION = 8(微扰计算,声子计算专用)
    • NPAR,NCORE,KPAR等并行参数都关闭,不然会报错
    • 为了减小计算量,建议打开对称性开关 ISYM = 2

力常数计算

1
phonopy --fc calc/vasprun.xml

得到FORCE_CONSTANTS

后处理

同上

1
2
3
phonopy -c POSCAR-unitcell -p band.conf
# 导出画图
phonopy-bandplot --gnuplot band.yaml > band.dat

参考

[1] https://blog.csdn.net/Piaen/article/details/148568434

[2] https://www.jun997.xyz/2022/07/14/276373048e9d.html