Gaussian 专题

Gaussian NMR网格与张量方向实操

分别设置SCF与CPHF网格,实际平移和旋转乙醇,正确比较屏蔽张量及其各向同性。

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

下载9份完整输入、实际数值与6张图的绘图脚本,解压到新目录:

bash run.sh

先从配套数值生成 analysis/、nmr-shifts.csv 与 figures/。需要NumPy与Matplotlib,可使用集群ASE 3.29 Python环境,也可通过PYTHON指定自己的解释器。

从头重算前,先初始化个人Gaussian:

yskit gaussian-init

按Gaussian输入与CPU提交申请CPU资源,在已分配的CPU作业内加载个人环境,再运行:

bash run.sh compute

本例为个人授权Gaussian16 C.01 AVX厂商预编译CPU程序,没有公共Gaussian module或自行编译器/MPI版本可套用。整套输入最多使用4个CPU线程;TMS和显式同位素J计算4线程、2GB,其余1线程、1GB。申请资源须覆盖这些设置。默认入口只读自有数值;重算依次完成9份Gaussian、formchk、3次cubegen与分析画图。已有输出请另解压,完整work已有时可用 bash run.sh analyze。

公开的 native-fields.fchk.txt 是选定数值/基组/总密度摘录,不是完整波函数;分析自己的体系请从自己的CHK运行formchk。本组单点坐标来自已完成的优化;更换分子或优化结果后,要同步更新依赖的单点坐标。

1. 分开设置基态积分与响应积分#

NMR不只用到SCF基态,还要求解磁场响应。Int与CPHF的积分网格分别设置;只把Int写成SuperFineGrid,不等于CPHF一定使用相同网格。背景见Gaussian作者Integral手册存档,具体数值以下面的实际计算为例。

本组明确使用:

SCF=(Conver=10,NoVarAcc)
Int=(SuperFineGrid,Acc2E=12)
CPHF=(Grid=SuperFineGrid,Conver=10)
NoSymm

SCF的Conver=10在本例实际请求1×10⁻¹⁰的RMS密度收敛;CPHF的Conver控制另一组响应方程,不能只看名字相同就混为一个量。NoSymm保留输入方向,方便比较张量分量。

grep 'Requested convergence on RMS density matrix' output.log
grep 'Requested convergence is' output.log

2. 同一个分子整体平移,物理屏蔽应一致#

原始输入见NMR屏蔽与位移。下面把所有原子统一平移(2.4,−1.3,0.8)Å,键长和角度不变:

%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31G(d) NMR=GIAO SCF=(Conver=10,NoVarAcc) Int=(SuperFineGrid,Acc2E=12) CPHF=(Grid=SuperFineGrid,Conver=10) NoSymm

Ethanol magnetic-property translated

0 1
C 3.571592164149 -1.703050689766 0.799999999994
C 2.393273467497 -0.743083314410 0.799999999994
O 1.198923256432 -1.521755587510 0.799999999999
H 0.446937901792 -0.910713395760 0.800000000014
H 2.439662126550 -0.090737980377 1.687716250593
H 2.439662126550 -0.090737980377 -0.087716250593
H 4.518986840378 -1.152456832042 0.800000000001
H 3.540320061155 -2.344590109792 1.686956786043
H 3.540320061155 -2.344590109792 -0.086956786043
g16 < input.gjf > output.log
grep 'Normal termination' output.log
grep 'Isotropic =' output.log

本组平移前后的能量与打印屏蔽张量一致。不要拿只移动一部分原子的结构做这个比较;那会改变真实分子几何。

3. 整体旋转,先对齐坐标再比较张量#

本组绕归一化方向(1,2,3)旋转37°,实际输入:

%nprocshared=1
%mem=1GB
%chk=result.chk
#p B3LYP/6-31G(d) NMR=GIAO SCF=(Conver=10,NoVarAcc) Int=(SuperFineGrid,Acc2E=12) CPHF=(Grid=SuperFineGrid,Conver=10) NoSymm

Ethanol magnetic-property rotated

0 1
C 1.135414256706 0.253946329528 -0.425938710388
C -0.258174830576 0.473375146976 0.139510458428
O -0.875874214386 -0.803960833776 0.279735987782
H -1.764518337572 -0.665289908250 0.640203088129
H -0.192599283296 0.989437812165 1.111686192180
H -0.840335994393 1.121783456974 -0.536064501846
H 1.655826840264 1.209742467456 -0.553746199627
H 1.724685103021 -0.377424715838 0.247391509451
H 1.077502547680 -0.245192296201 -1.398949490612
g16 < input.gjf > output.log
grep 'Normal termination' output.log
grep -A 4 'Isotropic =' output.log

旋转会改变xx、xy等坐标分量。用同一个旋转矩阵R,应比较 σrot=R σ Rᵀ;不能要求转动前后的每个分量原样相等。本例完整张量对应关系的最大差约0.000087ppm,各向同性打印值一致。

python3 - <<'PYCODE'
import json
r=json.load(open('analysis/RESULTS.json'))
print(r['invariance'])
PYCODE

4. 不把不同张量约定混起来#

各向同性屏蔽是 Tr(σ)/3。原生屏蔽矩阵一般不必对称;本例输出的三个Eigenvalues与 (σ+σᵀ)/2的本征值对应。Gaussian本次Anisotropy采用按大小排列的主值中的最大主值,计算 1.5×(σmax−σiso),不能未经确认改用“偏离平均值绝对值最大”的另一套约定。

换算化学位移时仍要使用同方法TMS参照。坐标不变性只检查数值设置与坐标解释,不等于基组已收敛,也不等于计算已经包含溶液、构象和振动平均。

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

查看配图

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

100%查看原图 ↗