BEEF-vdW实操:CO与Cu表面的分阶段计算
CO/Cu表面真实算例:分阶段收敛、吸附能与2000成员的配对集合分析。
阅读本篇目录
先明确计算目标#
本例计算气相CO、干净Cu表面、CO顶位和fcc位四个固定构型的电子能,用于练习BEEF-vdW的电子收敛和吸附能计算。表面含12个Cu原子;吸附模型另含C和O。所有结构保持固定,没有进行原子位置或晶胞优化,因此不要直接把结果当作充分弛豫后的位点稳定性结论。
程序为VASP 5.4.4 BEEF专用CPU版本,使用Intel oneAPI 2023.2的ICC/ifort 2021.10及libbeef 0.1.3。BEEF扩展走CPU路径,不能直接套用普通VASP GPU脚本。电子收敛标准为1E-6 eV。

第一步:查看结构和准备赝势#
解压后保留原始输出作参考,另建工作目录复制输入。以下以顶位为例:
mkdir -p my-top
cp CO-top-pbe/{INCAR,POSCAR,KPOINTS} my-top/
cd my-top
cat POSCAR
cat KPOINTS
# 使用有授权的PBE赝势,严格按POSCAR中的Cu、C、O顺序拼接POTCAR
# 检查拼接后的元素和价电子信息
grep 'TITEL\|ZVAL' POTCAR
下载包不包含POTCAR、波函数或电荷密度。气相CO与表面计算必须使用同一套相应元素的赝势。完整顶位POSCAR如下:
C Cu O
1.0000000000000000
5.1335952314143354 0.0000000000000000 0.0000000000000000
2.5667976157071677 4.4458238831514674 0.0000000000000000
0.0000000000000000 0.0000000000000000 24.1915629543166837
C Cu O
1 12 1
Direct
0.0000000000000000 0.0000000000000000 0.6631056862514237
0.1666666666666667 0.1666666666666667 0.4133672561332225
0.6666666666666666 0.1666666666666667 0.4133672561332225
0.1666666666666667 0.6666666666666666 0.4133672561332225
0.6666666666666667 0.6666666666666666 0.4133672561332225
-0.1666666666666667 0.3333333333333333 0.5000000000000001
0.3333333333333334 0.3333333333333333 0.5000000000000001
-0.1666666666666667 0.8333333333333333 0.5000000000000001
0.3333333333333333 0.8333333333333333 0.5000000000000001
0.0000000000000000 0.0000000000000000 0.5866327438667777
0.5000000000000000 0.0000000000000000 0.5866327438667777
0.0000000000000000 0.5000000000000000 0.5866327438667777
0.4999999999999999 0.5000000000000000 0.5866327438667777
0.0000000000000000 0.0000000000000000 0.7106429207067443
表面的KPOINTS:
Gamma
0
Gamma
3 3 1
0 0 0
气相CO采用单Γ点,气相与表面的盒子不是同一个结构;气相文件也在下载包中。
第二步:先得到PBE电子态#
SYSTEM = CO on Cu top PBE seed no dipole
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
NELM = 100
ALGO = Normal
ISMEAR = 1
SIGMA = 0.2
IBRION = -1
NSW = 0
ISYM = 0
LREAL = .FALSE.
LWAVE = .TRUE.
LCHARG = .TRUE.
LASPH = .TRUE.
NCORE = 1
GGA = PE
LDIPOL = .FALSE.
AMIX = 0.1
BMIX = 0.0001
NELMDL = -8
NSW = 0表示固定结构单点;LWAVE和LCHARG保存后续需要的重启文件。金属表面使用ISMEAR = 1, SIGMA = 0.2,气相CO使用ISMEAR = 0, SIGMA = 0.05,不能把金属展宽设置不加判断地复制给孤立分子。
在分配到的CPU资源上加载模块运行,每个算例本次使用8个MPI进程:
module purge
module load vasp/5.4.4-8173m-beef
ulimit -s unlimited
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1
mpirun -np 8 vasp_std > run.log 2>&1
请将运行命令放入集群CPU作业脚本并通过sbatch提交,分区与核数以当前可用资源为准;不要在登录终端直接启动生产计算。
grep 'EDIFF is reached' OUTCAR
tail -n 8 OSZICAR
ls -lh WAVECAR CHGCAR
四个PBE种子均达到电子收敛。本例后续两步在相同结构、K点与ENCUT下进行,保留WAVECAR和CHGCAR。
第三步:切换到BEEF,再打开偶极校正#
先把PBE的GGA = PE改为GGA = BF,将NELMDL改为0,并加入:
ISTART = 1
ICHARG = 1
LUSE_VDW = .TRUE.
ZAB_VDW = -1.8867
LBEEFENS = .FALSE.
LDIPOL = .FALSE.
修改已有参数,不要在同一个INCAR中重复堆积相同标签。 每一阶段先另存OUTCAR、OSZICAR和INCAR,再运行下一阶段。BEEF运行前建立核文件链接:
ln -s /public/software/vasp/vasp-beef/5.4.4/8173m/vdw_kernel.bindat .
test -r vdw_kernel.bindat
mpirun -np 8 vasp_std > beef-seed.log 2>&1
grep 'EDIFF is reached' OUTCAR
核文件未找到时,旧版VASP可能进入耗时的核生成流程,因此不要省略这个检查。种子BEEF收敛后,再启用LDIPOL、z方向偶极校正和集合输出。顶位最终完整输入为:
SYSTEM = CO on Cu top PBE seed no dipole
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
NELM = 100
ALGO = Normal
ISMEAR = 1
SIGMA = 0.2
IBRION = -1
NSW = 0
ISYM = 0
LREAL = .FALSE.
LWAVE = .TRUE.
LCHARG = .TRUE.
LASPH = .TRUE.
NCORE = 1
GGA = BF
LDIPOL = .TRUE.
AMIX = 0.1
BMIX = 0.0001
NELMDL = 0
ISTART = 1
ICHARG = 1
LUSE_VDW = .TRUE.
ZAB_VDW = -1.8867
LBEEFENS = .TRUE.
IDIPOL = 3
DIPOL = 0.5 0.5 0.5
AMIN = 0.01
mpirun -np 8 vasp_std > beef-final.log 2>&1
grep 'EDIFF is reached' OUTCAR
grep 'BEEFens' OUTCAR
grep 'energy(sigma->0)' OUTCAR | tail -n 1
其他三个体系重复同样的阶段顺序,使用各自的POSCAR、KPOINTS和赝势。本例最终四次计算分别用4、2、6、6步电子迭代收敛。
最后得到什么#
得到四份最终OUTCAR、电子能和每个体系的2000成员集合。吸附能必须统一使用同一种能量定义;本例使用OUTCAR的energy(sigma->0),并与ASE解析结果交叉核对。不要混用TOTEN与零展宽外推能。接着阅读BEEF吸附能与配对集合分析。