Bader命令选项、CUBE与临界点
实际运行算法、区域输出、真空、Voronoi及CUBE选项,解释输出差异。
阅读本篇目录
下载本篇输入、完整脚本、数据与高清图。解压后在新目录运行,reference保存鸢算科技实际运行的参考结果。
1 运行各选项示例#
本篇使用Bader 1.05。下载包的bader_options.py逐项运行命令,各结果放在独立目录,避免ACF.dat被覆盖。运行全部配套示例只需:
bash run.sh
也可直接查看本地帮助:
module load bader/1.05
bader -h
以下命令中的CHGCAR及CHGCAR_ref采用同一个64³ NaCl密度,参考密度生成方法见基础教程。
2 分区算法、边缘细化和终止条件#
bader CHGCAR -ref CHGCAR_ref -b neargrid
bader CHGCAR -ref CHGCAR_ref -b ongrid
bader CHGCAR -ref CHGCAR_ref -b weight
bader CHGCAR -ref CHGCAR_ref -r -2
bader CHGCAR -ref CHGCAR_ref -m max
三种算法给出的Na净电荷分别为 +0.831068、+0.825181、+0.833328 e。这是同一有限网格下算法离散化的差异,应通过网格收敛判断,不能挑最接近预期价态的结果。
默认-r -1只复核重分配点附近,-r -2复核全部边缘;默认-m known在已知区域终止路径,-m max追踪至密度极大值。本例两种细化/终止设置给出相同电子数。
3 真空阈值与Voronoi分区#
bader CHGCAR -ref CHGCAR_ref -vac off
bader CHGCAR -ref CHGCAR_ref -vac auto
bader CHGCAR -ref CHGCAR_ref -vac 0.001
bader CHGCAR -n bader -c voronoi
-vac auto使用1E-3 e/ų阈值,使用参考密度时根据参考密度判断低密度区域。这个体相NaCl例子没有真空区域,三种设置的电子积分相同;带真空的表面或分子应另外检查真空电荷和真空体积。
-c启用指定分析,-n关闭指定分析;默认开启Bader。Voronoi按几何距离划分,本例Cl、Na区域电子数为 7.3891、0.6109,合计8。它与Bader的零通量分区定义不同,不能混称为同一种电荷。Voronoi结果在终端日志中读取。
4 区域输出选项#
bader CHGCAR -ref CHGCAR_ref -p all_atom
bader CHGCAR -ref CHGCAR_ref -p all_bader
bader CHGCAR -ref CHGCAR_ref -p sel_atom 1
bader CHGCAR -ref CHGCAR_ref -p sel_bader 1
bader CHGCAR -ref CHGCAR_ref -p sum_atom 1-2
bader CHGCAR -ref CHGCAR_ref -p sum_bader 1-2
bader CHGCAR -ref CHGCAR_ref -p atom_index
bader CHGCAR -ref CHGCAR_ref -p bader_index
bader CHGCAR -ref CHGCAR_ref -p surfaces_atoms
atom按原子汇总区域,bader按独立密度盆编号。sel选择一个或若干区域,sum将选定区域相加,index给出每个网格点所属编号,surfaces_atoms导出区域边界关联。完整输出的体积/编号含义见区域可视化教程。

5 CHGCAR与CUBE输入#
bader CHGCAR -i chgcar -ref CHGCAR_ref
bader charge.cube -i cube -ref reference.cube
bader CHGCAR -ref CHGCAR_ref -v
未指定-i时程序尝试识别格式。-v输出更详细过程,不改变分区定义。
下载包用ASE将同一密度写为CUBE:体素向量用Bohr,密度从e/ų乘0.529177210903³转换为e/Bohr³,再交给Bader。CUBE与CHGCAR得到的原子电子数最大差为 3.7×10⁻⁵ e,来自该文本写出精度;转换后应重新核对总电子数。
6 密度临界点输出#
bader CHGCAR -cp
在正交BCC Fe例子中得到2个核、8个键、12个环、6个笼临界点,满足周期晶体的计数关系2−8+12−6=0。位置、Hessian与分类写入CPFU00.dat,连通关系在LINK00.dat。
本例还检查了Hessian特征值。程序原始Laplacian列与Hessian的迹不一致,因此不要直接用该列进行定量成键比较;配套检查脚本同时列出两者。若需要比较临界点处的电子密度、梯度或拉普拉斯,还应确认导数单位、网格和拓扑算法收敛。本篇提供位置与分类的操作实例,不把计数关系通过当作全部导数量正确的证明。
参考:Bader程序和命令说明。