Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 2.37 KB

README.md

File metadata and controls

72 lines (51 loc) · 2.37 KB

workfunction/ — 平面平均静电势与功函数

对应 vaspkit 1.5.1 的 Potential 菜单:422 Linear-Average Potential、 426 Work Function。

输入

  • LOCPOT:VASP 的静电势文件(LVHAR = .TRUE. 或默认输出均可);
  • OUTCAR:用于读取 E-fermi;也可用 --fermi 直接指定;
  • EIGENVAL(可选):用于同时给出 VBM/CBM、电子亲和势与电离能。

输出

文件 内容
PLANAR_AVERAGE.dat 距离(Å) 平面平均势(eV)
WORKFUNCTION.dat 费米能级、真空能级、功函数(可选 EA/IE)
workfunction.png --plot 时的势曲线

定义

Φ = E_vacuum - E_Fermi
  • E_vacuum 默认取平面平均势的最大值;--vacuum-window 可以把最大值附近 的平台取平均,抑制单个网格点的噪声。
  • 对有限厚度的 slab,LOCPOT 必须包含足够厚的真空层;否则真空能级没有 平台,结果只是数值最大值,不具备物理意义。
  • 若同时给出 EIGENVAL:
    • 电子亲和势 EA = E_vacuum - CBM;
    • 电离能 IE = E_vacuum - VBM。

用法

# 最常用:读 LOCPOT + OUTCAR,沿 z 平均
python workfunction/run_workfunction.py --locpot LOCPOT --outcar OUTCAR

# 指定费米能级,并给出 EA/IE
python workfunction/run_workfunction.py --locpot LOCPOT --fermi 3.656 --eigenval EIGENVAL

# 沿 x 方向,平滑真空平台并画图
python workfunction/run_workfunction.py --locpot LOCPOT --outcar OUTCAR \
  --axis x --vacuum-window 0.05 --plot

平面平均的定义为

V̄(z) = (1/Nx Ny) Σ_{x,y} V(x,y,z)

距离使用晶格矢量长度:d_k = |c|·k/Nz(沿 z)。x/y 方向同理。

验证

示例包中没有可用的 LOCPOT,因此用解析解回归:

  • 4×4×8 网格,z ∈ {0,1,6,7} 层势为 5.0 eV,其余为 0;
  • 指定 E_F = 1.0 eV;
  • 期望 E_vacuum = 5.0 eV、Φ = 4.0 eV。

本实现输出与上述解析解一致(见 tests/test_all.py)。

限制

  • 只做平面平均,不做偶极修正;有偶极修正的 slab 需要先确认 LOCPOT 的真空平台位置。
  • 真空能级取最大值,适合两侧真空等价的对称 slab;非对称 slab 若两侧真空 能级不同,可分别截取两侧平台后手动相减。
  • 电子亲和势/电离能需要与 LOCPOT 同一体系、同一电荷状态的 EIGENVAL。