如何阅读高斯的计算输出文件

如何阅读高斯的计算输出文件,第1张

高斯输出文件的关键是看 Link,每个 Link 对应不同的部分,以单点计算为例:单点计算的流程 (见附件) 输入行在#后加入 P,不然的话就只会显示 Link 1 和 0,输出文件一般很长。对于单点计算,只 有 300 多行。

第一部分: 基本运行信息 输入输出文件名,初始命令 进入 Link 1,显示进程号 首先是版权说明, 然后是作者,利用 guassian 计算所发的文章,参考文献上必须列的 进入 Link 101 读入输入文件, 将控制命令转化为程序能够看得懂的 IOP 占位段的选项和应用设置 Leave Link 101 进入 Link 202: 判断体系对称性,并决定实际计算中对称性应该如何利用

判断体系点群 例如 Stoichiometry CH2O Framework group C2V[C2(CO),SGV(H2)] Deg. of freedom 3 Full point group C2V NOp 4 Largest Abelian subgroup C2V NOp 4 Largest concise Abelian subgroup C2 NOp 2 再将输入的分子坐标转换为标准内坐标, 就是 Standard orientation: 这是程序默认, 充分利用分子的对称性来达到方便计算的目的。 就是将体系的质量中心放在 坐标轴的主轴或者原点上。可以用 nosym 来禁止这个 *** 作 Leave Link 202 进入 Link 301 产生基组信息

基组函数对称性 计算出核排斥能 Leave Link 301 进入 Link 302,303 ,这部分是计算积分的具体算法,一般不会列出详细过程,一句话带过 leave Link302,303 进入 Link 401 在实际计算之前,必须有初始猜测,这部分的功能就是产生初始猜测,可以从 ch k 文件读入,也可以程序自动产生。这部分可以用 guess 关键字来指定。

我这个体系,程序默认是: Projected INDO Guess(请仔细看手册,不同的体系 Guess 是不一样的) Leave Link 401 进入 Link 502 (主角登场!)自恰迭代求解 SCF 方程 设定收敛标准: 除了对包含比 Ar 重的原子的分子全电子(非 ECP)计算外,积分只计算到 10-6 的精度。λ SCF 计算的能量和电子密度都收敛到 10-4,或只有能量收敛到 10-5 为止,无论哪一个先达 到。λ 给出每一步迭代的信息(?)(这只有在程序输入中加入#p 才会显示) 如果成功计算完毕 SCF Done,接下来就是打印计算出来的能量,自旋,维力值和收敛判据了. Leave Link502(一般计算经常会在这一步挂掉,哈哈) 如果你的单点计算只写了这些,输出结束,如果你加入了 population 的内容,那么,基于 scf 计算 的结果,布局分析开始 进入 Link601 Link 601 利用优化后的波函数, 进行 Mulliken population,得到 轨道对称性 电子态 各个轨道的本征值 然后是一些电荷,自旋密度的分析 leav Link601

最后是整个计算结果的一个总结,各小节之间用\分开 单点计算看明白之后看几何优化的就比较清楚了 优化计算的第一步必须和以后各步骤分开处理, 因为有几个 *** 作只需做一次。 例如读入最初 的 Z-矩阵和产生初始分子轨道。 必需有一个对分子几何构型做优化计算的循环,用优化程序(本例中使用 Berny 优化模块 L 103)决定是否需要做另一个优化,以及是否获得了最优的分子结构。λ 如果分子结构收敛,则程序计算能量梯度,确认已得到最优的分子结构后,退出。λ 只在第一个和最后一个分子结构进行布居数分析并打印轨道, 不要在不感兴趣的中间结构进 行这些 *** 作。λ 第一个点的处理分成两部分,计算路径各由一系列的积分、猜测、SCF、以及积分求导的计 算组成。第一部分包括模块 L101(读入分子初始结构)和模块 L103(进行本身的初始化), 并有选项指示模块 L401 产生最初的猜测波函数。第二部分计算在优化过程中使用由模块 L 103 产生的分子结构,并且有选项指示模块 L401 取回前一结构的波函数,做为下一步的最 初猜测波函数。 第八行中指示向前跳行, 表示如果模块 L103 正常结束 (没有任何特殊的 *** 作) 下一行 , (模 块 L9999)则跳过不执行。通常在第二次激活模块 L103 时,会检查最初的能量梯度,然后 选出新的结构。下一个要执行的是模块 L202,用来处理 Z-矩阵,接着是第二部分其它的能 量和梯度计算,它们构成主要的优化计算循环部分。如果模块 L103 第二次激活时发现几何 结构已经收敛,计算将会终止并产生禁止向前跳行的信号,然后执行下一行的模块 L9999, 完成整个计算。 第 10-15 行构成主要的优化计算循环。该循环计算积分、波函、以及优化计算中第二个点与 后面各点的梯度。它以模块 L103 结束。如果几何结构还未收敛,模块 L103 选择新的结构 并正常结束计算,这会造成执行次序由第 15 行向后跳到第 10 行,进行新的计算循环。如果 模块 L103 发现几何结构已经收敛,将退出并禁止跳行,执行结束行第 16-18 行。 结束前使用模块 L601 在最后的分子结构产生多极积分,将打印出多极矩、分子轨道和布居 数分析,如果需要的话。最后模块 L9999 产生存档项目并结束计算任务。

首先,我们必须理解收敛是什么意思.在自洽场(SCF)计算中,自洽循环中,首先产生一个轨道占据的初始猜测,

1)然后根据此轨道占据构造电荷密度和哈密顿量.

2)对角化哈密顿量,得到新的轨道能级和占据.

3)产生新的电荷分布和哈密顿量,重复步骤2)

经过一定次数的循环后,某次循环前和循环后的电荷密度差别小于一定的标准,我们称之为收敛.

如果以上过程不能收敛,则gaussian给出convergence failure的警告.

如果SCF计算收敛失败,你首先会采取哪些技巧呢?这里是我们强烈推荐的首选方法.

1 考虑使用更小的基组

由于一定的基组对应于一定精度和速度,所以更换基组并不在所有的情况下都适用.方法是首先用小基组进行计算,由前一个波函得到用于大基组计算的初始猜测(Guess=Read自动进行).

2 增加最大循环步数

Gaussian默认的最大循环步数为64 (SCF=DM或SCF=QC方法则为512),如果循环次数超过这个数目则会汇报convergence failure.在一定的情况下,不收敛的原因仅仅是因为最大循环步数不够.可以通过设置maxcyc来增大最大循环步数.更多的SCF迭代(SCF(MaxCycle=N),其中N是迭代数).这很少有帮助,但值得一试.

3 放宽收敛标准

如果接近SCF但未达到,收敛标准就会放松或者忽略收敛标准.这通常用于不是在初始猜测而是在平衡结构收敛的几何优化.SCF=Sleazy放松收敛标准,Conver选项给出更多的控制.

4 尝试改变初始构型

首先略微减小键长,接下来略微增加键长,接下来再对结构作一点改变.

5 尝试能级移动Level shifting (SCF=Vshift)

如果不收敛的原因是波函数的震荡行为,通常是因为在相近的能量上的泰的混合.对于这种情况,我们可以采用level shifting的方法.Level shifting的含义是人工的升高非占据轨道的能级,以防止和最高占据轨道之间的混合,以达到收敛的目的.在Gaussian中此方法的关键词为SCF=Vshift

6 使用强制的收敛方法SCF=QC

SCF=QC通常最佳,但在极少数情况下SCF=DM更快.此关键字将大大增加计算时间,但是收敛的机会更大.不要忘记给计算额外增加一千个左右的迭代.应当测试这个方法获得的波函,保证它最小,并且正好不是稳定点(使用Stable关键字).

7 对开壳层体系,尝试收敛到同一分子的闭壳层离子,接下来用作开壳层计算的初始猜测.添加电子可以给出更合理的虚轨道,但是作为普遍的经验规则,阳离子比阴离子更容易收敛.选项Guess=Read定义初始猜测从Gaussian计算生成的checkpoint文件中读取.

8 一些程序通过减小积分精度加速SCF.对于使用弥散函数,长程作用或者低能量激发态的体系,必须使用高积分精度:SCF=NoVarAcc.

9 改变模型或方法

可以考虑改变模型方法.比较常见的方法有HF,GVB,MCSCF,CASSCF,MPn等.改变模型方法通常也会收敛性质.通常,精度更高的方法更难收敛.精度比较低的方法产生的计算结果可以作为高精度计算的初始猜测.考虑使用不同理论级别的计算.这并不总是实用的,但除此之外,增加迭代数量总是使得计算时间和使用更高理论级别差不多.

10 关闭DIIS外推(SCF=NoDIIS).同时进行更多的迭代(SCF=(MaxCycle=N)).

11 试着改用DIIS之外其它方法(SCF=SD或SCF=SSD).

Gaussian不收敛的可能原因及对策:

1 由于体系有很多能量相近的能级,导致计算不收敛.

如果计算中采用的是Hartree-Fock方法或者其他的混合形式的交换相关势(如B3LYP),则可以尝试一下的方法进行改进.

scf=(noincfock,conver=11,maxcyc=1025) iop(5/22=20)

用以上的命令行将强制Gaussian采用EDIIS的算法.此算法计算量更大,但是更加稳定.在命令行里也增加了最大循环数,以增加收敛的到基态的可能性.

2. 检查是否有初始文件错误

常见初级错误:

a. 自旋多重度错误

b. 变量赋值为整数

c. 变量没有赋值或多重赋值

d. 键角小于等于0度,大于等于180度

e. 分子描述后面没有空行

f. 二面角判断错误,造成两个原子距离过近

g. 分子描述一行内两次参考同一原子,或参考原子共线

3. SCF(自洽场)不收敛

则一般是L502错误,省却情况做64个cycle迭代(G03缺省128 cycles)

a. 修改坐标,使之合理

b. 改变初始猜 Guess=Huckel 或其他的,看Guess关键词.

c. 增加叠代次数 SCFCYC=N (对小分子作计算时最好不要增加,很可能结构不合理)

d. iop(5/13=1)这样忽略不收敛,继续往下做.

4. 分子对称性改变

a. 修改坐标,强制高对称性或放松对称性

b. 给出精确的、对称性确定的角度和二面角. 如CH4的角度给到109.47122

c. 放松对称性判据 Symm=loose

d. 不做对称性检查 iop(2/16=1) (最好加这个选项)

iop(2/16=2) 则保持新的对称性来计算

5. Opt时收敛的问题

a. 修改坐标,使之合理

b. 增加叠代次数optcyc=N

6. 优化过渡态,若势能面太平缓,则不好找到.

iop(1/8=10) 默认30(下一个结构和该结构的差别0.3Å),可改成10.如果每一步都要用到小的步长,应该加opt(notrustupdate)

7. 在CI(组态)方法中

如QCISD(T),CCSD(T),CID方法中,省却最大循环50,若出错(L913错误)

解决方法:#P QCISD(maxcyc=N) 注:N≤512

8. 优化过渡态

opt=TS (给出过渡态)

opt=qst2 (给出反应物和产物)

opt=qst3 (给出反应物和产物和过渡态)

a. 用G03时的出错 opt=ts 必须加FC (force constant)

写法:opt=(TS, calcFc)

or opt=(TS,calchffc)计算HF力常数,对QCISD,CCSD等方法用;

or opt=(TS,modRedundant) (最好写这个)

b. 如果计算采用QCISD计算(不好计算FC)

则写为QCISD opt=(TS, calcHFFC) (用HF计算FC)

9. 无法写大的Scratch文件RWF

a. 劈裂RWF文件 %rwf=loc1,size1,loc2,size2,……..,locN,-1

b. 改变计算方法 MP2=Direct可以少占硬盘空间

c. 限制最大硬盘 maxdisk=N GB,****MB,有些系统写2GB会出错,可以写2000MB

10. FOPT出错 原因是变量数与分子自由度数不相等. 可用POPT 或直接用OPT

11. 优化过渡态只能做一个STEP 原因是负本征数目不对 添加 iop(1/11)=1或者noeigentest (eigentest 是表示优化过渡态检测分子振动的本征值,过渡态只有一个负值,但优化的时候往往出现两个或者更多的情况,默认的是如果出现多于一个的情况就停止优化计算,这往往时不必要的,noeigentest表示优化时不坐此检测,实际上优化过渡态的时候出现两个三个很正常的,只是第一个一般负的很大,接着的比较小,不会影响过渡态的搜寻,当然有时候需要自己判断是不是接近真实的过渡态.其实经验上也是过渡态的本征虚频越小,相对越难找.)

对于 (L502, L508, L9999)出错的对策

对于一个优化计算,它的过程是先做一个SCF计算,得到这个构型下的能量,然后优化构型,再做SCF,然后再优化构型.因此,会有两种不收敛的情况:一是在某一步的SCF不收敛(L502错误),或者构型优化没有找到最后结果(L9999错误).

预备知识:计算时保存chk文件,可以在后续计算中使用guess=read读初始猜测.

对于SCF不收敛,通常有以下的解决方法:

1. 使用小基组,或低级算法计算,得到scf收敛的波函数,用guess=read读初始波函数.

2. 使用scf=qc,这个计算会慢,而且需要用stable关键字来测试结果是否波函数稳定.如果这个还不收敛,会提示L508错误.

3. 改变键长,一般是缩小一点,有时会有用.

4. 计算相同体系的其他电子态,比如相应的阴离子、阳离子体系或单重态体系,得到的收敛波函数作为初始猜测进行计算.

对于优化不收敛,即L9999错误,实际上是在规定的步数内没有完成优化,即还没有找到极小值点.(或者对于过渡态优化,还没有找到过渡态)

这有几种可能性:

1. 看一下能量的收敛的情况,可能正在单调减小,眼看有收敛的趋势,这样的情况下,只要加大循环的步数(opt(maxcycle=200)),可能就可以解决问题了.

2. 加大循环步数还不能解决的(循环步数有人说超过200再不收敛,再加也不会有用了,这虽然不一定绝对正确,但200步应该也差不多了),有两种可能.一是查看能量,发现能量在振荡了,且变化已经很小了,这时可能重新算一下,或者构型稍微变一下,继续优化,就可以得到收敛的结果(当然也有麻烦的,看运气和经验了);二是构型变化太大,和你预计的差别过大,这很可能是你的初始构型太差了,优化不知道到哪里去了,这时最好检查一下初始构型,再从头优化.

3. 对于L9999快达到收敛时,考虑减小优化步长有时对于能量振荡的情况也是有用的,opt(maxstep=1).(flyingheart )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9019669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存