计算化学公社
标题:
梯度的基组外推以及在结构优化中的实现
[打印本页]
作者Author:
ionexchangeC
时间:
2022-4-30 16:16
标题:
梯度的基组外推以及在结构优化中的实现
这篇文章主要是起一个抛砖引玉的作用,讨论比较浅显。本文中仅涉及HF/DFT的外推,后HF相关能的外推原理相似。
一、梯度外推公式推导
在社长的博文
http://sobereva.com/172
中,提到HF/DFT能量的外推公式如下:
E_SCF(L)=E_SCF(∞)+A*exp(-α*√L)
上式中一共有三个未知数:E_SCF(∞)、A和α,从原理上来讲它们都应当是分子坐标xyz的函数,但是其中α随分子坐标的变化幅度明显比另外两个小,所以不妨视它不随分子坐标变化而变化,即设对于分子中的每个原子来说都是dα/dx=dα/dy=dα/dz=0。这样不仅可以简化梯度的外推时的公式推导,而且还可以直接使用能量外推时拟合好的α值,这样就可以两点外推梯度了。
按博文中的做法消掉A,得:
E_SCF(∞) = [ E_SCF(M)*exp(-α*√N) - E_SCF(N)*exp(-α*√M) ] / [exp(-α*√N) - exp(-α*√M)]
等式两边同时对分子坐标求导(用x代表至少3N-6个的自变量):
d(E_SCF(∞))/dx= [ d(E_SCF(M))/dx*exp(-α*√N) - d(E_SCF(N))/dx*exp(-α*√M) ] / [exp(-α*√N) - exp(-α*√M)]
这样就获得了梯度的外推公式。
二、Gaussian中的实现
要想在Gaussian中实现用外推的梯度优化,要用到external功能。这里我参考以下两篇文章:
http://bbs.keinsci.com/thread-10141-1-1.html
http://bbs.keinsci.com/thread-18901-1-1.html
写了.sh脚本和fortran程序来实现,实现的是def2-SVP/def2-TZVPP这两个基组外推CBS。本人计算机水平较差,修改代码时可能会留下一些不必要的语句,请大家见谅。三个文件在附件中给出,要是可执行程序用不了,就自行编译f90文件。泛函默认的是PBE0(写作PBE1PBE),想改的话直接改.sh文件就行。
三、补充
当然,用相同的思路还可以进行基组外推下的频率计算。也许以后会补充上。
对于一般的泛函来说,3-zeta基组下结构优化的结果已经很理想了,在基组外推下优化实际意义并不大。
想用三点外推来外推梯度的话,也是可以的,不过需要解三元方程,很麻烦,而且似乎不好消元。
使用该脚本时时输入文件写#p opt=nomicro external='./gau_gau.sh'
四、测试
测试2个体系:氟化氢和氟甲烷,泛函都是PBE0。测试结果如下:
氟化氢
基组 键长(埃)
def2-SVP 0.9202
def2-TZVPP 0.9178
def2-QZVPP 0.9176
外推CBS 0.9178
氟甲烷
优化前坐标:
C -1.13207554 -0.58780841 0.00000000
H -0.77542111 -1.59661841 0.00000000
H -0.77540270 -0.08341022 0.87365150
H -0.77540270 -0.08341022 -0.87365150
F -2.48207554 -0.58779178 0.00000000
基组 C-H键长 C-F键长 H-C-H键角 H-C-F键角 2-1-4-3二面角
def2-SVP 1.1028 1.3636 108.9295 110.0076 -118.6969
def2-TZVPP 1.0917 1.3759 109.8308 109.1092 -120.8918
def2-QZVPP 1.0911 1.3764 109.892 109.0471 -121.0457
外推CBS 1.0913 1.3764 109.8673 109.0722 -120.9835
观察数据发现,外推CBS的优化精度似乎介于3-zeta和4-zeta基组之间。
作者Author:
chrinide
时间:
2022-4-30 17:31
对DFT意义确实不大,一般而言3z-4z基本就收敛了,用在波函数上,比如搞个中小标准测试集的基准的CCSD(T)-CBS几何结构数据库,看看疗效
作者Author:
ionexchangeC
时间:
2022-5-1 00:48
先用数值频率凑合了下,测试了一下氟甲烷的振动分析结果:
基组 频率1 频率2-3 频率4 频率5-6 频率7 频率8-9
def2-SVP 1140.37 1200.43 1493.14 1468.82 3038.03 3138.14
def2-TZVPP 1097.26 1198.78 1485.49 1489.73 3042.39 3129.65
def2-QZVPP 1091.44 1199.39 1483.27 1490.02 3041.11 3128.43
外推CBS 1095.50 1198.75 1485.24 1490.56 3042.56 3129.27
作者Author:
ldatea
时间:
2022-7-5 20:37
我记得很清楚,第一次看到sob老师那个Powell的帖子,第一个想到的就是优化基函数。但是水平非常有限,就打算拿H的基组试试,还在群里问sob老师那个f90文件怎么用。分别用用H2的能量和键长作为优化目标,结果发现很难搞。碰了一堆钉子就搁置了,没想到居然在这里能见到一样想法的人。
作者Author:
ionexchangeC
时间:
2023-4-29 00:07
本帖最后由 ionexchangeC 于 2023-4-29 11:19 编辑
2023.4.29更新:支持了计算解析频率
(, 下载次数 Times of downloads: 6)
上传 Uploaded
点击下载Click to download
作者Author:
xizaokaiz
时间:
2023-8-19 17:55
想请教一下,代码里定义的alpha=1.039是怎么来的呀,如果基组不同是不是要重新选择参数
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3