Gaussian 检查点与结构辅助工具
用真实水分子演示formchk、unfchk、chkchk、newzmat与testrt,区分完整波函数与数值摘录。
阅读本篇目录
本篇使用鸢算科技集群实际 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. 一套流程先后做什么#
- 完成自己的 Gaussian 计算,取得二进制
result.chk。 - 用
formchk转为完整文本 FCHK,读取数值与结构。 - 用
chkchk查看检查点对应的方法、标题、电荷和多重度。 - 按需要用
newzmat导出结构、重建内部坐标;用testrt预览 route 的解释。 - 需要恢复二进制检查点时,再用
unfchk。
参考计算可分两步执行:
bash compute.sh references
bash compute.sh tools
本例水分子是固定几何单点,完整输入如下,没有 Opt:
%chk=result.chk
%NProcShared=1
%Mem=1GB
#p B3LYP/6-31G(d) SCF=Tight Int=UltraFine NoSymm
water-b3lyp-ultrafine
0 1
O 0.00000000 0.00000000 0.00000000
H 0.00000000 0.75700000 0.58700000
H 0.00000000 -0.75700000 0.58700000
2. formchk 与 unfchk#
在自己的计算目录中:
formchk result.chk water.fchk
head -n 20 water.fchk
grep '^Total Energy' water.fchk
grep '^Number of electrons' water.fchk
unfchk water.fchk water-restored.chk
formchk water-restored.chk water-restored.fchk
配套例子中,恢复前后电子能、原子序数、坐标、SCF密度矩阵及MO系数保持一致。完整 FCHK 是波函数数据文件;公开包的 *-fields.fchk.txt 只是数值字段摘录,不能拿它代替完整 FCHK 交给 unfchk 或 cubegen。
二进制检查点还可能受软件版本和平台格式影响。这里演示同一 C.01 工具环境中的往返,不据此声称任意旧版检查点都可直接读取。
3. chkchk:先辨认手里的检查点#
chkchk water-restored.chk
本例显示 C.01、3个原子、总电荷0、多重度1,以及 B3LYP/6-31G(d)、UltraFine、正常完成的检查点状态。它还能提示是否有坐标、AO基组、MO等数据。
chkchk 用于检查文件内容身份,不代替几何收敛、能量收敛或频率判断。
4. newzmat:导出结构与重建Z矩阵#
以下命令在包内 work/tools/ 中运行,使用已恢复的本地检查点基名:
mkdir -p scratch
export GAUSS_SCRDIR="$PWD/scratch"
newzmat -ichk -oxyz water-restored water-export
newzmat -ichk -opdb water-restored water-export-pdb
newzmat -ichk -ozmat -rebuildzmat -nosymm -noround water-restored water-export-zmat
head water-export.xyz
head water-export-zmat.com
-oxyz 输出不带原子数和注释行的 Cartesian 文本,并非普通XYZ的完整文件头。本例输出内容为:
O 0.000000000000 0.000000000000 0.000000000000
H 0.000000000000 0.757000001960 0.587000002583
H 0.000000000000 -0.757000001960 0.587000002583
-opdb 输出PDB;PDB坐标通常只保留有限小数位。-rebuildzmat 根据几何重建Z矩阵;本例变量为两个约0.957924 Å的 O–H 距离和约104.417901°的 H–O–H 夹角。转换可以旋转坐标系,比较结构时应看原子间距与键角,不要求每个 Cartesian 分量完全相同。
本例从检查点导出时保留原 B3LYP route。换格式来源时仍应打开新GJF检查方法、基组、电荷、多重度与坐标,不把结构转换当作已经完成计算。
5. testrt:查看route如何解释#
testrt <<'EOF'
#p B3LYP/6-31G(d) Freq=Raman SCF=Tight Int=UltraFine
EOF
它打印 route 的内部链接与选项解释,不运行该分子的SCF,也不检查你的原子坐标是否合理。本例的完整输出在 results/testrt-route.log。
Gaussian作者的工具手册存档可帮助理解选项;该存档为较早G09版本,当前 C.01 可用写法以本页实算命令为准。