ATOMKIT:构建薄层与Si表面
从Si常规胞开始,沿z加真空、按Miller指数构建表面,辨别两种真空参数的含义。
阅读本篇目录
本文演示两个常用操作:保留原晶胞内原子并加真空,以及按晶面生成更厚的表面模型。使用官方预编译 ATOMKIT 0.9.0,ASE 3.29.0 辅助读写和画图。
1. 准备Si输入#
module load atomkit/0.9.0
mkdir si-surface
cd si-surface
cat > POSCAR <<'EOF'
Si
1.0000000000000000
5.4299999999999997 0.0000000000000000 0.0000000000000000
0.0000000000000000 5.4299999999999997 0.0000000000000000
0.0000000000000000 0.0000000000000000 5.4299999999999997
Si
8
Direct
0.0000000000000000 0.0000000000000000 0.0000000000000000
0.2500000000000000 0.2500000000000000 0.2500000000000000
0.0000000000000000 0.5000000000000000 0.5000000000000000
0.2500000000000000 0.7500000000000000 0.7500000000000000
0.5000000000000000 0.0000000000000000 0.5000000000000000
0.7500000000000000 0.2500000000000000 0.7500000000000000
0.5000000000000000 0.5000000000000000 0.0000000000000000
0.7500000000000000 0.7500000000000000 0.2500000000000000
EOF
cp POSCAR Si8.vasp
这是a=5.43 Å的金刚石Si常规胞,8原子。它只用于结构教学,不是新做的结构优化。
2. 沿z加真空#
mkdir vacuum
cp Si8.vasp vacuum/POSCAR
cd vacuum
atomkit <<'EOF'
501
175 POSCAR
3
15
175
EOF
head -20 POSCAR_REV.vasp
cd ..
501增加指定方向的真空,175 POSCAR表示读入VASP结构,3选择z方向,最后175选择VASP输出。本例晶胞c由5.43增为20.43 Å,原子数仍为8。
注意:这里输入的15是增加的晶胞长度。原子最上层到最下层的跨度为4.0725 Å,实际周期真空间隙为 16.3575 Å,不能直接写成15 Å。
3. 按(001)构建更厚的表面#
mkdir surface001
cp Si8.vasp surface001/POSCAR
cd surface001
atomkit <<'EOF'
503
0 0 1
4
15
175 POSCAR
175
EOF
ls SLAB_001_*.vasp
本版503的输入顺序是晶面指数、重复参数、真空厚度,再读结构。4是这里的重复参数,不代表最后只有4个原子层。实际生成四个终止面文件,每个 32原子、16个原子平面;面内a=b=5.43 Å,原子厚度20.3625 Å,c=35.3625 Å,真空间隙15 Å。四个输出应分别查看,不能只根据文件数量判断是四种不同表面性质。

4. 检查几何,再交给计算软件#
export atomkit_python=/public/toolkit/miniconda3/envs/ase-3.29.0/bin/python
"$atomkit_python" - <<'PY'
from ase.io import read
import numpy as np
a=read('SLAB_001_0001.vasp')
print('原子数:',len(a))
print('晶胞长度:',a.cell.lengths())
print('z方向真空间隙:',a.cell[2,2]-np.ptp(a.positions[:,2]))
PY
这条间隙公式适用于本例z方向无倾斜、薄层连续位于同一段晶胞的模型。倾斜晶胞或跨周期边界薄层需要按表面法向检查,不能机械套用。实际表面计算还需选择终止、固定底层、设置面内k点并优化自由原子,随后增加厚度和真空做收敛对照。仅生成结构不等于得到了表面能。
下载可复跑资料包。在新的个人工作目录解压,短结构处理可直接运行 bash run.sh。每个菜单的逐行输入在 cases/*/commands.txt,模型在同目录,数据和图片在 analysis/、figures/。本包只含本站脚本和自建结构,不包含 ATOMKIT 程序或上游晶体库;软件许可以 $ATOMKIT_ROOT/license 为准。