在所有的量化程序中,应该说高斯有着最强大的优化分子几何结构的功能,且可以对过渡态进行IRC分析,而其他许多量化程序只能进行能量、力或者力常数的计算,却无法进行结构优化或IRC分析,或者自身的算法不如高斯好。高斯提供了external关键词,可以通过调用脚本读入外部程序的能量、梯度或力常数等信息,使用高斯的算法进行结构优化等计算。本文就介绍一下external关键词的使用方法。 下面的输入文件是进行结构优化的高斯输入文件: 这个文件中关键词部分写入opt(nomicro),注意一定要写入nomicro,否则将不会使用我们想要的优化算法。后面写上external关键词,后跟所用的脚本。这个脚本需要至少含有以下三个部分: 上述第一步和第三步,往往还需要我们再写两个脚本来达到相应的目的。 下面我们以优化结构为例,所用脚本名为opt.sh,根据程序具体的运行流程,来谈谈如何写上述提到的三个脚本。 第一行有4个数字,依次为体系的原子数、导数类型(其中,0表示只算能量,1表示需要一阶梯度,2表示需要二阶梯度)、电荷和多重度。第二行开始,每行有5个数字,分别为原子序数(如1表示H,8表示O)、x坐标、y坐标、z坐标和分子力学电荷。 $ Gau_External layer InputFile OutputFile MsgFile FChkFile MatElFile 一般我们关心的是第2和3个参数,这两个参数分别是脚本中需要读入坐标的文件路径和需要写入能量和力的文件路径。因此,在opt.sh这个脚本中,第一行应该写入类似getstructure.x $2的一句命令。$2就是上述InputFile的路径,将这个路径传给getstructure.x脚本,让其打开这个文件并读取相关信息。此外,getstructure.x脚本还需要完成的任务是制作一个外部程序所需要的输入文件。 本例为极小点能量优化,只需要写入前两行即可。其中,偶极数据如果没有,可以写0。如果做过渡态优化或者频率计算,需要写入力常数,形式为下三角。如果没有第三部分和第四部分,需写入0。 注意事项%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