HyperAI超神经

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 进行演示计算流程。通过本教程,您将学会比热容计算的基本流程:

  1. 准备微扰差分超胞结构
  2. 计算所有结构的总能
  3. 计算力常数矩阵
  4. 根据力常数矩阵计算硅的比热容

输入文件

输入文件包含

├── 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 — 工作空间

2

加载完毕后打开工作空间

3

打开终端

4

解压包

unzip Cv_dft.zip

进入目录

cd Cv_dft

上传准备好的硅赝势

此处可以使用官网例子里的赝势 POTCAR 放到目录中

5

3. 安装 phonopy 环境

输入以下命令安装 phonopy 环境

conda install -c conda-forge phonopy

然后输入 y 回车,同意安装

6

4. 运行脚本

输入以下命令运行脚本

chmod 777 *.sh

./run.sh

5. 查看「比热容 v 温度」图像

最后计算的结果将输出在 pdf 中

7

查看文件 thermal_properties.pdf

8

我们可以在终端看到比热容最终为 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 相符合。