计算化学公社

标题: Gaussian中opt后的结构用于单点计算的疑问 [打印本页]

作者
Author:
jimulation    时间: 2020-11-9 18:24
标题: Gaussian中opt后的结构用于单点计算的疑问
本帖最后由 jimulation 于 2020-11-9 18:24 编辑

用Gaussian对一个分子在较低级别下进行几何优化,将最后一帧的收敛结构保存为新的gjf,并在高级别下做单点计算。对此有一个疑问:gjf格式只保留了优化完的核坐标,不涉及电子的状态,那么单点计算是基于极小点的核坐标,从头求解电子能量吗?求解电子能量的过程与求解电子结构有关系吗(还有个问题,势能面是核坐标的函数,那么同一个核坐标下,电子结构(分布)对电子能量有影响吗)?对基础概念还不太清晰,希望大家指点,或推荐相关帖子学习一下,谢谢

作者
Author:
zjxitcc    时间: 2020-11-9 18:37
你也可以保留较低级别下的chk文件,在高级别下做单点计算时,用guess=read关键词读取chk文件里的波函数(%chk=之前的chk文件),这样可以加速SCF收敛,节约时间。

不读取的话,相当于从默认的初猜开始迭代(即对应你说的“基于极小点的核坐标,从头求解电子能量”),一般也能算出一样的结果,时间可能略微长一些。求解电子结构就是求解波函数,有了波函数就可以计算能量。同一套核坐标下,不同的方法、基组等因素都会影响电子能量。
作者
Author:
喵星大佬    时间: 2020-11-9 19:02
zjxitcc 发表于 2020-11-9 18:37
你也可以保留较低级别下的chk文件,在高级别下做单点计算时,用guess=read关键词读取chk文件里的波函数(%c ...

用的方法完全不一样的话最好还是不要读取,整不好收敛到不稳定波函数上
作者
Author:
zjxitcc    时间: 2020-11-9 19:06
喵星大佬 发表于 2020-11-9 19:02
用的方法完全不一样的话最好还是不要读取,整不好收敛到不稳定波函数上

是的,方法差别很多的话,那是读取了也没啥用
作者
Author:
doublehan    时间: 2020-11-9 19:09
喵星大佬 发表于 2020-11-9 19:02
用的方法完全不一样的话最好还是不要读取,整不好收敛到不稳定波函数上

之前看过Sob老师的回复(http://bbs.keinsci.com/thread-19921-1-1.html),应该是可以读取,但需要加stable=opt使之收敛到稳定波函数上
作者
Author:
喵星大佬    时间: 2020-11-9 20:06
doublehan 发表于 2020-11-9 19:09
之前看过Sob老师的回复(http://bbs.keinsci.com/thread-19921-1-1.html),应该是可以读取,但需要加stab ...

如果收敛到不稳定波函数,再通过stable=opt检测波函数稳定性并重新优化也会额外花费很多时间,很多时候还不如直接从初猜开始。
作者
Author:
zjxitcc    时间: 2020-11-9 20:06
doublehan 发表于 2020-11-9 19:09
之前看过Sob老师的回复(http://bbs.keinsci.com/thread-19921-1-1.html),应该是可以读取,但需要加stab ...

不是不能读,是那种情况读了没啥用。
作者
Author:
doublehan    时间: 2020-11-9 22:07
喵星大佬 发表于 2020-11-9 20:06
如果收敛到不稳定波函数,再通过stable=opt检测波函数稳定性并重新优化也会额外花费很多时间,很多时候还 ...

多谢!新手刚上路还想请教下,如果是采用这种直接从初猜开始算单点能的方式,是不是就一定能得到稳定波函数,或者说就不用stable=opt检测波函数稳定性了呢?
作者
Author:
wzkchem5    时间: 2020-11-10 08:42
doublehan 发表于 2020-11-9 22:07
多谢!新手刚上路还想请教下,如果是采用这种直接从初猜开始算单点能的方式,是不是就一定能得到稳定波函 ...

不一定,波函数不稳定的概率仍然是存在的。
甚至也不能说,读波函数遇到不稳定性的概率一定比直接从初猜开始要大。当之前优化任务的基组和单点能的基组足够接近的时候,读波函数遇到不稳定性的概率其实是更小的,只有两个基组差别大到一定程度以后,才是读波函数遇到不稳定性的概率大。
而你之所以看到有些人甚至大多数人没加stable=opt,是因为他们算的是简单的有机分子,几乎肯定会收敛到稳定波函数上,所以就省略了稳定性测试,一般大家也不认为这是不严格的。但是对于电子结构比较复杂的体系,比如某些自由基、金属配合物等,就需要做stable=opt。但也不是所有的自由基和金属配合物都需要,只有那些电子结构复杂的需要,大体而言就是,只要你不能完全确定这个分子的电子定性上会怎么分布,就应该加stable=opt。
作者
Author:
jimulation    时间: 2020-11-10 09:40
zjxitcc 发表于 2020-11-9 18:37
你也可以保留较低级别下的chk文件,在高级别下做单点计算时,用guess=read关键词读取chk文件里的波函数(%c ...

感谢指点
作者
Author:
kaier    时间: 2024-12-1 10:47
zjxitcc 发表于 2020-11-9 18:37
你也可以保留较低级别下的chk文件,在高级别下做单点计算时,用guess=read关键词读取chk文件里的波函数(%c ...

如果要是chk=之前的文件已经写了,但是没有写guess=read,计算出来的结果对吗。现在不用oldchk=之前的计算文件了吗
作者
Author:
snljty2    时间: 2024-12-1 11:23
kaier 发表于 2024-12-1 10:47
如果要是chk=之前的文件已经写了,但是没有写guess=read,计算出来的结果对吗。现在不用oldchk=之前的计 ...

那就相当于没读之前的波函数,直接覆盖了之前的文件。就对单个任务来说,如果SCF收敛了,结果对于你指定的任务是“正确”的,但是按楼上所说,不管读不读之前的波函数,都无法保证一定收敛到稳定的波函数,更无法保证收敛到能量最低的稳定波函数,这是另一个层面的问题,关系到算出来的结果是不是你真正关心的态。如果不想覆盖,也可以用%oldchk=原来的chk,%chk=新的chk,加上Guess=Read关键词,这会在一开始把oldchk自动拷贝成新的chk,然后读里面的波函数做初猜,最后收敛的结果也会写进新的chk。
作者
Author:
kaier    时间: 2024-12-4 18:24
snljty2 发表于 2024-12-1 11:23
那就相当于没读之前的波函数,直接覆盖了之前的文件。就对单个任务来说,如果SCF收敛了,结果对于你指定 ...

就对单个任务来说,如果SCF收敛了,结果对于你指定的任务是“正确”的,gjf文件是几何优化前的,如果%chk=等于几何优化存的chk,那么计算单点的话是得到的是几何优化后的结构的单点吗?还是原始gif的单点呢?
作者
Author:
洛兰希尔    时间: 2024-12-4 19:27
本帖最后由 洛兰希尔 于 2024-12-4 19:31 编辑
kaier 发表于 2024-12-4 18:24
就对单个任务来说,如果SCF收敛了,结果对于你指定的任务是“正确”的,gjf文件是几何优化前的,如果%chk ...

guess=read关键词只是给你的SCF迭代提供一个不同于默认的初猜波函数而已,SCF最终得到的结果是当前计算的结构的收敛的波函数。对于单点来说就是你在gjf中写的结构(或者geom=check等指定的结构)
Gaussian构建初猜波函数的方法相比于DFT来说十分粗糙,所以会比你读取此前计算的结果得到的波函数迭代次数多很多(你提供的波函数和当前体系真正的波函数越接近越容易收敛)
提供的初猜波函数虽然有可能会影响最终结果(如楼上说的收敛到不稳定波函数),但这只是因为影响迭代过程而影响的结果,毕竟迭代求解并不精确
对于你说的情况,gjf的坐标是几何优化前的,那得到的波函数就是几何优化前坐标对应的波函数

作者
Author:
kaier    时间: 2024-12-4 20:42
本帖最后由 kaier 于 2024-12-4 21:26 编辑
洛兰希尔 发表于 2024-12-4 19:27
guess=read关键词只是给你的SCF迭代提供一个不同于默认的初猜波函数而已,SCF最终得到的结果是当前计算的 ...

看来第二次指定chk=之前结构优化的文件,直接是覆盖,而不会读取里面信息...
那么如果使用oldchk关键词,是否需要将优化后的结构另存一个gjf,然后在新的gjf上进行后续的计算,用之前的gjf,即使指定了guess=read,那么也还是读取未优化的坐标,写上geom=check可以读取之前oldchk的优化结构吧
作者
Author:
洛兰希尔    时间: 2024-12-4 22:15
本帖最后由 洛兰希尔 于 2024-12-4 22:18 编辑
kaier 发表于 2024-12-4 20:42
看来第二次指定chk=之前结构优化的文件,直接是覆盖,而不会读取里面信息...
那么如果使用oldchk关键词 ...

%chk=xxx.chk然后guess=read会覆盖,%oldchk=xxx.chk另起一行%chk=yyy.chk则会从旧的读取写入新的,这样更稳妥
读取结构用geom=check、geom=allcheck等关键词都可以,都是从oldchk读取然后写入新的。用的时候注意一下两种关键词的写法即可。比如:
  1. %cpu=0-31
  2. %mem=64GB
  3. %oldchk=old.chk
  4. %chk=new.chk
  5. #p B3LYP/6-31G** opt freq guess=read geom=allcheck



复制代码
就是从old.chk读取已经收敛的波函数和坐标、电荷、自旋多重度,然后opt freq任务的波函数会存到new.chk里面

作者
Author:
kaier    时间: 2024-12-5 09:56
洛兰希尔 发表于 2024-12-4 22:15
%chk=xxx.chk然后guess=read会覆盖,%oldchk=xxx.chk另起一行%chk=yyy.chk则会从旧的读取写入新的,这样 ...

非常感谢!这块透彻多了




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3