Critic2 结构转换与扩胞
从真实密度里的晶体结构导出常用文件、建立超胞并移动指定原子。
阅读本篇目录
下载本篇配套操作包,解压后进入包目录。包中有23个Critic2短例子、输入、原始结果与7张高清图。它复用Critic2第一次计算中的真实水二聚体波函数和集群已有NaCl密度,不重新进行DFT。
1. 导出多种结构格式#
bash run.sh 12
ls work/structure-formats
cat work/structure-formats/NaCl.POSCAR
crystal ../../data/NaCl.cube
write NaCl.POSCAR
write NaCl.cif
write NaCl.xyz
write NaCl.pwi
write NaCl.gen
write NaCl.cri
本版VASP写出使用 NaCl.POSCAR 这种后缀。不要将同一写出命令改成 .vasp;不同读入与写出格式支持范围不能混为一谈。
| 文件 | 使用方式 |
|---|---|
| NaCl.POSCAR | VASP晶胞与原子位置 |
| NaCl.cif | 晶体结构交换,可能采用等价取向/对称描述 |
| NaCl.xyz | 有限结构片段,只保留原子位置,不能作为保留周期晶胞的格式 |
| NaCl.pwi | QE输入模板,需自行选择赝势、泛函和计算设置 |
| NaCl.gen | DFTB+结构文件 |
| NaCl.cri | Critic2显式结构输入 |
原胞含2个原子、体积46.29825ų,常规立方参数5.7Å;原胞不是边长5.7Å的普通立方盒。导出的QE模板里赝势名称和计算设置只是模板,不能不加修改就视为适合目标体系的正式输入。
2. 建立2×1×1超胞#
bash run.sh 13
cat work/supercell/super.POSCAR
crystal ../../data/NaCl.cube
newcell 2 1 1
write super.POSCAR
write super.cif
结果含4个原子,体积92.5965ų。扩胞矩阵作用于晶格基矢和原子清单;它没有重新计算超胞自洽密度。若目标是缺陷、掺杂、扩胞后优化,应将结构送回相应电子结构程序重新计算。

同一真实NaCl结构的原胞和2×1×1超胞,边框按实际晶格基矢绘制。
3. 移动一个原子#
bash run.sh 19
cat work/edit/shifted.POSCAR
crystal ../../data/NaCl.cube
edit
move 1 0.01 0 0 relative
endedit
write shifted.POSCAR
relative表示在当前位置上移动。晶体示例中给出的是分数坐标位移,原子1沿第一晶格方向增加0.01,其他原子与晶胞保持。明确读懂原子编号和坐标单位后再修改;移动结构后原来的密度不再是新结构自洽结果。
4. 对照导出前后结构#
bash run.sh 20
grep -n 'DIFF' work/compare/out.cro
crystal ../../data/NaCl.cube
write original.cif
compare . original.cif
compare . original.cif amd
compare . original.cif rdf
比较当前结构和自己的CIF导出,三种距离都接近0,最大约1.2×10⁻¹⁰。比较时应考虑允许的旋转、平移、等价晶胞和原子排序,文件文字不同不一定代表结构改变。
编号21演示原子标签、共价半径与成键几何阈值:
bash run.sh 21
crystal ../../data/NaCl.cube
atomlabel %S-%id
bondfactor 1.2
radii cov Na 1.66 Cl 1.02
radii
write labels.cif
这类设置改变结构识别或绘图判断,不会改变DFT电子密度、产生真实化学反应或重新优化结构。
提取数据与重新画图#
只想看配套结果,先在新解压目录执行:
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专题。写法依据:固定版本源码、官方命令参考、图形与采样手册、结构工具手册。在线手册面向发展版本,实际输入采用本集群固定版本已运行的写法。