VASP 结合 Phonopy 计算硅的比热容
VASP 全称为 Vienna Ab initio Simulation Package (The VASP Manual – VASP Wiki) 是一个计算机程序,用于从第一性原理进行原子尺度材料建模,例如电子结构计算和量子力学分子动力学。
Phonopy (Welcome to phonopy — Phonopy v.2.37.1) 是一款用于在简谐和准简谐水平下计算声子能带结构、热学性质、群速度以及其他与声子相关物理量的 python 工具包。
简谐近似下,声子共享的比热容具体推导可在 Phonopy 官网查看。
教程内容
本次教程将使用自动化脚本来使用 Phonopy 进行演示计算流程。通过本教程,您将学会比热容计算的基本流程:
- 准备微扰差分超胞结构
- 计算所有结构的总能
- 计算力常数矩阵
- 根据力常数矩阵计算硅的比热容
输入文件
输入文件包含
├── POSCAR-unitcell
├── clean.sh
├── run.sh
└── run_vasp.sh
├── pt
│ ├── INCAR
│ ├── KPOINTS
│ └── POTCAR
POSCAR-unitcell
Si #硅结构
5.38930000000000
0.0000000000000000 0.5071343999939496 0.5071343999939496
0.5071343999939496 0.0000000000000000 0.5071343999939496
0.5071343999939496 0.5071343999939496 0.0000000000000000
2
Direct
0.8750000000000000 0.8750000000000000 0.8750000000000000
0.1250000000000000 0.1250000000000000 0.1250000000000000
clean.sh
#!/bin/bash
rm -r *.yaml thermal_properties.pdf
band.yaml FORCE_SETS vasp poscar *out SPOSCAR
# 删除不必要文件
run.sh
#!/bin/bash
rm -r vasp poscar
#准备微扰差分超胞结构
##########################
phonopy -d --dim 2 2 2 --pa auto -c POSCAR-unitcell
mkdir poscar
mv POSCAR-unitcell pp
mv POSCAR-* poscar/
##########################
#计算所有结构的总能
##########################
mkdir vasp
cd vasp
Pnum=$(ls -l ../poscar/ -IR | grep "^-" | wc | awk -F ' ' '{print $1}')
cp ../run_vasp.sh .
t_head="for i in {1.."
t_tail="}"
sed -i "3c ${t_head}${Pnum}${t_tail}" run_vasp.sh #生成 vasp 计算脚本
./run_vasp.sh
##########################
cd ../
mv pp POSCAR-unitcell
#计算力常数矩阵
##########################
phonopy -f vasp/*/vasprun.xml > pfcout
##########################
#根据力常数矩阵计算比热容
##########################
phonopy-load --mesh 31 31 31 -t -p -s
##########################
run_vasp.sh
#!/bin/bash
#计算 vasp 流程自动脚本
for i in {1..8}
do
rm -r $i
mkdir $i
cd $i
ii=$(printf "%03d" $i)
cp ../../poscar/POSCAR-${ii} POSCAR
cp ../../pt/* .
mpirun -n 1 vasp_std
cd ../
done
文件夹 pt 中的文件
INCAR 标准静态计算
ISTART = 1 (若有波函数、读取波函数)
ISPIN = 1 (非极化计算)
Static Calculation
ISMEAR = 0 (高斯占据)
SIGMA = 0.05 (高斯展宽)
NELM = 60 (最大电子步)
EDIFF = 1E-08 (SCF 收敛精度)
KPOINTS
K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma
4 4 4
0.0 0.0 0.0
POTCAR
系统对应元素的赝势组合,这里为 Si 的赝势
上手体验
1. 克隆容器
找到教程工作目录克隆容器
2. 设置容器
选择 4090 — 按量付费 — vasp 6.3.0-cuda11.8 — 工作空间

加载完毕后打开工作空间

打开终端

解压包
unzip Cv_dft.zip
进入目录
cd Cv_dft
上传准备好的硅赝势
此处可以使用官网例子里的赝势 POTCAR 放到目录中

3. 安装 phonopy 环境
输入以下命令安装 phonopy 环境
conda install -c conda-forge phonopy
然后输入 y 回车,同意安装

4. 运行脚本
输入以下命令运行脚本
chmod 777 *.sh
./run.sh
5. 查看「比热容 v 温度」图像
最后计算的结果将输出在 pdf 中

查看文件 thermal_properties.pdf

我们可以在终端看到比热容最终为 48.8006881 J/K/mol 。
这里我们需要把单位进行换算,换成常用单位 J/K/kg 。这里原胞中有 2 个原子,原胞摩尔质量为 0.056kg/mol,我们做一个简单的换算:
48.8006881/0.056 J/K/kg = 871.4408589285714 J/K/kg
可以看到,最终结果与论文「基于晶格动力学的硅单晶热学性质研究 (I)——晶格动力学与比热」中的结果 888.03 J/K/kg 相符合。