Gaussian 专题

Gaussian cube数据运算

用同一真实水分子网格演示cubman十项标量操作,解释逐点归一化、乘积、差值与坐标表。

更新于 2026-10-31约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本篇使用鸢算科技集群实际 Gaussian 16 C.01 AVX CPU 工具和我们实际计算的水、乙醇参考结果。Gaussian 为厂商预编译版本,使用个人初始化环境;分析脚本使用现有 ASE 3.29、NumPy、SciPy 与 Matplotlib 环境。

下载完整终端脚本、实际数值、结构、cube与绘图程序,在新解压目录先查看结果:

bash run.sh

这一步无需 Gaussian,输出 analysis/ 和 figures/,拒绝覆盖旧结果。results/ 有实际数值摘录和生成的网格,没有 Gaussian 软件、二进制检查点、完整FCHK、MO系数或密度矩阵。

原生重跑时,先 yskit gaussian-init 初始化自己的 Gaussian 环境,再在已分配 CPU 的作业中执行 bash run.sh compute。它先重建自己的水单点、乙醇优化/频率检查点,再运行工具。每个参考输入1线程、1GB主机内存;采用整节点模板时按实际分配调整输入。不要在客户登录终端启动正式任务。提交方法见Gaussian输入与检查点。

1. 先确认两个cube能否直接运算#

相同形状还不够,还应有相同的原点、步进向量、格点次序与原子位置。不同几何或不同网格的文件不能直接按行相减,需要先明确物理参照并映射到同一网格。

本例所有参与算术的cube都从同一水分子FCHK、相同 -2 设置生成;脚本逐项核对网格。原生数据在 results/,自己重跑的文件在 work/tools/。

2. 相加与相减#

进入自己的 work/tools/,用可读的输入流回答交互提示:

cubman <<'EOF'
Add
alpha.cube
Y
beta.cube
Y
my-alpha-beta.cube
Y
EOF

Y 表示读写格式化文本cube。闭壳层的 alpha+beta 与相应总密度逐点一致,末位可因cube文本精度出现差异。

完整密度减去省略芯层的密度,可查看芯层贡献:

cubman <<'EOF'
SUbtract
full-density-coarse.cube
Y
density-coarse.cube
Y
my-core.cube
Y
EOF

这是同一全电子结果的分量差,不是成键电荷差。研究成键电荷差还需统一分子/片段的几何、方法、基组和参照,不能随便找两个分子cube相减。

3. 缩放、平方与逐点乘积#

cubman <<'EOF'
SCale
full-alpha.cube
Y
my-full-alpha-times2.cube
Y
2.0
EOF

本例 2×FAlpha 对应完整闭壳层总密度。SQuare 生成输入标量的逐点平方;SProd 需要两个输入和一个输出文件,生成逐点乘积cube,而不是只打印一个积分数:

cubman <<'EOF'
SProd
alpha.cube
Y
beta.cube
Y
my-product.cube
Y
EOF

乘积或平方后的单位也会改变,不能继续当原电子密度解释。

真实相加、芯层相减、闭壳层缩放与逐点归一化的原生结果

4. Properties与Difference#

cubman <<'EOF'
Properties
density-coarse.cube
Y
EOF

本例打印 SumA=8.1706421347,与脚本独立的体素积分一致。这个数对应粗网格的价电子密度,不能当成10电子总数。

Difference 比较两个输入并打印差的统计量,SUbtract 才是这里用于写出差值cube的操作:

cubman <<'EOF'
Difference
density-coarse.cube
Y
alpha-plus-beta.cube
Y
EOF

原生最小值字段有时会保留0和-9999占位坐标;不要把占位坐标当成分子中真实位置。配套脚本逐值读取数组计算实际极值与积分。

5. Normalize不是总电子数归一化#

对本例处处为正的标量密度,原生 Normalize 会把每个格点归一为+1。整个体素和约为1103.367,不是1,也不是电子数10。

因此它不能用来“修正”不够精细的电子数积分。希望得到正确电荷积分,应改进原始网格与空间范围,不对密度做无物理依据的总量修补。

6. ToXYZ输出的是网格表#

cubman <<'EOF'
ToXYZ
density-coarse.cube
Y
my-grid.xyz
EOF
head my-grid.xyz

这里每行是 x y z value,坐标为Bohr,31³网格有29791行;它不是3原子水分子的XYZ结构。newzmat -oxyz 的元素+坐标文本和这里的网格表也应分开。

本包实际展示 Add、Copy、Difference、Properties、SUbtract、SCale、SQuare、SProd、Normalize、ToXYZ 十项标量用法。原生菜单还列有 VProd、Magnitude、SElect,其向量/选择用途另行展开,不把未演示的分支当成已经覆盖。

继续看密度选项与单位、频率工具与同位素。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗