ABINIT 8.6.3 + LOBSTER 5.1.1 COHP 计算工作流

May 17, 2026
Published in 计算材料学

Abstract

本文档记录使用 ABINIT 8.6.3 计算波函数,配合 LOBSTER 5.1.1 进行 COHP(Crystal Orbital Hamilton Population)分析的完整流程,包括版本选择理由、关键参数设置、输入文件模板、资源估算及常见问题排查。

Keywords: ABINIT, LOBSTER, COHP, DFT, PAW, 计算工作流

为什么使用 ABINIT 8.6.3

选择 ABINIT 8.6.3 而非 9.x/10.x 是基于以下实际考量:

  • LOBSTER 5.1.1 可以直接读取 ABINIT 8.x 的 _WFK 二进制文件。
  • ABINIT 9.x/10.x 默认输出 NetCDF 格式的 _WFK.nc 文件,需要额外的转换脚本才能被 LOBSTER 识别。
  • 使用 8.6.3 版本可以绕过格式转换环节,显著简化工作流,降低出错概率。

ABINIT 8 与 9 输入文件差异

两个版本在操作层面有若干重要差异:

特性ABINIT 9.10.3ABINIT 8.6.3
入口方式abinit run.abiabinit < run.files
赝势指定pp_dirpath + pseudos 关键词.files 文件末尾列出路径
结构输入xyzfile(两者均支持)xyzfile(before_v9 已有)
MPI 模块abinit/9.10.3/openmpi3-mklabinit/8.6.3/mpich

LOBSTER 对 ABINIT 的必需设置

为使 ABINIT 输出的波函数能被 LOBSTER 正确处理,必须在输入文件中加入以下指令:

istwfk *1       # 强制复数波函数(禁用时间反演存储优化)
kptopt 3        # 完整 k 点网格(无对称性约化)
prtdos 3        # 输出投影态密度
prtwf 1         # 输出波函数文件
prtden 0        # 不需要电荷密度输出

PAW 特有设置:

pawecutdg 40-60  # PAW 增强截断能(建议 ≥ 2×ecut,但对大体系需权衡)

K 点必须 Gamma 居中、无位移:

ngkpt X Y Z
nshiftk 1
shiftk 0.0 0.0 0.0

文件结构模板

.files 文件(ABINIT 8 入口)

cohp.in                    # 输入文件名
cohp.out                   # 输出文件名
cohp_i                     # 输入数据前缀
cohp_o                     # 输出数据前缀(生成 cohp_oWFK)
cohp_tmp                   # 临时文件前缀
/full/path/to/Element1.xml # 赝势1(对应 znucl 第1个元素)
/full/path/to/Element2.xml # 赝势2(对应 znucl 第2个元素)

.in 输入文件模板

# --- Structure ---
xyzfile ../../str/initial/STRUCTURE.xyz

# --- Cell ---
acell  AX  AY  AZ  Bohr
chkprim 0

# --- PAW basis ---
ecut 30
pawecutdg 40

# --- SCF ---
nstep 100
iscf 17
iprcel 45
diemix 0.5
diemac 1000.0
dielng 5.0
npulayit 7
toldfe 1.0d-6

# --- K-points (LOBSTER required) ---
kptopt 3
ngkpt 6 6 2
nshiftk 1
shiftk 0.0 0.0 0.0

# --- Bands & occupation ---
nband N
occopt 7
tsmear 0.03

# --- No optimization ---
optcell 0
ionmov 0

# --- Output ---
prtdos 3
prtden 0
prtwf 1

# --- LOBSTER mandatory ---
istwfk *1

SLURM 提交脚本模板

#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks=64
#SBATCH --cpus-per-task=1
#SBATCH --job-name=COHP-XXX
#SBATCH --output=job_cohp_%j.out
#SBATCH --mail-user=zhengqing.wei@physik.tu-chemnitz.de
#SBATCH --mail-type=START,END,FAIL,TIME_LIMIT
#SBATCH --partition=epyc,epycng,superepyc,epycgpu
#SBATCH --hint=nomultithread
#SBATCH --threads-per-core=1
#SBATCH --error=error_cohp

module purge
module load gnu7/7.3.0
module load abinit/8.6.3/mpich

echo "=== ABINIT 8.6.3 COHP calculation start: $(date) ==="
mpirun abinit < cohp.files > cohp.log 2>&1

if [ ! -f cohp_oWFK ]; then
    echo "ERROR: WFK file not produced"
    exit 1
fi

echo "=== ABINIT completed: $(date), WFK size: $(ls -lh cohp_oWFK | awk '{print $5}') ==="

关键注意: module purge 后必须显式加载 gnu7/7.3.0,否则会报 libgfortran.so.4 找不到。

lobsterin 模板

COHPstartEnergy  -20
COHPendEnergy     10
basisSet Bunge
basisfunctions Al 3s 3p
basisfunctions C 2s 2p

cohpbetween atom N1 and atom N2
  • 对于 ABINIT + PAW-JTH 的组合,建议使用 basisSet Bunge
  • atom 编号与 ABINIT 输入中的原子顺序一致。

PAW 赝势

计算使用的赝势信息如下:

  • 路径: /beegfs-home/users/w.zhengqing/dft/pseudodojo/pbe/paw-sr-11_pbe_standard_xml/
  • 环境变量: $PSEUDOS_PAW
  • 格式: JTH XML(.xml 后缀)
  • 可用元素: Al.xml, C.xml, H.xml, N.xml, O.xml, S.xml, Si.xml 等

计算规模与资源估算

以 Al(111) 29 原子 slab 体系(acell z ≈ 83 Bohr)为例:

参数影响
ngkpt 6 6 2 + kptopt 372 k-points无对称约化,计算量乘以 k 点数
pawecutdg 60fine grid $72 \times 80 \times 600$内存需求大,初始化缓慢
pawecutdg 40fine grid $\approx 54 \times 60 \times 432$更快,精度仍可接受
nband 150150 条能带内存与对角化时间显著增加
nband 8282 条能带更快,38 条空带足够

建议: 首次测试建议使用 pawecutdg 40 + nband 82 参数组合,确认流程可正常运行后再逐步提高精度。

输出文件

ABINIT 计算完成后会生成以下文件:

  • cohp_oWFK — 波函数文件(LOBSTER 直接读取此文件),体积较大(可达数 GB)
  • cohp_oDOS_AT0001 ~ cohp_oDOS_AT00XX — 逐原子投影态密度
  • cohp.out — 完整输出日志

LOBSTER 计算完成后会生成以下文件:

  • COHPCAR.lobster — COHP 曲线数据
  • ICOHPLIST.lobster — 积分 COHP 值列表
  • DOSCAR.lobster — 态密度数据
  • lobsterout — LOBSTER 日志(用于检查 charge spilling 情况)

常见问题

问题原因解决方案
libgfortran.so.4: cannot openmodule purge 清除了 gnu7 运行时库手动加载 module load gnu7/7.3.0
初始化阶段非常缓慢(>10 min)pawecutdg 过大导致 fine grid 规模膨胀pawecutdg 降低到 40
WFK 文件未生成SCF 未收敛或内存不足检查 cohp.out 末尾输出信息
LOBSTER charge spilling > 5%基组不足增加 basisfunctions 条目(如添加 3d 轨道)
iprcel 45 报错ABINIT 8 版本兼容性问题改为 iprcel 0

References

  • LOBSTER 软件包示例目录:../util/lobster-5.1.1/ABINIT/(包含 diamond, GaAs, FeNi3, Ti, CNT, fullerene 等体系)
  • 格式转换工具(ABINIT 9 → LOBSTER):../util/lobster-5.1.1/tools/abinit_wfk_nc_to_lobster_generic.py
  • LOBSTER 5.1.1 可执行文件路径:../util/lobster-5.1.1/lobster-5.1.1