“第10届量子化学波函数分析与Multiwfn程序培训班将于5月4-8日于北京举办,这是一次性完整、系统学习波函数分析的各种理论知识和全面掌握强大的Multiwfn波函数分析程序使用的最不可错过的机会!请点击此链接查看详情和报名方式,欢迎参加!

“第18届北京科音分子动力学与GROMACS培训班” 将于5月23-26日于北京举办。这是一次性全面、系统学习分子动力学模拟知识和最流行的分子动力学程序GROMACS的关键机会!报名正在进行中,请点击此链接查看详情,欢迎参加!

计算化学公社

 找回密码 Forget password
 注册 Register
Views: 287|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[Gaussian/gview] 自动进行g16的多坐标柔性扫描

[复制链接 Copy URL]

793

帖子

15

威望

3384

eV
积分
4477

Level 6 (一方通行)

鸩羽

本帖最后由 wal 于 2026-3-18 15:42 编辑

去年上看到了一种用Gaussian 16中的GIC功能实现同时扫描多个坐标的方法,当时没需求就收藏起来了。今天有个水传质子的过渡态猜测是协同的,想到了这个方法,于是研究了一下。
原理
假设需要计算一个乙烯与水的加成反应,需要扫描C4-O7'与C1-H9'同时缩短。

则定义冗余内坐标:
RC4O7=R(4,7)RC1H9=R(1,9)
初始结构是随便摆的,RC4O7=1.996,RC1H9=1.775。假设平衡键长C-O为1.43,C-H平衡键长1.07,要扫描5步,则步长ΔRC4O7=−0.1132,ΔRC1H9=−0.1410。据此,列出扫描变量:
首先设置RC4O7的扫描,RC4O7(NSteps=5,StepSize=-0.1132)=R(4,7)。
由于GIC一次只能扫描一个变量,第二个变量不能直接扫描。但是,我们可以通过冻结的方式间接实现。由于此处取的是简单的线性步进,若将RC4O7视作自变量,RC1H9视作因变量,可以拟合出一个形如y=ax+b的函数关系:RC1H9=1.24558⋅RC4O7−0.71118
移项得:0.71118=1.24558⋅RC4O7-RC1H9。由此,我们可以得到一个不变量(实为截距的常数倍)。只要冻住这个量,RC1H9就可以随着RC4O7正确地调整为表中的对应值,即:
  1. F(Frozen)=1.24558⋅RC4O7-RC1H9
复制代码

因此,GIC可以设置为:
  1. RC4O7(NSteps=5,StepSize=-0.1132)=R(4,7)
  2. RC1H9=R(1,9)
  3. F(Frozen)=1.24558⋅RC4O7-RC1H9
复制代码

按照此设置进行扫描,找到最高点:

以该点为过渡态初猜进行计算,顺利收敛:
偷懒
上述原理听上去很简单,但是实际操作很麻烦,笔者是个懒狗,老老实实自己算显然是不可能的。于是捣鼓一番之后,做成了一个小工具autogic,自动完成上述操作。不知道有没有现成工具,我昨天是没搜到
  1. autogic - auto-generate Gaussian GIC scan constraints

  2. Usage:
  3.   autogic <structure.{gjf,com,xyz}> <a-b[=target]> [c-d[=target] ...] [options]

  4. Bond specification formats:
  5.   4-58         Auto-calculate equilibrium bond length from vdW radii
  6.   4-58=1.2     Set explicit target bond length to 1.2 Angstrom

  7. Core options:
  8.   --steps N             Number of scan steps (default: 10)
  9.   --primary K           1-based index of primary scan bond (default: 1)
  10.   --snippet-out FILE    Write GIC block to FILE
  11.   --gjf-out FILE        For GJF input: append GIC and add opt(addgic)
  12.   --debug-xyz FILE      Write debug trajectory XYZ
  13.   --debug               Alias for --debug-xyz <input>.autogic.debug.xyz
  14.   --show-table          Print bond table with current/equilibrium/target lengths
  15.   -h, --help            Show this help

  16. Examples:
  17.   # Use explicit target length for bond 4-58
  18.   autogic ts.gjf 4-58=1.2 59-20 --steps 19 --gjf-out ts_gic.gjf --debug
  19.   
  20.   # Mix explicit and auto-calculated targets
  21.   autogic cluster.xyz 2-4=1.5 6-7 9-1=2.1 --steps 10 --debug-xyz path.xyz
  22.   
  23.   # Auto-calculate all targets from vdW radii
  24.   autogic ts.gjf 4-58 59-20 --steps 10 --show-table
复制代码

用法:以上一节体系为例,需要扫描C4-O7'与C1-H9',则命令为:
  1. autogic eth.xyz 4-7 1-9 --steps 5
复制代码

自动生成了gic设置
  1. RH9C1(NSteps=5,StepSize=-0.14109)=R(9,1)
  2. RO7C4=R(7,4)
  3. F1(Frozen)=(RH9C1-1.07)/0.705448-(RO7C4-1.42)/0.576
复制代码

此处C-H和C-O是自动取的单键平衡键长,共价半径是Multiwfn取的那一套。如果需要指定平衡键长,可以这样:
  1. autogic eth.xyz 4-7=1.43 1-9=1.07 --steps 5
复制代码

输出为:
  1. RC4O7(NSteps=5,StepSize=-0.1132)=R(4,7)
  2. RC1H9=R(1,9)
  3. F1(Frozen)=(RC4O7-1.43)/0.566-(RC1H9-1.07)/0.705448
复制代码

整理一下就会发现该约束与先前手算的是等价的,只是写成了分数形式。

autogic (3.79 MB, 下载次数 Times of downloads: 2)

评分 Rate

参与人数
Participants 3
eV +18 收起 理由
Reason
不想飞的猫头鹰 + 5 好物!
hebrewsnabla + 5
sobereva + 8

查看全部评分 View all ratings

某不知名实验组从苞米地里长出来的计算选手

262

帖子

7

威望

2180

eV
积分
2582

Level 5 (御坂)

2#
发表于 Post on 2026-3-19 09:00:08 | 只看该作者 Only view this author
没看到你测试大体系,这种小体系这种方法好使,一旦体系大了牵涉到的原子多了,这种方法不好使

793

帖子

15

威望

3384

eV
积分
4477

Level 6 (一方通行)

鸩羽

3#
 楼主 Author| 发表于 Post on 2026-3-19 09:24:27 | 只看该作者 Only view this author
wxyhgk 发表于 2026-3-19 09:00
没看到你测试大体系,这种小体系这种方法好使,一旦体系大了牵涉到的原子多了,这种方法不好使

的确,大体系不容易收敛
但反应核心一般不会很大,可以先这样摆model
某不知名实验组从苞米地里长出来的计算选手

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-4-14 01:31 , Processed in 0.311672 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list