VASP 教程:VASP 机器学习力场计算硅的声子谱
在计算材料学研究领域,精确预测材料的声子谱和热力学性质对于理解材料本征特性具有重要意义。今天我将重点介绍如何整合第一性原理计算软件 VASP(Vienna Ab initio Simulation Package)和声子计算工具 Phonopy,构建一套完整的机器学习力场声子谱计算方案。VASP 作为基于量子力学的原子尺度材料建模软件,在电子结构计算和分子动力学模拟方面具有独特优势,能够为后续计算提供精确的初始数据。而 Phonopy 作为专业的声子计算 Python 工具包,则可以在简谐和准简谐近似框架下,高效完成声子能带结构、热力学性质等关键参数的计算。
本次教程将采用自动化脚本的方式,系统性地演示机器学习力场声子谱计算的全过程:从最基础的微扰差分超胞结构准备开始,到机器学习力场参数的设置与结构总能计算,再到关键的力常数矩阵构建,最后完成声子谱的计算与解析。整个流程不仅完整覆盖了声子谱计算的核心环节,还特别引入了机器学习力场的先进方法,在保证计算精度的同时显著提升运算效率。
教程链接:https://go.openbayes.com/GXljk
该教程将在云平台 http://OpenBayes.com 上使用 RTX 4090 进行演示,使用下方邀请链接注册即可获得 4 小时 RTX 4090 免费使用时长:
https://openbayes.com/console/signup?r=Dennis9801_1ohB
一、输入文件说明
输入文件包含
├── POSCAR-unitcell
├── clean.sh
├── run.sh
└── run_vasp.sh
├── pt
│ ├── INCAR
│ ├── KPOINTS
│ ├── ML_FF
│ └── POTCAR(需自行上传)
POSCAR-unitcell
Si #硅结构5.389300000000000.0000000000000000 0.5071343999939496 0.50713439999394960.5071343999939496 0.0000000000000000 0.50713439999394960.5071343999939496 0.5071343999939496 0.00000000000000002
Direct0.8750000000000000 0.8750000000000000 0.87500000000000000.1250000000000000 0.1250000000000000 0.1250000000000000
clean.sh
#!/bin/bash
rm -r *.yaml band.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 --band "0.0 0.0 0.0 0.5 0.0 0.5 0.625 0.25 0.625, 0.375 0.375 0.75 0.0 0.0 0.0 0.5 0.5 0.5" --band-labels "Γ X K K Γ L" -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 收敛精度)机器学习力场设置
ML_LMLFF = T (使用机器学习力场)
ML_ISTART = 2 (仅预测模式)
KPOINTS (启用机器学习时不使用,随便设置一个即可)
K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma4 4 4
0.0 0.0 0.0
POTCAR
系统对应元素的赝势组合,这里为 Si 的赝势
ML_FF
事先训练好的系统对应的机器学习力场参数文件,具体训练流程可参考 Si 的机器学习力场教程。
二、操作步骤
1. 克隆并启动容器
登录 http://OpenBayes.com,在「公共教程」页面,选择「VASP 机器学习力场计算硅的声子谱」教程。
页面跳转后,点击右上角「克隆」,将该教程克隆至自己的容器中。页面跳转后,点击右上角「克隆」,将该教程克隆至自己的容器中。
选择「NVIDIA GeForce RTX 4090」以及「vasp」镜像,OpenBayes 平台提供了 4 种计费方式,大家可以按照需求选择「按量付费」或「包日/周/月」,点击「继续执行」。可以使用文章开头的邀请链接,获得 RTX 4090 使用时长!
待系统分配好资源,当状态变为「运行中」后,点击「打开工作空间」。
2. 上传文件
首先打开「终端」,然后将准备好的赝势 POTCAR 放到目录中,这里可以使用官网例子。
3. 安装 phonopy 环境
输入以下命令安装 phonopy 环境。
conda install -c conda-forge phonopy
当模型运行到以下阶段,输入「y」同意安装。
4. 运行脚本
输入以下命令运行脚本。
chmod 777 *.sh ./run.sh
5. 查看声子谱
最后计算的结果将输出在 pdf 中,查看文件 band.pdf