玖叶教程网

前端编程开发入门

使用external关键词将程序与高斯对接进行结构优化等计算

在所有的量化程序中,应该说高斯有着最强大的优化分子几何结构的功能,且可以对过渡态进行IRC分析,而其他许多量化程序只能进行能量、力或者力常数的计算,却无法进行结构优化或IRC分析,或者自身的算法不如高斯好。高斯提供了external关键词,可以通过调用脚本读入外部程序的能量、梯度或力常数等信息,使用高斯的算法进行结构优化等计算。本文就介绍一下external关键词的使用方法。

下面的输入文件是进行结构优化的高斯输入文件:

%nprocshared=1
%chk=H2O.chk
#p opt(nomicro) external='./opt.sh'

test

0 1
H    0.775865   0.000000   0.182746
O    0.000000   0.000000  -0.365491
H   -0.775865   0.000000   0.182746

这个文件中关键词部分写入opt(nomicro),注意一定要写入nomicro,否则将不会使用我们想要的优化算法。后面写上external关键词,后跟所用的脚本。这个脚本需要至少含有以下三个部分:

  • 将高斯产生的下一步结构读取出来,转化为所对接的程序的输入文件。
  • 运行对接程序,使用上一步读取的结构进行能量或梯度的计算。
  • 将上一步程序计算得到的能量或梯度等信息写入另一文件,传给高斯。

上述第一步和第三步,往往还需要我们再写两个脚本来达到相应的目的。

下面我们以优化结构为例,所用脚本名为opt.sh,根据程序具体的运行流程,来谈谈如何写上述提到的三个脚本。

  • 首先,在上述高斯的输入文件中,不需要写入具体所用的方法和基组,因为具体如何算能量和梯度,是由外部程序决定的。在分子说明部分,正常写入分子的电荷和多重度,并写入分子的初始坐标。由于在当前任务中,高斯只是作为一个optimizer,大部分的计算由外部程序完成,所以这个高斯作业设为单核串行即可。
  • 运行g16 H2O.gjf &,高斯程序开始运行。此时,在临时文件目录中会生成一个以EIn为后缀的临时文件,在这个文件中写入了以下内容:

第一行有4个数字,依次为体系的原子数、导数类型(其中,0表示只算能量,1表示需要一阶梯度,2表示需要二阶梯度)、电荷和多重度。第二行开始,每行有5个数字,分别为原子序数(如1表示H,8表示O)、x坐标、y坐标、z坐标和分子力学电荷。

  • 之后,高斯会调用opt.sh这个脚本,调用时会传入6个参数:

$ Gau_External layer InputFile OutputFile MsgFile FChkFile MatElFile

一般我们关心的是第2和3个参数,这两个参数分别是脚本中需要读入坐标的文件路径和需要写入能量和力的文件路径。因此,在opt.sh这个脚本中,第一行应该写入类似getstructure.x $2的一句命令。$2就是上述InputFile的路径,将这个路径传给getstructure.x脚本,让其打开这个文件并读取相关信息。此外,getstructure.x脚本还需要完成的任务是制作一个外部程序所需要的输入文件。

  • 产生输入文件后,就会调用外部程序,进行能量和力的计算。
  • 计算完成后就执行opt.sh的第三步,将外部程序算出的能量和力传给高斯。这一步的命令大致为write_deri.x $3,会将能量和力等信息写入临时文件目录中的EOu后缀文件,高斯再从这个文件中读取能量和力以产生下一步结构。写入EOu文件的数据必须用以下固定格式:

本例为极小点能量优化,只需要写入前两行即可。其中,偶极数据如果没有,可以写0。如果做过渡态优化或者频率计算,需要写入力常数,形式为下三角。如果没有第三部分和第四部分,需写入0。

  • 之后,高斯通过反复执行opt.sh脚本,直到作业结束。

注意事项

  • 在脚本中并不限于只写入上面提到的三行命令,还可以写入其他内容,比如,删除上一步计算中的某些文件;从EIn文件中读入原子数,电荷和多重度,作为参数传递给后面的命令。总之,需要根据对接的程序的实际情况,根据需要,写入其他内容。
  • 由于梯度和力实际为相反数关系,因此,往EOu文件中写入的梯度有时要注意改为相反数,如果有运行中发现结构越跑越散,力越来越大,很有可能是差了一个负号。
  • 本文只介绍了最简单的优化结构的功能,其他功能如找过渡态、IRC分析等,大家可以类比实现。该功能的具体应用如将xtb程序(http://sobereva.com/421)、DFTB程序、ORCA程序(http://sobereva.com/422)与高斯对接,可以丰富原程序的使用场景。此外,南京大学黎书华教授开发的用于大分子体系计算的LSQC软件(http://itcc.nju.edu.cn/lsqc/),也是自动使用该方法进行大体系的结构优化。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言