|
|
本帖最后由 kogareru1z 于 2026-7-7 17:50 编辑
如题所示,在我个人的使用场景中经常会出现scf难以收敛的情况,为了使得振动计算不出现虚频,使用了混合基组:
主族元素(C,H,O...等): 全电子基组(SVP-MOLOPT-PBE-ae/TZVPP-MOLOPT-PBE-ae)
过渡金属元素(Pt等...): 赝势基组(DZVP-MOLOPT-SR-GTH/TZV2P-MOLOPT-PBE-GTH)
对于一般情况来说收敛没问题,但我发现在结构优化时Pt_111吸附O2这个体系始终无法收敛,另外在使用TZV2P级别混合基组进行能量计算时任何体系都无法收敛;
社长给出的关于对角化下的各种方法(http://sobereva.com/665)都尝试过了,Convergence一直振荡,没有收敛趋势,又由于体系中包含有过渡金属需要使用smear和k点,无法兼容OT;
我最开始尝试将mixing方法换成DIRECT_P_MIXING,因为我发现此时如果将ALPHA的值设的足够小如0.006,Convergence值便会单调下降,但是速度非常慢,可能需要几百上千步才能达到阈值,此时可以借助DIIS加速,但问题是EPS_DIIS的值同样不能设的很大,否则又会发散,我实验下来这个值至少要小于1.0E-04,这样在进入DIIS后往往几步就直接外推到收敛;但问题是DIRECT_P_MIXING效率太低,在进入DIIS前就会消耗大量的时间,而且外推也不能保证每次都收敛,可能会反复很多次,对于opt和freq计算来说这样的效率几乎是不可接受的。
于是我查看了cp2k的手册关于mixing的关键词,几乎是一个个试,然后重点来了,我发现如果添加GMIX_P T关键词(https://manual.cp2k.org/trunk/CP ... .NEGF.MIXING.GMIX_P),启用密度矩阵混合,并使用与 g 空间混合相同的混合系数而非仅混合密度本身,配合高级mixing方法如(BROYDEN_MIXING等),会使得scf收敛的稳定性大大提高,再加上社长帖文里提到的方法,原本对角化下无法收敛的体系几乎都能稳定快速的收敛,如果再写MAX_GVEC_EXP 3.0还能使得每步所需的时间降低。
甚至我还尝试按照社长(http://sobereva.com/340)贴文中的办法给TZVPP-MOLOPT-PBE-ae基组以ma-方式加上弥散函数,由于添加弥撒函数会引发严重的线性依赖问题,此时收敛难度大大提高,只按照上述方法也很难收敛;于是我又寻找cp2k关于线性相关的关键词,发现了CHOLESKY OFF ,EPS_EIGVAL 1.0E-5这两个关键词,再配合上NSIMPLEMIX 关键词,在前n步先使用Kerker mixing方法快速将Convergence降到合理值再由BROYDEN接管,此体系也成功收敛。
以上情况是针对闭壳层计算的,如果开启UKS的话又有变化了,我尝试下对OH自由基来说无论如何调参都很难收敛到EPS_SCF 1.0E-07,几乎已经无计可施了。于是抱着试一试的情况尝试了最新的mixing方法MODIFIED_BROYDEN_MIXING,这是目前开发版cp2k中添加的新方法,可通过git clone拉取,然后通过不断调整参数发现
METHOD MODIFIED_BROYDEN_MIXING
ALPHA 0.2
BETA 1.5
NBROYDEN 24
GMIX_P T
MAX_GVEC_EXP 3.
N_SIMPLE_MIX 16
组合能够较为稳定的收敛,对比OT的到能量结果也一致;不过对于其它体系,很可能需要重新调整,这里仅作参考
以上是我的个人经验分享,希望可以有所帮助,大家也可以在自己的体系里试试
|
评分 Rate
-
查看全部评分 View all ratings
|