VASP中文网站 > 热门推荐 > VASP电荷文件如何准备 VASP Bader电荷怎么分析
教程中心分类
VASP电荷文件如何准备 VASP Bader电荷怎么分析
发布时间:2026/03/09 17:06:38

  Bader电荷常用来判断体系里电子转移的方向与幅度,但在VASP里很多人卡在第一步,因为CHGCAR默认主要对应价电子密度,真正跑Bader时还需要配套的全电子重构密度来划分原子盆域,否则容易出现氢原子电荷异常、原子电荷加和不对、不同网格下结果漂移等问题。下面按文件准备与实际分析两条线,把能落地的操作步骤写清楚。

  一、VASP电荷文件如何准备

 

  做Bader前先把电荷密度文件一次性出齐,而且要保证这些文件来自同一次自洽收敛的结果,避免后处理阶段反复补算。

 

  1、用收敛结构做一次静态自洽

 

  优先用结构优化的CONTCAR当作新的POSCAR,只做单点自洽,避免在离子步里写出的电荷密度掺入中间态;静态计算结束后再取最后一步的CHGCAR作为后处理输入,VASP也说明静态与结构优化计算的CHGCAR对应最后一次迭代的自洽电荷密度,可用于后续精确分析。

 

  2、在INCAR里同时打开LCHARG与LAECHG

 

  LCHARG负责把CHGCAR写出来,LAECHG负责把全电子密度在细网格上重构并输出到AECCAR文件;VASP明确写到LAECHG开启后会在细FFT网格上重构全电子密度,并分别写出AECCAR0、AECCAR1、AECCAR2。

 

  3、确认你拿到的是AECCAR0与AECCAR2而不是只拿到CHGCAR

 

  AECCAR0对应核心密度,AECCAR2对应自洽后的价层重构密度,这两份文件是后面生成参考密度与划分盆域的关键;如果目录里只有CHGCAR没有AECCAR,多半是LAECHG未生效或作业没跑到自洽结束阶段。

 

  4、把FFT网格当作需要收敛的参数来对待

 

  LAECHG重构发生在NGXF×NGYF×NGZF这套细网格上,网格过粗时Bader边界会抖动,电荷值会随网格变化明显;最直接的做法是提高ENCUT或显式提高NGXF、NGYF、NGZF,做两到三组网格对比,直到原子电荷变化进入你能接受的阈值。

 

  5、做自旋时顺手核对CHGCAR是否含磁矩密度块

 

  ISPIN=2时CHGCAR第一段是总电荷密度,第二段是磁化密度,也就是自旋上减自旋下;如果你后面还要做原子磁矩的Bader积分,这个结构必须先确认清楚。

 

  二、VASP Bader电荷怎么分析

 

  核心思路是用全电子参考密度来划分原子盆域,再把你关心的密度在这些盆域里积分,VASP场景里最常见的是在全电子盆域里积分CHGCAR对应的价电子密度。

 

  1、先把AECCAR0与AECCAR2合成参考密度

 

  常规做法是用Henkelman组提供的chgsum脚本把AECCAR0与AECCAR2相加生成CHGCAR_sum,很多论文与教程都是用这一步把总密度写到CHGCAR_sum里作为后续参考。

  2、用参考密度生成盆域,用CHGCAR做积分

 

  在PAW体系里,用AECCAR0+AECCAR2的和来生成原子盆域,同时在这些盆域里积分CHGCAR的伪密度,是一个被反复使用的流程,Critic2的示例也明确用总的全电子密度做reference而把CHGCAR当作integrand来得到每个原子的价电子布居数。

 

  3、bader命令的落地写法

 

  把CHGCAR、AECCAR0、AECCAR2放在同一目录后,先生成CHGCAR_sum,再执行常见用法bader CHGCAR-ref CHGCAR_sum,输出里重点看ACF.dat的每原子积分电荷与误差项;如果你做的是自旋密度积分,常见做法是把磁化密度单独拿出来作为输入并仍用CHGCAR_sum做参考盆域。

 

  4、怎么从ACF.dat读出你要的电荷数与净电荷

 

  当你按上面流程在盆域里积分的是CHGCAR时,ACF.dat里对应的是价电子布居数;净电荷的常用写法是Zpsp减去价电子布居数,其中Zpsp是赝势价电子数,可从POTCAR的元素价电子配置或你使用的赝势说明里获得,Critic2示例也给出了同样的解释与计算方式。

 

  5、自旋体系要算原子磁矩时怎么做

 

  因为CHGCAR里在ISPIN=2时包含总电荷与磁化密度两段,你可以在相同盆域下对磁化密度做Bader积分得到每个原子的自旋磁矩分配,关键是盆域的reference仍然保持用全电子参考密度生成,保证边界一致。

 

  三、VASP结果异常时怎么排查与补齐

 

  Bader结果出问题通常不是软件坏了,而是输入密度不一致、网格不够、或密度块用错,按下面顺序排查效率更高。

 

  1、先查你有没有把核心密度加进去

 

  出现氢原子电荷接近零、某些原子电荷明显离谱时,优先确认AECCAR0与AECCAR2是否齐全并已相加,因为只用CHGCAR会缺核心密度信息,很多案例都把这一步当作首要检查项。

 

  2、再查CHGCAR是否来自同一次最终自洽

 

  不要混用不同计算目录的CHGCAR与AECCAR文件,尤其不要拿结构优化中途的密度去配另一份AECCAR;VASP对CHGCAR的说明强调不同任务类型下CHGCAR含义不同,静态与结构优化的最终密度才适合直接做后处理。

 

  3、用网格收敛性把漂移压下去

 

  把ENCUT提高一档或显式提高NGXF、NGYF、NGZF,观察关键原子的Bader电荷是否稳定,LAECHG重构发生在细FFT网格上这一点决定了网格不足会直接反映到盆域边界上。

 

  4、碰到怪异噪声时把ADDGRID当作开关项测试

 

  ADDGRID会启用额外支持网格来评估增广电荷,VASP说明该网格点数比标准细网格更多,常用于降低力的噪声;但也有工具文档提示在某些体系里AECCAR0噪声会影响积分结果并建议不要开启ADDGRID,所以更稳妥的做法是同一套参数下分别跑一次ADDGRID开启与关闭,看Bader结果是否更稳定再定。

 

  5、确认自旋体系没有把磁化密度当成总电荷去算

 

  ISPIN=2时CHGCAR有两段数据块,如果你在提取或转换时把第二段磁化密度当成总电荷密度输入,电荷会立刻不对;先按VASP对CHGCAR结构的说明把数据块对应关系理清,再做后处理。

  总结

 

  做VASP的Bader分析可以按一条主线记住:计算阶段用LCHARG拿到CHGCAR,用LAECHG拿到AECCAR0与AECCAR2并生成全电子参考密度;分析阶段用全电子参考密度划分盆域,再在同一盆域里积分CHGCAR得到价电子布居数,最后用赝势价电子数做净电荷换算;一旦结果异常,就按核心密度是否补齐、文件是否同源、FFT网格是否收敛、自旋密度块是否用对这四类问题逐项排查,基本都能定位到原因。

135 2431 0251