Critic2 Voronoi与等密度区域积分
从真实NaCl密度比较几何分区和密度阈值分区,读懂体积与电子数。
阅读本篇目录
下载本组操作包,解压后进入包目录。包中有17个原生输入、原始结果、表格与6张图;复用已经计算的水二聚体WFX和NaCl价密度,不启动新的DFT。模块为 critic2/1.4。
1. 先明确积分区域#
同一份密度可以有不同分区。Voronoi按离哪个原子最近分区,等密度区域按ρ的阈值选取,Bader原子盆则按密度梯度定义。这些区域不同,得到的“原子电子数”也不同,不能将它们当作同一个电荷定义。
本例使用真实VASP NaCl价密度,64³网格,Cl和Na各一个,价电子总数约8;NaCl.cube已经转换为e/bohr³。原始计算为PBE、550eV、EDIFF=1E−6、Γ中心7×7×7 k网格。这里重新做积分,不重新算DFT。
2. Voronoi几何分区#
bash run.sh 1
grep -A 12 'Integrated atomic properties' work/voronoi/out.cro
crystal ../../data/NaCl.cube
load ../../data/NaCl.cube
reference 1
integrable 1
voronoi
reference 1选真实价密度;integrable 1额外输出同一密度的积分,便于对照。原生结果为:
| 几何区域 | 体积/bohr³ | 价电子数 |
|---|---|---|
| Cl附近 | 159.179784 | 7.40643514 |
| Na附近 | 153.256294 | 0.593564688 |
| 合计 | 312.436078 | 7.99999982 |
若按Na1、Cl7价电子参考计算净电荷,本有限网格约为Na+0.406435e、Cl−0.406435e。这是Voronoi定义下的教学数值,不是Bader积分的结果。

真实NaCl周期几何的独立最近原子分区与原生Voronoi电子数;灰色表示等距网格点。
连续几何中两类Voronoi体积相等;64³离散采样有12098个等距节点,边界归属会影响各自体积与电子数。因此本表不等体积不能解释为连续Voronoi几何不等,正式使用需细化网格并检查边界敏感性。总量守恒也不能替代单区域收敛。
3. 按密度阈值积分#
bash run.sh 2
bash run.sh 3
grep -A 10 'Integrated isosurface regions' work/isosurface-high/out.cro
高于阈值的完整输入:
crystal ../../data/NaCl.cube
load ../../data/NaCl.cube
reference 1
integrable 1
isosurface higher 0.01
低于阈值的输入:
crystal ../../data/NaCl.cube
load ../../data/NaCl.cube
reference 1
integrable 1
isosurface lower 0.01
阈值0.01采用e/bohr³。实际分区为:
| 条件 | 体积/bohr³ | 电子数 |
|---|---|---|
| ρ>0.01 | 114.012280 | 7.17511362 |
| ρ<0.01 | 198.423798 | 0.824886207 |
两者的体积、电子数合起来分别回到全胞体积与约8个电子;本输入没有恰好等于阈值的节点。

同一实际密度网格的高、低密度区域;数值与对原始网格直接求和一致。
4. 换成自己的体系#
先用周期网格工具确认单位、晶胞和全胞电子数,再修改两条 load/crystal路径与密度阈值。不要将等密度区域的电子数直接称为某个原子的净电荷,也不要将几何分区当作密度梯度盆。
提取结果与完整重做#
在新解压目录中先查看配套结果:
bash analyze.sh
ls analysis-reference
ls figures-reference
分析依次检查区域积分、原生轨迹/等高线、几何体积和球积分,然后生成6张图。完整重做17个原生条件时,在另一份新解压目录执行:
bash list.sh
bash run-all.sh
ls work analysis figures
每个编号写入自己的 work/名称/。已有结果时使用新的解压目录;不要对只算了一个编号的不完整 work/ 调用整组分析。CPU重算应使用账户分配的计算资源,包内 run.slurm 按CPU分区整节点56核规则准备,实际教学程序单线程,可用 sbatch run.slurm 提交;队列暂不能分配时,先提取随包已有数据。
构建为标签1.4、内部1.4.155,GCC/GFortran13.3、双精度/OpenMP,LAPACK3.12.1、Readline8.2、NLopt2.10.0、Libxc7.0.0及Libcint标签6.1.2。配套脚本使用已有NumPy、SciPy和Matplotlib环境,无需手动安装另一套MPI。
返回Critic2专题。依据:固定版本源码、官方命令参考、官方手册。这些是已运行的主要命令与条件,专用积分、特定波函数和其他接口仍有各自适用范围。