[toc]
声子色散-有限位移
Step 1:结构优化
POSCAR-unitcell:初始晶胞结构
INCAR:
1
2
3
4
5
6
7
8
9
10
11
12
13SYSTEM = SiC relax
ENCUT = 520
ICHARG = 2
EDIFF = 1E-5
EDIFFG = -0.05
IBRION = 2
ISIF = 3
NSW = 100
ISMEAR = 0
SIGMA = 0.05
PREC = AccurateKPOINTS:推荐 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
5for i in $(seq 1 8); do
dir=$(printf "%03d" $i)
mkdir -p $dir
cp POSCAR-$dir $dir/POSCAR
doneINCAR:
1
2
3
4
5
6
7
8
9
10
11ISMEAR = 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
4for 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
8for 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 | ATOM_NAME = 4H-SiC |
画图
1 | phonopy -c POSCAR-unitcell -p band.conf |
有虚频一般是扩胞太小
声子色散-密度泛函微扰
结构优化
同上
扩胞
同上,使用SPOSCAR
微扰计算
- NSW = 1
- IBRION = 8(微扰计算,声子计算专用)
- NPAR,NCORE,KPAR等并行参数都关闭,不然会报错
- 为了减小计算量,建议打开对称性开关 ISYM = 2
力常数计算
1 | phonopy --fc calc/vasprun.xml |
得到FORCE_CONSTANTS
后处理
同上
1 | phonopy -c POSCAR-unitcell -p band.conf |