2. DFT计算基础与工程环境搭建
能带与态密度计算的质量,在上机敲下第一条命令之前就已经被三件事决定:交换关联泛函的近似层次、平面波基组的截断与k点采样、赝势与工具链的匹配。本节把这三件事串成一条可执行的工程链路,并给出VASP与Quantum ESPRESSO(QE)两套环境的最小可用配置。
一、密度泛函理论的三级近似:从Hohenberg-Kohn到可解方程
DFT的出发点是Hohenberg-Kohn定理:基态电子密度 n(r) 唯一决定外势,从而决定体系一切基态性质。但定理只保证存在性,不给出能量泛函 E[n] 的显式形式。Kohn-Sham(KS)方案把相互作用电子体系映射为等效无相互作用体系,代价是把所有未知量塞进交换关联能 Exc[n]:
E[n] = T_s[n] + E_H[n] + E_ext[n] + E_xc[n]
(-ħ²/2m ∇² + V_eff(r)) ψ_i(r) = ε_i ψ_i(r)
V_eff = V_ext + V_H + V_xc, V_xc = δE_xc/δn
工程上真正决定精度的是 Exc 的近似层次,常用三档:
- LDA:只依赖局域密度 n(r)。对均匀电子气精确,但普遍高估结合能、低估晶格常数与带隙。
- GGA(PBE/PW91):引入密度梯度 ∇n。晶格常数、弹性常数明显改善,是结构弛豫与能带初算的默认选择。PBE通常低估半导体带隙约30%~50%。
- meta-GGA(SCAN/r²SCAN):再加入动能密度 τ,对分子与固体兼顾更好,但收敛更敏感。
需要明确:KS本征值 εi 在严格意义上不是准粒子能量,因此LDA/GGA给出的带隙偏小是方法性偏差,不是计算错误。若目标是可对比实验的带隙,应升级到杂化泛函(HSE06,需精确交换)或GW。工程折中做法是:用PBE完成结构优化与能带拓扑判断,再用HSE06在PBE波函数上做单点能带修正。
二、平面波基组:两个必须收敛的参数
周期性体系用Bloch定理展开,波函数写成平面波之和,基组由截断动能 Ecut 控制:
ψ_{n,k}(r) = Σ_G c_{n,k+G} exp(i(k+G)·r)
|k+G|² ≤ 2mE_cut/ħ² (G为倒格矢)
Ecut 决定实空间分辨率:赝势越"硬"(如需要模守恒的NCPP),所需Ecut越高。经验起点:PAW赝势 400~520 eV,超软赝势 300~400 eV,NCPP常需 800 eV以上。k点采样则决定布里渊区积分精度,金属体系必须用展宽(如Methfessel-Paxton,σ≈0.1 eV)并加密k网格。
收敛判据要落到具体物理量上,而不是只看总能:
| 参数 | 测试范围(示例) | 收敛判据 |
|---|---|---|
| Ecut | 300→700 eV,步长50 | 总能差 < 1 meV/atom |
| k网格 | 4×4×4 → 12×12×12 | 总能差 < 1 meV/atom,且力 < 0.01 eV/Å |
| 展宽σ | 0.05→0.2 eV | 自由能稳定,熵贡献可忽略 |
注意:能带计算需要沿高对称路径取k点,而态密度需要更密的均匀网格(如16×16×16或更高),两者不能共用同一套k点设置。
三、赝势选择:PAW、超软与模守恒的取舍
赝势把内层电子与强核势替换为平滑的有效势,只显式处理价电子。三类主流赝势的工程差异如下:
- PAW(投影缀加波):VASP默认,兼顾精度与效率,推荐优先使用。需注意每个元素的价电子配置(如Ga的3d是否作为价电子)。
- 超软赝势(USPP):Ecut低、速度快,但磁性与某些氧化物精度略逊。
- 模守恒(NCPP):可移植性好、适合GW,但Ecut高、计算量大。
选择原则:同一套计算中所有元素必须来自同一赝势家族与同一版本(如VASP的PBE.54),否则能量基准不一致,能带对齐会出错。QE中对应使用 SSSP 效率/精度库中的 *.UPF 文件,并核对 pseudo_type 与推荐截断值。
四、工具链安装与最小配置
VASP为商业软件,需编译并链接MKL/FFTW/OpenMPI;QE为开源,可用包管理器或源码编译。以下为QE在Linux集群上的典型流程:
# 1. 依赖
sudo apt install gfortran openmpi-bin libopenmpi-dev libfftw3-dev libblas-dev liblapack-dev
# 2. 编译
tar -xzf qe-7.3.tar.gz && cd qe-7.3
./configure --with-scalapack=no --enable-openmp
make -j 8 pw
# 3. 环境变量
export PATH=$HOME/qe-7.3/bin:$PATH
export OMP_NUM_THREADS=4
VASP的 INCAR 最小可用示例(Si能带初算):
ENCUT = 500
ISMEAR = 0
SIGMA = 0.05
PREC = Accurate
EDIFF = 1E-6
LCHARG = .FALSE.
LWAVE = .TRUE.
运行前务必检查:POTCAR 中元素顺序与 POSCAR 一致,KPOINTS 与计算类型匹配,OUTCAR 中 reached required accuracy 出现,且 E-fermi 合理。若出现 ZBRENT: fatal error,通常是初始结构或Ecut设置不当,应先做单点能测试。
README 或计算日志中,能带与态密度计算的可复现性依赖这些元数据。把上述四层关系固化下来,后续的能带与态密度计算才有稳定的基准。下一阶段的工作,是在这套环境上完成结构优化、自洽计算与非自洽能带求解的完整流程。