Critic2 原子盆三维表面
从真实NaCl密度导出原子盆与主束OBJ,比较表面细分并重画结构图。
阅读本篇目录
这篇用本集群实际计算的 NaCl 密度,把“原子盆是什么形状”变成可打开的三维文件。先读取决定分区的参考密度,再找临界点,最后导出原子盆表面;另一个例子导出指定种子所在的主束区域。
1. 下载资料,查看算例#
下载原子盆与QTREE资料包,在获得的CPU资源中解压:
unzip critic2-basins-wave142-*.zip -d critic2-basins
cd critic2-basins
bash run.sh list
程序为 critic2/1.4,内部版本1.4.155,采用GCC/GFortran13.3、OpenMP、LAPACK/BLAS编译;本例单CPU运行,不需要GPU。资料中的两份96³ CUBE来自既有实际DFT结果,没有再次计算电子结构。
2. 先画一个原子盆#
bash run.sh 2
ls work/basin-na
head -n 12 work/basin-na/in-2.obj
本例CP1是Cl、CP2是Na。自己的结构必须先查看 AUTO 的临界点报告,不能照搬这两个编号。实际输入:
crystal ../../data/NaCl-96-valence.cube
load ../../data/NaCl-96-reference.cube
load ../../data/NaCl-96-valence.cube
reference 1
integrable 2
auto
cpreport cps.json
basinplot cube 1 cp 2 prec 1e-5
REFERENCE 1指定决定盆边界的密度。INTEGRABLE 2注册额外价电子密度,但画表面并不会自动给出它的原子积分。BASINPLOT CUBE 1中的CUBE表示从立方体开始细分表面;数字1是细分级别,和密度文件的96³网格是两件事。PREC控制沿射线寻找边界的精度。本晶体例子的原生OBJ长度坐标与PREC使用bohr,配图已换算成Å。
得到 in-2.obj 和配套 in-2.mtl。OBJ顶点是实际边界采样,直边面片连接这些顶点;需要保留两个文件的相对位置,三维查看器才能读取材质。
3. 加密表面,比较形状#
bash run.sh 7
ls work/basin-na-fine/in-2.*
对应的关键命令是:
basinplot cube 3 cp 2 prec 1e-5
级别1得到26个顶点、24个四边形;级别3得到386个顶点、384个四边形。下面直接使用本次原生OBJ画图,三个坐标轴均按相同物理比例显示。

独立从面片顶点计算的Na几何体积为 85.550 → 67.726 bohr³,同一密度网格的YT体积为 66.034 bohr³。加密改善几何近似,仍不会让直面片自动成为精确曲面,也不应把OBJ体积当作高精度电子数积分权重。

4. 指定区域种子,画主束#
bash run.sh 3
head -n 12 work/bundle/in-bundle.obj
实际命令:
bundleplot 0.1 0.2 0.3 triang 1 prec 1e-5
晶体中的前三个数是分数坐标,TRIANG 1从八面体细分。本例得到18顶点、32三角面。主束按梯度路径定义,是比整原子盆更细的区域;种子不是“原子编号”,主束也不能直接改名为完整Bader原子盆。

5. 重画配套图片,得到什么文件#
bash analyze.sh
ls figures-reference
该命令只读随包的实际参考结果,重新计算几何体积并生成PNG/SVG。完整重算全部原生条件并画图,请在另一份新解压目录运行 bash run-all.sh。最终得到原生OBJ/MTL、临界点JSON、体积对照表和可放大的结构图。
需要原子电子数和电荷时,继续看QTREE积分和原子电荷。官方表面命令说明可用于查询其他输出格式。
只分析随包数据时,数值检查表在 analysis-reference/CHECKS.json,PNG/SVG图片在 figures-reference/;完整重算时分别写入 analysis/ 和 figures/。