Critic2 粉末衍射与倒易空间
从同一NaCl结构输出粉末图、均匀k网格建议和布里渊区几何。
阅读本篇目录
下载本篇配套操作包,解压后进入包目录。包中有23个Critic2短例子、输入、原始结果与7张高清图。它复用Critic2第一次计算中的真实水二聚体波函数和集群已有NaCl密度,不重新进行DFT。
1. 生成粉末图#
bash run.sh 16
head -n 8 work/powder/in_xrd.dat
crystal ../../data/NaCl.cube
powder
本例使用程序默认波长1.5406Å,横坐标2θ为角度;数据范围5°至90°。它根据固定NaCl结构与原子散射模型计算理想粉末图,不是实验图谱,也不是一次新电子结构计算。

实际原生粉末图与近邻距离指纹;图中的衍射峰位置满足FCC结构的布拉格条件。
调整波长或展宽时要记录参数,再与实验条件比较。不能仅凭某一个峰或理想强度完成物相判定;多相、择优取向、热振动和仪器展宽需要另外考虑。
2. 看对称性和k网格建议#
bash run.sh 18
grep -n 'Rk\|kpts\|Reciprocal\|Vertex\|Faces' work/symmetry-kgrid/out.cro
crystal ../../data/NaCl.cube
sym
kpoints
kpoints 20
bz
sym查看当前结构对称性。kpoints输出不同Rk选择对应的均匀网格;本NaCl原胞的 kpoints 20 给出3×3×3。这是几何建议,不是能量或力已经收敛的证明,正式计算仍需按目标物性检查k网格。
bz输出倒易晶格与第一布里渊区顶点/面。本例为24个顶点、14个面。原生所列倒易矢量采用不含2π的约定,单位bohr⁻¹;和电子结构程序的k坐标比较时先核对2π及坐标单位。
3. 换结构的注意点#
同一结构用原胞、常规胞或超胞描述时,均匀网格维数可能不同,不能只比较“几乘几”。先确认真实晶格基矢、原子数、倒易长度,再判断采样密度。二维体系的真空方向还需按对应计算方法设置,不能照搬三维NaCl网格。
提取数据与重新画图#
只想看配套结果,先在新解压目录执行:
bash analyze.sh
ls analysis-reference
ls figures-reference
该命令从 reference/work/ 提取数据,并生成全部7张图。若要重做后处理,在另一份新解压目录执行:
bash list.sh
bash run-all.sh
ls work analysis figures
顺序是准备真实密度 → 生成周期傅里叶网格 → 运行23个Critic2输入 → 提取表格 → 画图。结果写入 runtime-data/、work/、analysis/、figures/;已有结果目录时使用新解压目录,避免混用。只运行单个编号后,不要对不完整的 work/ 调用整包分析。
重算应使用账户分配的CPU资源。包内 run.slurm 按CPU分区整节点56核规则准备,可用 sbatch run.slurm 提交;教学流程实际单线程,申请56核不表示做过并行性能测试。CPU资源暂不可分配时,先使用已有结果提取与画图。
本例程序是 critic2/1.4,固定提交内部版本1.4.155;GCC/GFortran13.3、双精度/OpenMP,LAPACK3.12.1、Readline8.2、NLopt2.10.0、Libxc7.0.0及Libcint标签6.1.2。辅助脚本使用集群已有ASE3.29.0、NumPy、SciPy和Matplotlib环境,脚本已选定解释器。没有GUI、tblite或libxtb接口要求。
返回Critic2专题。写法依据:固定版本源码、官方命令参考、图形与采样手册、结构工具手册。在线手册面向发展版本,实际输入采用本集群固定版本已运行的写法。