目录

使用Python脚本优化Range Separated Hybrids泛函γ值

软件版本为AMS2022及之后的版本。2019及之前的版本,请参考:使用Python脚本优化Range Separated Hybrids泛函γ值

Range Separated Hybrids泛函的用途

一般泛函,包括LDA、GGA、Hybrid、meta-Hybrid泛函,都有Kohn-Sham势衰减过快的问题,离原子核较远区域,过快地衰减到接近于0,这容易导致如下问题:

解决办法之一:将泛函分成两段,靠近原子核附近区域,使用标准泛函,离原子核较远区域使用正确的渐进函数——这就是Range Separated Hybrid泛函。

如何优化Range Separated Hybrids泛函的γ值

每种分子,要得到非常好的计算结果,该类泛函的γ值实际上差别是较大的。厂商提供了一个Python脚本点击下载该脚本优化γ值的原则是使得HOMO值得与离子势(Ionic Potential一致)使用方法:

如何改脚本内容?

s.input.ams.task = 'SinglePoint'
s.input.adf.basis.type = 'DZP'
s.input.adf.basis.core = 'None'
s.input.adf.xc.gga = 'PBE'
s.input.adf.xc.xcfun = True
s.runscript.nproc = 1

此处是关于LCY-PBE的γ值优化,因此s.input.adf.xc.gga的值为PBE,可酌情修改为其他值(其他Range-Seperated hybrids泛函),基组、冻芯等,可根据实际需要酌情修改,因为不同的基组、冻心,对应的最优γ值实际上也略有不同。

mol = Molecule()
mol.add_atom(Atom(symbol='H', coords=(0,0,-0.3540)))
mol.add_atom(Atom(symbol='H', coords=(0,0, 0.3540)))

这里是设置以某个分子为测试对象,来优化γ值,这里是H2,用户可以根据这个格式,根据实际分子结构的xyz文件,添加、修改原子、坐标。

gammas = np.around(np.arange(1.2, 1.9, 0.2), decimals=3)

这里可以设置搜索γ值的范围,此处1.2~1.9之间,搜索步长为0.2,用户可以根据实际情况修改范围和步长,例如如果初次搜索最优质为1.2,那么显然最优γ值比这个范围小,应该酌情调整范围为例如0.3~1.2,步长例如为0.1。作为实际应用,可以先使用较大步长,然后缩小范围后,重新搜索时,可以使用较小步长,如此灵活反复搜索。

注意:不要一次进行步长短、范围宽的搜索,否则会生成过多并发作业,导致计算机死机、作业失败。例如0.3~1.2,步长为0.1,NSCM=2则该作业将并发10*2=20个线程。

结果显示

例如显示为:

== Results ==
gamma    J
0.3000   0.10550965
0.4000   0.07915428
0.5000   0.05749357
0.6000   0.03941281
0.7000   0.02416715
0.8000   0.01133898
0.9000   0.00340345
1.0000   0.01078375
1.1000   0.01907244
Optimal gamma value: 0.9000
[15.11|21:43:11] PLAMS run finished. Goodbye

表示目前的步长、范围下,最优γ值在0.9附近。

如何使用这个优化好的γ值

注意,使用该分子优化出来的γ值只能用于该类分子(本例优化的是H2)的计算。后续其他计算,要使用该泛函(本例优化的是LCY-PBE泛函)时,将最优γ值(例如0.9)填入: