Gaussian 专题

Gaussian 向量网格与分量选择

终端演示SElect、Magnitude、Normalize、SProd与VProd,明确分量、点乘叉乘和单位。

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

本篇使用鸢算科技集群实际 Gaussian 16 C.01 AVX CPU 版和水分子 B3LYP/6-31G(d)、UltraFine 单点结果。Gaussian 为厂商预编译版本;配套分析使用 ASE 3.29 环境中的 NumPy 和 Matplotlib。这里的电子密度导数不是原子所受的力,也不是分子动力学中的速度。

下载输入、真实数值网格、终端脚本和高清绘图程序,解压进入目录:

bash run.sh

先生成 analysis/ 与 figures/ 查看已有真实结果,无需Gaussian。要从自己的检查点计算,先 yskit gaussian-init,再在已分配CPU的作业中执行:

bash run.sh compute

流程依次是水分子单点、formchk、网格和向量运算、数值分析与三张图。每个输入1线程、1GB内存;不要在客户登录终端启动正式计算。已有输出时请另解压一份,脚本拒绝覆盖;提交方法见Gaussian输入与检查点。

1. 先分清四分量文件和三维向量#

先按密度导数教程生成 gradient.cube。本例每个格点依次有:

1: rho
2: d(rho)/dx
3: d(rho)/dy
4: d(rho)/dz

前三个数并不是完整的空间向量。密度和导数的量纲不同,也不能直接把4个值一起求模当作物理梯度。先用 SElect 选择实际x/y/z导数分量:

cubman <<'EOF'
SElect
gradient.cube
Y
gradient-vector.cube
Y
3
2 3 4
EOF

这里3表示输出3个值,最后一行按顺序指定三个分量索引。索引写在同一行,以空格分隔;不是把原子编号写进去。两个Y分别表示输入、输出为格式化文本。

只提取密度分量则是:

cubman <<'EOF'
SElect
gradient.cube
Y
selected-density.cube
Y
1
1
EOF

实际水分子的三个密度导数分量

三幅图分别来自选择后的x/y/z分量,正负号表示密度沿坐标方向如何变化。色标为便于阅读截在±1,原始数据未截断。

2. 求梯度模与单位方向#

cubman <<'EOF'
Magnitude
gradient-vector.cube
Y
magnitude.cube
Y
EOF
cubman <<'EOF'
Normalize
gradient-vector.cube
Y
normalized-vector.cube
Y
EOF

Magnitude 输出每个格点的三维欧氏模;本例与独立 cubegen NormGradient=SCF 和三个分量平方和开根号一致,文本五位科学计数精度带来末位舍入差异。31³粗网格最大模约2190.822 e/Bohr⁴,近核导数尖峰不能用来替代收敛的空间分析。

Normalize 把每个非零三维向量除以自己的模,只保留方向,不保证整个空间积分为1。它与标量教程中正标量变成+1是同一种逐点操作。它不是波函数归一化、电子数归一化或原子电荷计算。

3. 点乘与叉乘#

先复制一份三分量文件,便于两个输入分别打开:

cubman <<'EOF'
Copy
gradient-vector.cube
Y
gradient-copy.cube
Y
EOF

点乘:

cubman <<'EOF'
SProd
gradient-vector.cube
Y
gradient-copy.cube
Y
dot.cube
Y
EOF

输出为每个格点的 gx²+gy²+gz²,一个数值;不是只打印一个空间积分结果。

叉乘:

cubman <<'EOF'
VProd
gradient-vector.cube
Y
gradient-copy.cube
Y
self-cross.cube
Y
EOF

本例相同向量的叉乘逐点为零。要检查非零叉乘,下载脚本另用 SElect 把同一场的分量重排成 (gy,gz,gx),然后与原场叉乘;结果与逐点三维叉乘公式一致。**分量重排仅为运算演示,不代表另一种物理场或一次新的电子结构计算。**输出有三个分量,不能用标量网格程序直接读。

两个输入必须具有相同的原点、体素步进向量、网格点数和原子表;每个分量的物理含义与单位也需要匹配。应使用不同文件名保存两个输入,避免同一原始文件在两个输入单元重复打开。

4. 从输入到最终结果#

bash run.sh compute
cat analysis/RESULTS.json

在已分配CPU的作业中,上述命令从自己的水分子单点开始,依次生成完整FCHK、导数网格、分量选择、模/单位向量、点乘/叉乘,再输出数值对照和三张高清图。results/ 与默认 bash run.sh 则使用下载包中已有数据;两条路线的分析读取对应的实际输出目录。

配套程序同时核对分量、同网格条件、逐点模、单位向量、零/非零叉乘和点乘;analysis/finite-difference.csv 另外给出密度导数的有限差分数据。不要把“命令执行完了”直接当成物理含义正确。

至此可结合标量网格运算学习本次C.01菜单中的13类操作:Add、Copy、Difference、Properties、SUbtract、SCale、SQuare、SProd、VProd、Magnitude、Normalize、SElect、ToXYZ。这里仅覆盖这些实际展示的标量/向量分支,文件格式和Gaussian其余关键词还需按各自任务选择。

参考:Gaussian编写的cubman手册存档是2013年的标量命令说明;本文向量分支按实际C.01提示、输入和数值结果展开。

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

查看配图

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

100%查看原图 ↗