ABACUS 专题

ABACUS D2、D3与BJ色散实操

双层石墨烯4C的两种层间距、完整输入、色散能与同几何PBE对照。

更新于 2026-10-29约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、原生能量/力/能级及绘图脚本,解压进入附件根目录。先用已有结果生成表格和四张图:

bash analyze.sh

该步骤只读参考数据,用一个CPU核心处理,不启动DFT。完整重算:

sbatch submit.slurm

脚本申请一张P100,顺序运行20个条件,每个1个MPI进程、1个CPU线程、GPU双精度。参考环境为ABACUS3.10.1、GNU13.3、HPC-X2.50/OpenMPI5.0.10rc2、CUDA12.8、OpenBLAS0.3.30。ABACUS这一构建自带的Libxc是6.2.2,不能套用其他软件扩展的Libxc版本。不要在登录节点执行DFT。本例固定结构、scf_thr=1e-6;截断能和k网格是教学设置,换体系后需自己检查。

1. 用双层结构观察色散项#

本例是AB堆垛的双层石墨烯,4个C原子,标称层间距3.35或5.35 Å,周期单胞高度18 Å。固定几何,不做层间距优化;分别运行PBE、PBE+D2、PBE+D3零阻尼及PBE+D3(BJ)。

四原子双层结构和原生D2/D3能量修正

这里总色散修正同时包含层内及周期像贡献,不是只有两层之间的相互作用,更不能直接称为剥离能或黏附能。两个距离的对照用于说明参数和输出。

2. 完整D3(BJ)输入#

展开完整 INPUT、STRU、KPT

INPUT#

INPUT_PARAMETERS
suffix tutorial
calculation scf
basis_type pw
ecutwfc 60
scf_thr 1e-6
scf_nmax 200
ks_solver cg
device gpu
precision double
cal_force 1
cal_stress 0
pseudo_dir ../../PP_ORB
orbital_dir ../../PP_ORB
out_chg 0
out_pot 1
out_wfc_pw 0
nbands 24
symmetry -1
dft_functional pbe
vdw_method d3_bj
smearing_method gaussian
smearing_sigma 0.015

STRU#

ATOMIC_SPECIES
C 12.011 C_ONCV_PBE-1.0.upf

LATTICE_CONSTANT
1.8897261246257702

LATTICE_VECTORS
2.46 0 0
-1.23 2.130422493309719 0
0 0 18

ATOMIC_POSITIONS
Direct
C
0.0
4
0 0 0.40694444444444 1 1 1
0.33333333333333 0.66666666666667 0.40694444444444 1 1 1
0.33333333333333 0.66666666666667 0.59305555555556 1 1 1
0.66666666666667 0.33333333333333 0.59305555555556 1 1 1

KPT#

K_POINTS
0
Gamma
3 3 1 0 0 0

实际选项为vdw_method none、d2、d3_0和d3_bj。本例都用PBE及对应默认色散参数,只改变这一方法选择;不要把为另一个泛函定义的阻尼系数混过来。D3零阻尼和BJ阻尼是不同模型,不是同一个开关的不同精度档。

3. 先用工具看结构和输出#

module load ase/3.29.0
ase convert reference/cases/graphene-none-3.35/OUT.tutorial/STRU.cif bilayer.xyz

这条ASE命令把实际结构转为XYZ,方便在结构查看器中打开。XYZ不包含所有周期单胞信息;需要周期显示时保留原始CIF/STRU。

grep -E 'E_vdwD|!FINAL_ETOT_IS' work/cases/graphene-d3_bj-3.35/OUT.tutorial/running_scf.log | tail -n 3

日志里E_vdwD2或E_vdwD3是原生色散能量。本例用同一几何的总能量差独立核对:E(PBE+色散)−E(PBE)应与该项一致,而不是拿两个不同层间距直接相减。

方法 3.35 Å总色散修正,eV/4C单胞 5.35 Å总色散修正,eV/4C单胞
d2 -0.345910 -0.237466
d3_0 -0.250405 -0.162261
d3_bj -0.480318 -0.378906
python - <<'PY'
import csv
with open('reference/analysis/dispersion.csv') as f:
    for r in csv.DictReader(f):
        print(r['method'],r['nominal_gap_A'],r['correction_eV'],
              r['total_minus_PBE_eV'])
PY

如果研究平衡层间距、结合/剥离能,还需要足够的距离扫描、结构优化、单层参考、真空和k点收敛,以及一致的泛函和原子数;本篇不把两个固定点当作完整能量曲线。下一篇色散能量与力核对用实际小位移说明力的提取。

选项参考:官方3.10.1输入手册。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗