谈谈Gaussian中的对称性与nosymm关键词的使用

谈Gaussian中的对称性与nosymm关键词的使用

文/Sobereva(3)

First release: 2015-Jun-27   Last update: 2015-Sep-22


经常有人问Gaussian中的nosymm关键词怎么用、什么时候用,网上也有很多帖子、资料都涉及nosymm,但是很多都明显错误,误人子弟。还有很多人乱用nosymm,不仅没什么意义还白浪费了大量时间。故写此文澄清一下nosymm的用法,以正视听。


1 关于利用对称性

为了更好地理解nosymm,首先说说对称性问题。

没对称性的分子所属点群就是C1,有对称性的分子则属于比C1更高阶的点群。量化计算中电子积分的计算是很耗时的部分,对于有对称性的分子,要算的电子积分中会有很多是等价的,利用对称性的话就可以避免计算大量重复的积分,从而大大节约时间。一些计算在其它部分也能利用对称性显著节约时间,如积分变换、导数计算等,而且不光能节约时间,很多时候还能显著降低对内存/硬盘的占用。对称性越高的体系,利用对称性可以带来越多的加速,例如用XEON E5-2650v2 16核+G09 D.01在CCSD(T)/def2-TZVP级别下计算面对面构型的苯二聚体单点能,在实际的D6h点群下(这属于很高阶的点群)计算只用一个半小时,而不启用对称性的话则需要多达两天半才能算完。

启动对称性还有个好处就是Gaussian可以直接显示轨道和电子态的实际的不可约表示。如果不利用对称性,即当成C1对称性来算,不可约表示就会都显示为A,实际的不可约表示就只能自行基于轨道图形来判断了,这就麻烦多了。另外,正确判断出点群的时候,还可以确保不同不可约表示表示的分子轨道在SCF过程中不发生混合,这对于考察一些问题以及SCF收敛有时会有帮助。

由于利用对称性时有上述优点,所以Gaussian默认是启动对称性的。计算一开始时会自动根据一定算法和阈值判断输入文件里分子的点群。比如苯分子,如果输入文件里的结构完全或几乎满足D6h对称性,那么Gaussian就会把它判断为D6h对称性,并按照D6h的情况来做后续计算。如果输入文件里的结构偏离D6h略明显,但接近其它更低阶的点群,就会被判断为更低阶的点群,比如C2v,也可能完全判断不出对称性,即判断为C1。

输入文件里的坐标称为输入朝向(Input orientation)。Gaussian为了判断和利用对称性,会先把输入文件里的坐标调整到标准朝向(Standard orientation)下,然后再进行点群的判断及后续的各种计算。这个调整过程会把体系进行平移,使原子核电荷中心处于笛卡尔坐标原点,并且根据一定规则对体系进行旋转,具体规则这里不细谈,感兴趣的读者可以看手册里Standard Orientation Conventions这一节的介绍。例如,在计算苯分子的时候,如果你在gview里把分子摆成歪斜着并且中心偏离原点,若在计算过后用gview打开输出文件,就会看到分子已经处在了XY平面,并且苯分子中心被挪到了笛卡尔坐标原点,这就是苯分子在标准朝向下的坐标。值得一提的是,哪怕体系没有对称性,即C1点群,Gaussian也会照样把体系弄到标准朝向下导致体系被平移和旋转。

将体系弄到标准朝向会带来一些麻烦的问题。有些时候,我们必须要求体系的朝向是和输入文件里一致的。比如,我们要沿着某个键的键轴加用field关键词外电场,我们设好了外场矢量,但是如果体系朝向被Gaussian旋转到标准朝向了,那么外电场的方向就不合我们的意愿了,显然结果无意义。再比如,我们用Multiwfn作二聚体和两个单体之间的密度差图来考察单体形成复合物后电子是怎么转移的,这就要求复合物里面的坐标和单体中的坐标完全一致。如果在计算中允许Gaussian自动把体系平移旋转,那么最后得到的单体及复合物的.wfn或.fch文件中,单体的原子坐标和它在复合物里的坐标就不对应了,显然密度差图也就毫无意义了。Multiwfn里作CDA分析也同样要求整体和片段中的原子坐标必须对应。


2 nosymm的用处

理解了上面关于对称性的讨论,就很容易理解nosymm的带来的好处和坏处了。nosymm的含义是:让Gaussian在计算中完全不利用对称性。

nosymm的用处1:用了nosymm后Gaussian就不会再试图去判断和利用对称性,因此也就不会把体系搞到标准朝向下,这就确保了实际计算过程中的坐标和输入文件里的坐标一致,从而可以避免前面说的诸如外加电场、作密度差图、CDA分析时遇到的问题,所以做这些任务的时候总要加上nosymm。

nosymm的用处2:做几何优化的时候,Gaussian会把每一步的坐标都调整到标准朝向,这往往导致坐标不连续,在观看优化轨迹过程中体系朝向会发生剧烈跳变,从而难以考察优化过程。解决方法有二,其一就是用nosymm,这样优化的每一步的结构都不会被弄到标准朝向下,只会输出Input orientation坐标,gview也只会读这些坐标,优化过程的轨迹看起来就连续了。其二就是不让gview去读取每一步的standard orientation坐标(默认情况)而改为读取input orientation坐标,方法见此文《观看Gaussian优化轨迹时避免结构跳变的方法》(http://sobereva.com/289)。

nosymm只有以上两个用处,如果你的情况不属于这两个,就别用nosymm!!!对于有对称性的体系,用nosymm带来的坏处是很明显的,首先是不能利用对称性来加速计算,其次是没法显示不可约表示。有些人不懂nosymm有什么用就总是盲目地写上nosymm,往往没带来任何益处,当体系有对称性时还因此白浪费了大量计算时间。我总是向初学者强调:如果不清楚某些关键词是干什么的,就一律不要写!!!


3 其它问题

有人问symm=loose、veryloose是干嘛的。前面提到了,Gaussian会通过一定算法和阈值来根据输入文件里的坐标判断体系的点群。默认的判断标准比较严,即坐标稍微有些偏离点群对称性,就认不出来相应的点群。这有时候会带来些麻烦。比如说,在gview里,选择自带的库里的C60,将它对称化后会看到被gview识别成了Ih点群,但是保存成Gaussian输入文件,然后在Gaussian计算时就会发现被Gaussian判断成了C1点群。这是因为输入文件里的笛卡尔坐标数值精度有限,我们需要用稍微宽松一点的判断标准,即symm=loose关键词,才能让Gaussian判断出它的实际点群Ih,此时计算速度和C1时完全不在一个数量级。symm=veryloose代表使用更宽松的判断标准。

关于几何优化过程中对称性改变的问题这里也说一下。前一阵子,在思想家公社群里看到有个人发了个幻灯片的截图,这是网上流传的一个有点名气的中文计算化学的幻灯片里面的一页,其中称nosymm可以避免优化过程中体系的对称性被初始对称性约束住,这其实是胡说,误人子弟。实际情况是:
(1)在默认允许利用对称性时,即便优化一开始判断成高阶对称性,优化过程中也可能对称性发生降低甚至变为完全没有对称性。原因要么是因为当前计算级别下低对称性的能量更低,或者由于一些数值问题破坏了对称性(比如用弥散函数时容易出现此问题。DFT格点积分精度不够高时可能也会出现此问题)。
(2)在使用nosymm禁止使用对称性时,一开始的高对称性结构也依然可能继续保持下去。例如,计算D3h对称性的NH3(原子都处在同一平面,呈三角形),即便写了nosymm,最后优化出来还是D3h结构,这是因为体系中原子都处在一个平面上,优化过程中受到向平面外的力的分量为0,因此会平面结构会一直保持。
所以,对称性是否会在优化中改变,和是否使用nosymm没必然的关系。

 

PS:有人看了这个帖子后问“对称性限制”,问是不是加了nosymm就没对称性限制了,看来还是没完全领会上面那段话。这里再很明确地说说这点:
1 如果你想让优化过程中初始判断出的点群保持住,唯一绝对稳妥的办法就是用内坐标来书写,对内坐标的定义保持和实际点群一致,且优化的时候用opt=z-matrix让Gaussian在内坐标下优化。比如说水分子,两个O-H键的键长项用相同的变量来表示,这样优化过程中两个O-H键的键长必定总是严格保持一致。虽然Gaussian里有IOp(2/16=2)可以让优化过程中对称性发生改变时沿用旧对称性,但不怎么奏效。当然啦,把内坐标以满足对称性方式书写很麻烦,往往还得涉及利用虚原子。一般考虑方式是:先让初始结构在gview里对称化,然后用Gaussian优化,确保任务最开始时判断对了实际点群(如果没判断对,用symm=loose)。如果优化过程中点群发生了不希望的降低,那么如果有弥散函数,先把弥散函数去掉,对于DFT加上int=ultrafine,如果对称性还是出现下降,换成其它泛函,并且尝试MP2,如果对称性也都下降了,那么9成可能性就是高对称性结构不是最稳定的,最后收敛到的低对称性的结构才是真正极小点,因此若非要保持高对称性则无物理意义。如果最后虽然判断出的对称性下降了,但肉眼观看结构时发现和高对称性的结构几乎看不出什么区别,那么你就当这个结构就是高对称性的结构即可,对称性下降可能只是一些很trivial的因素引起结构的细微变化,无需考虑。
2 如果你刻意允许优化过程中对称性发生变化从而避免被限制在初始的对称性(因为初始的对称性可能不一定是实际极小点结构所具有的),最可靠的办法就是人为破坏初始结构中的对称性,比如一个平面体系,你怀疑实际结构不是平面的,那你就随便稍微扭曲其中的一个二面角,这样初始结构都没有对称性了,肯定也不会像上文的D3h构型的NH3的例子那样一直保持平面结构。
So,nosymm对于是否去掉什么所谓的“对称性限制”根本没有梨琴用,不要听信他人的一些谣言,一定要自己搞懂原理,别人的说法对不对自然就能判断了。像前面提到D3h的NH3结构,加不加nosymm最后优化完了还是被限制在了初始的D3h结构上。


PS2:nosymm还有个情况应该加,也就是做对称破缺计算的时候(详见《谈谈片段组合波函数与自旋极化单重态》,http://sobereva.com/82),如果体系本身是有对称性的,那么加上nosymm往往才能得到对称破缺态。比如将乙烯扭转到90度让pi键被破坏,此时是双自由基状态,如果直接用UB3LYP/6-31G* guess=mix可能因为波函数对称性的约束还是得到闭壳层波函数,而加了nosymm就可以得到双自由基状态了。

已有 3 条评论

  1. 诸葛壹次心

    赞~sob果然事无巨细全部都精通呢~

  2. vegetable

    谢谢sob,以前我还误以为nosym是为了解除对称性限制好让分子充分优化达到结构最小点,所以没搞懂就加上了,现在知道其作用了~

  3. zhlu929

    赞,谢谢sobereva大神

添加新评论