Critic2 网格与积分检查
用真实NaCl三个FFT网格演示电荷、芯区混叠、盆体积和周期拓扑的检查。
阅读本篇目录
下载Critic2实操包,解压后进入包目录。每次重算使用一份新的目录;输入、原始结果、数据表和高清图都在包内。模块为 critic2/1.4,本专题按集群实际入口操作。
1. 原始DFT设置#
这组三个密度来自此前集群实际VASP计算。结构、PBE、ENCUT=550 eV、EDIFF=1E-6、Gamma 7×7×7等保持一致,改变显式FFT细网格。64³对应的完整INCAR如下:
SYSTEM = nacl-grid-64
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
IBRION = -1
NSW = 0
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .FALSE.
LCHARG = .TRUE.
NELM = 150
ALGO = Normal
ISYM = 2
LAECHG = .TRUE.
LELF = .FALSE.
NPAR = 1
NGXF = 64
NGYF = 64
NGZF = 64
KPOINTS:
Gamma mesh
0
Gamma
7 7 7
0 0 0
结构POSCAR:
Cl Na
1.0000000000000000
0.0000000000000000 2.8500000000000001 2.8500000000000001
2.8500000000000001 0.0000000000000000 2.8500000000000001
2.8500000000000001 2.8500000000000001 0.0000000000000000
Cl Na
1 1
Direct
-0.5000000000000000 0.5000000000000000 0.5000000000000000
0.0000000000000000 0.0000000000000000 -0.0000000000000000
原始DFT资料包保留对应输入与已完成密度。包中 conversion-source/NaCl64另外提供64³的三个真实密度文件,可单独运行转换示例。
2. 按相同流程比较网格#
bash run.sh 11
bash run.sh 13
bash run.sh 17
它们依次处理64³、96³和160³,以同样的参考场、价密度和YT设置积分。先比较净电荷变化,再看总电子数和盆体积,不能只看程序是否结束。

实际NaCl网格对比:价电荷较稳定,重建密度的芯区积分仍显示明显混叠。
本例价密度整胞约8电子,而AECCAR0+2参考密度整胞积分依次约31.771944、28.867822、28.128481,理论全电子数为28。粗网格的芯区密度变化很快,不能把“参考密度已加载”当作它已足够细。这里保留实际参考密度,用于演示定义盆及网格敏感性,没有把积分强行改成28。
3. 周期拓扑也要看完整晶胞#
python3 - <<'PYCODE'
import json
p='work/NaCl-160-yt/cps.json'
d=json.load(open(p))['critical_points']
print('非等价CP:',d['number_of_nonequivalent_cps'])
print('完整晶胞CP:',d['number_of_cell_cps'])
PYCODE

实际NaCl原胞和完整晶胞临界点;2−12+12−2=0。
三个网格的临界点计数相同,不意味着每个原子盆性质都收敛。尤其原子盆内拉普拉斯积分的误差比价电子人口更明显;不能只凭全胞拉普拉斯和为零就认定每个盆都可靠。对目标体系,应继续增加网格、检查盆内量和目标性质变化。
重新提取配套结果#
先看已有数据时,在新解压目录执行:
bash analyze.sh
ls analysis-reference
ls figures-reference
它从 reference/work/ 提取表格并生成9张图,不启动新的DFT。若要从上游水体系开始重算,在另一份新解压目录执行 bash run-all.sh;流程为ORCA计算 → 原生波函数导出 → 真实VASP密度转换 → Critic2 → 表格和图片,结果在 work/、analysis/、figures/。单例只产生对应目录,不要对缺少其他条件的半套结果调用整包分析。