Critic2 几何体积与脚本工具
演示范德华体积、堆积、坐标识别、晶胞比较以及受控脚本调用。
阅读本篇目录
下载本组操作包,解压后进入包目录。包中有17个原生输入、原始结果、表格与6张图;复用已经计算的水二聚体WFX和NaCl价密度,不启动新的DFT。模块为 critic2/1.4。
1. 模型球体积与堆积率#
bash run.sh 12
bash run.sh 13
NaCl几何球模型:
crystal ../../data/NaCl.cube
units ang
radii cov Na 1.0 Cl 1.0
packing cov
这里人为把Na、Cl半径各设1Å。最近原子相距2.85Å,所以两个球不重叠,解析体积为8π/3≈8.37758ų。原生输出的体积以bohr³给出,需先核对单位;本次结果换算约8.437ų,处在其Monte Carlo统计误差范围内。
水二聚体范德华体积输入:
molecule ../../data/water.wfx
load ../../data/water.wfx
reference 1
vdw prec 0.01
本版本默认H=1.09Å、O=1.52Å,计算这些球的并集体积。参考结果为34.332594±0.343326ų,误差是一倍标准误;换一次运行会有统计变化。该原生命令没有显式随机种子选项,配套独立对照工具固定种子14020261030并采样200万点,按统计误差比较。

实际原生Monte Carlo几何体积与独立参考;球模型不是电子密度原子盆。
2. 按坐标识别原子#
bash run.sh 8
crystal ../../data/NaCl.cube
identify cryst
0 0 0
0.5 0.5 0.5
endidentify
NaCl的分数坐标(0,0,0)识别为Na,(0.5,0.5,0.5)为Cl。cryst表示分数坐标,不是Å;换坐标前先确认晶格基矢和坐标约定。
3. 对称性与空间群符号#
bash run.sh 7
crystal ../../data/NaCl.cube
symm
nosym
nosymm
symm 1
spg
symm查询当前结构对称性;nosym/nosymm等设置影响后续读结构时的对称猜测,不能把这些标志当作已经优化了原子位置。spg列出程序提供的空间群符号参考表。
4. 允许晶胞变化的结构比较入口#
bash run.sh 11
grep -n 'DIFF' work/cell-volume-comparison/out.cro
crystal ../../data/NaCl.cube
write original.cif
comparevc . original.cif sp maxfeval 30
本例把当前结构与其CIF导出做 SP 单点对照,实际DIFF=0;这里没有做晶胞优化。选择其他结构搜索选项时,应另外检查变换后的晶胞、物种和原子对应关系,不要把比较距离解释成能量。
5. 场取值计时命令#
bash run.sh 9
molecule ../../data/water.wfx
load ../../data/water.wfx
reference 1
benchmark 20
它对20个取值点做调用计时,适合认识命令输出。这个极短输入不用于比较CPU型号、计算材料通用加速比或估算大体系耗时。
6. 调用自己的简单Shell命令#
bash run.sh 10
cat work/safe-shell/run.txt
cat work/safe-shell/system.txt
echo Controlled local file example
run printf "RUN_OK\n" > run.txt
system printf "SYSTEM_OK\n" > system.txt
end
分别得到 RUN_OK、SYSTEM_OK。这些命令在当前算例工作目录执行;日常后处理优先采用独立脚本,清楚设置输入路径和输出文件,避免不同例子覆盖同名结果。
提取结果与完整重做#
在新解压目录中先查看配套结果:
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专题。依据:固定版本源码、官方命令参考、官方手册。这些是已运行的主要命令与条件,专用积分、特定波函数和其他接口仍有各自适用范围。