视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
高斯入门小tips
2025-09-24 07:12:56 责编:小OO
文档
高斯入门小tips (厦门大学理论化学研究中心 LUNTAN)

发布: 2006-8-21 10:08 | 作者: niuniu123 | 来源: 化学吧 - 化学论坛 - 学术论坛

Personally I feel this material is a very good ABC for the expt. chemists. 

This material is from 厦门大学理论化学研究中心 

http://ctc.xmu.edu.cn/cgi-bin/to ... pic=5247&show=0

[这个贴子最后由helpme在 2006/08/07 04:11pm 第 2 次编辑]

有些小问题,论坛上不停有人问。我想把一些入门的小东西总结到一个帖子里面,便于大家查找。错误之处还请指教。一些讨论只适用于入门,深入的讨论还需要看具体文献。

原来想理论和应用分开的,现在看来写不了太多,还是放在一起了。

另外建议多查询。本版许多帖子对初学都是很有用的。

谢谢各位支持,但为了便于阅读,所以删除了一些说“支持”的帖子,还请见谅。

1) 关于自旋多重度

定义: 多重度=2S+1, S=n*1/2,n为单电子数。所以,关键是单电子的数目是多少。

当有偶数个电子时,例如 O2,共有16个电子,那么单电子数目可能是0,即8个alpha和8个beta电子配对,对应单重态,但是也可能是有9个α电子和7个β电子,那么能成对的是7对,还剩2个α没有配对,于是n=2,对应的是多重度3。同理还可以有多重度5,7,9, ...一般而言,是多重度低的能量低,最稳定,所以,一般来说,偶数电子的体系多重度就是1。但是也有例外,例如O2就是一个大家都知道的例子,它的基态是三重态,其单重态反而是激发态。

所以,总结一下,就是

电子数目是偶数,未成对电子数目n=0,2,4,6,...自旋多重度是1,3,5,7,...

电子数目是奇数,未成对电子数目n=1,3,5,7,...自旋多重度是2,4,6,8,...

多数情况是多重度低的能量低,有时(特别是有“磁”性的时候,例如顺磁的O2,以及Fe啊什么的),可能会高多重度的能量低。

2) 关于赝势:

简单来说,赝势就是不计算内层电子,而是把内层电子的贡献用一个势来描述,放在哈密顿里面。适用于重元素。

使用赝势的3个原因:

1。没有相应的全电子基组。

2。减少计算量。

3。赝势可以包含重金属相对论效应的修正。

在高斯中,lanl2dz基组,在手册中可以查到其定义为:

LanL2DZ: D95V on first row , Los Alamos ECP plus DZ on Na-Bi,也就是说,对于C,O等元素来说(量化中,H大概算第0周期,C,O才是第一周期),Lanl2dz实际上还是全电子基组,而对于Na以后才是对内层电子用Los Alamos ECP赝势,外层电子用DZ 基组。

使用赝势的输入文件:

1.所有原子使用lanl2dz

--------------------------

#HF/lanl2dz opt

lanl2dz for all atoms

0  2

O  0.0 0.0 0.0

C  0.0 0.0 1.2

Cu 0.0 0.0 3.2

--------------------------

2.所有原子使用lanl2dz的另一种输入方法。

--------------------------

#HF/genecp opt

lanl2dz for all atoms

0  2

O  0.0 0.0 0.0

C  0.0 0.0 1.2

Cu 0.0 0.0 3.2

C O 0

lanl2dz

****

Cu 0

lanl2dz    //定义价电子的基组, C O 0 是碳,氧,零,其中零用作终止符号。

****

Cu 0

lanl2dz   //定义内层电子的赝势

--------------------------

3.混和基组,即有的使用全电子,有的使用Lanl2dz。格式同2。

--------------------------

#HF/genecp opt

lanl2dz for Cu, 6-31G(d) for C and O

0  2

O  0.0 0.0 0.0

C  0.0 0.0 1.2

Cu 0.0 0.0 3.2

C O 0

6-31G(d)   //另一种全电子基组

****

Cu 0

lanl2dz    //定义价电子的基组

****

Cu 0

lanl2dz   //定义内层电子的赝势

--------------------------

3) 开壳层和闭壳层

闭壳层计算就是对于多重度是1的体系,此时α和β的电子数目相同,可以把α和β配对,成对的α和β使用同一个轨道,一个轨道上填充2个电子。

开壳层计算就是对α和β电子分别计算,一个轨道上只填充1个电子,一般来说,多重度是1时,开壳层计算和闭壳层计算会给出相同的结果。

开壳层计算是对多重度大于1的体系,此时α和β的电子数目不同,设有m个α和n个β电子,m>n,那么让前n个轨道上每个填充一个α和一个β,剩下的m-n个α电子再填充m-n个轨道。即前n个轨道是闭的(每个轨道2个电子),后m-n个轨道是开的(每个轨道1个电子)

在高斯中,以HF为例,闭、开、开壳层计算分别是RHF,UHF,ROHF。如果只写HF,则按下面的方式取默认方法:

对多重度是1的体系,默认为RHF,对多重度大于1的体系,默认是UHF。

总结如下图。其中M是多重度。 (see the fig. at the bottom)

4) 关于收敛问题 (L502, L508, L9999)

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

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

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

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

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

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

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

5. 待补充.

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

这有几种可能性:

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

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

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

一个建议是,对于大体系,难收敛体系,先用小基组,低精度算法优化一下,以得到较好的初始构型,再用高精度的计算接着算。如果前面的方法保留了chk文件,重新计算时需要使用 geom=allcheck 读入构型(就不必麻烦地写构型了), guess=read(读入初始波函数,可以加快第一步SCF收敛)。

5) 关于 window下编写输入文件,在linux下运行的问题

(原贴 http://210.34.15.126/cgi-bin/topic.cgi?forum=3&topic=381)

如果不注意,常常会出错。这是因为wendow和linux的字符格式不一样造成的。

刚刚使用linux的人常会犯这个错误,(我也是)

这里说一下两个最简单的解决办法:

1。windows下用ultraedit编写文件。写好了用鼠标选中,copy,粘贴到linux下的文件中。

就是不要用ftp传输文件过去。

2。最好的办法:直接在linux下编写文件。

(flyingheart )

有些全角符号不心贴到linux下也会出错,我当初输入文件中有一个全角的符号导致文件不能正常运行,看了半天才发现问题所在。还要注意一些文件名不能使用特殊符号,linux下不支持。

( vliant )

我觉得ultraedit中文件选项中的转化栏挺好用的,只要把dos转化为unix格式直接传入即可,我一直如此操作,习惯的很。

( scopio )

1.传到linux/unix后可以执行dos2unix file转换, 对应的命令还有unix2dos

如果没有可以到网上搜dos2unix的源码下来编

2. 另外还有一种方法,我看有人说用vi打开,然后:%s /^M//g 可以搞定,可惜我没有试成功

我用这样的办法试了一下,好象可行

cat -v file > inp vi inp

然后在vi中可以看到^M,在命令模式下,:%s /\\^M//g 搞定, 这里^M的输入方法是ctrl+v,然后按M或者Enter

(kitor)

在windows上编辑完,传到linux后,cat windowsfile|col -b>linuxfile 就ok了。下载本文

显示全文
专题