前日发表了关于高斯计算精度参数的一些自己的测试和理解,意外受到了不少的关注,甚至知名博主sob也写了一个comment提出了一些相反意见[1],因此今天在这里做一些澄清。
首先,我必须要向大家道歉,在测试int=ultrafine关键词的过程中我犯了一个愚蠢的错误,把G09+ultrafine和G16的结果弄反了,也就是说int=ultrafine在测试体系中并没有体现出对G16的任何影响。
C5H10 (TS) | 虚频/cm-1 |
---|---|
G09+ultrafine | -16.46 |
G16 | -15.81 |
之所以引起这个问题,是因为笔者之前阅读高斯官网时在integral[2]和CPHF[3]的页面都发现了:When a specific grid is specified to the Int=Grid=grid-name option, then that grid is also used for the CPHF.(注:CPHF是freq任务中用到的算法)
也就是说用Int=grid=grid-name会自动传递到cphf=grid=grid-name,但事实上在G16中并非如此。Sob博主指出:cphf的格点需要用cphf=grid=fineness来指定。笔者受官方手册误导,测试时先入为主又犯了错,导致了错误的结论,我感到非常抱歉。
不过既然sob博主指出了cphf的格点需要用cphf=grid=fineness来指定,这里不妨重新测试一下不同格点对freq的影响。这里以sob博主优化得到的过渡态结构为基础,固定结构做单点频率计算,测试结果如下:
C5H10 (TS) | Gibbs自由能/a.u. | 最小频率/cm-1 |
---|---|---|
G09默认 | -196.408228 | 36.75 |
G16默认 | -196.406373 | -19.47 |
G16+cphf=grid=fine | -196.406390 | -21.37 |
G16+cphf=grid=ultrafine | -196.406389 | -21.66 |
因此cphf的积分格点几乎不影响Gibbs自由能,对频率的数值有微小的影响。然而积分格点的增加确实会显著增加freq的计算量,所以除非特别在意频率数值,否则无需添加cphf=grid=ultrafine。另一方面,可以看到G16下cphf=grid=fine得到的虚频已经与cphf=grid=ultrafine误差小于1 cm-1,十分接近;即使用默认的SG1格点也还行。而G09的频率默认格点则会带来较大的误差,而且是定性的错误,自由能也因此有了可观的差别。
至于opt=tight的问题,我原义是对柔性较大的分子建议采用opt=tight增加结构的精度,没有让大家把opt=tight变成默认选项,也说了想节省机时可以酌情添加。原文中给出的对称分子的例子也只是一个引子,并不是一个最恰当的例子。事实上,原文想强调的核心思想是“在计算遇到问题的时候切勿盲目自信G16默认算的足够准了”,而“对于不了解计算过程的细节、不会根据报错进行debug的大部分用户而言”较高的计算精度“可以在一定程度上减少意料之外的问题出现的可能性”。这主要是考虑到有经验的计算者会根据输出文件和化学常识判断一个结构是否正确,但部分人习惯于套用输入文件模板而不会寻找有效报错信息和错误原因,最后盲目使用得到的结果。当然,笔者知道没有人想增加不必要的计算量,正因为如此才需要有人提醒“费时但不容易出问题”和“基本够用但有出错的可能性”之间存在的平衡,而笔者周围又有不止一人遇到过opt与opt=tight结果大相径庭的例子,因此觉得有必要提醒一下潜在的问题。
References
[1] http://bbs.keinsci.com/thread-27459-1-1.html
[2] https://gaussian.com/integral
[3] https://gaussian.com/cphf