Amesp内置了几十种基组,用户可以直接书写基组名称作为关键词来使用,详见手册中的表2。另外一些情况下需要使用混合基组、自定义基组、赝势基组以及辅助基组等,本文将详细介绍这几种情况的使用方法。
1 混合基组
使用Amesp内置的基组进行混合基组的设置的例子:
代码语言:javascript复制! HF define
>xyz 0 1
C 0.12254902 -0.03267974 0.00000000
H 0.47920344 -1.04148974 0.00000000
H 0.47922186 0.47171845 0.87365150
H 0.47922186 0.47171845 -0.87365150
H -0.94745098 -0.03266655 0.00000000
end
>basis
C def2-SVP
H 6-31g**
end
如上所示,基组部分的关键词需要写为“define”,而坐标模块下面的模块“>basis”是具体对混合基组进行定义的,其格式为:
代码语言:javascript复制>basis
elem1 basis_set1
elem2 basis_set2
......
elemN basis_setN
end
2 自定义基组
使用Amesp设置自定义基组的例子:
代码语言:javascript复制! HF define
>xyz 0 1
C 0.12254902 -0.03267974 0.00000000
H 0.47920344 -1.04148974 0.00000000
H 0.47922186 0.47171845 0.87365150
H 0.47922186 0.47171845 -0.87365150
H -0.94745098 -0.03266655 0.00000000
end
>basis
C read
H read
end
$basis
*
C
*
3 S
172.2560000000 0.0617669074
25.9109000000 0.3587940429
5.5333500000 0.7007130837
2 S
3.6649800000 -0.3958951620
0.7705450000 1.2158343556
2 P
3.6649800000 0.2364599466
0.7705450000 0.8606188057
1 S
0.1958570000 1.0000000000
1 P
0.1958570000 1.0000000000
*
H
*
2 S
5.4471780000 0.1562849787
0.8245472400 0.9046908767
1 S
0.1831915800 1.0000000000
*
$end
如上所示,基组部分的关键词需依然需要写为“define”,对于下一节中的赝势基组的读取也是写”define”。在>basis模块中,自定义基组的元素后面的关键词要写“read”。需要读取的自定义基组要写在>basis模块下面,格式为Turbomole软件的格式,具体的基组可以从BSE网站(https://www.basissetexchange.org/)获取。另外也可以混合基组与自定义基组同时使用,例子如下所示:
代码语言:javascript复制! HF define
>xyz 0 1
C 0.12254902 -0.03267974 0.00000000
H 0.47920344 -1.04148974 0.00000000
H 0.47922186 0.47171845 0.87365150
H 0.47922186 0.47171845 -0.87365150
H -0.94745098 -0.03266655 0.00000000
end
>basis
C def2-SVP
H read
end
$basis
*
H
*
2 S
5.4471780000 0.1562849787
0.8245472400 0.9046908767
1 S
0.1831915800 1.0000000000
*
$end
3 赝势基组
自定义赝势基组与自定义轨道基组的方式类似,需要读取赝势基组的原子要在>basis模块里面的元素后面写“readecp”而不是“read”,此时Amesp会同时读取该元素的轨道基组和赝势基组。赝势基组格式同样为Turbomole软件的格式,这里给出一个例子,如下所示:
代码语言:javascript复制! HF define
>xyz 0 1
C -1.23366009 1.02941175 0.00000000
H -0.87700567 0.02060175 0.00000000
H -0.87698725 1.53380994 -0.87365150
H -2.30366009 1.02942493 0.00000000
I -0.53364797 2.01935212 1.71464314
end
>basis
C lanl2dz
H read
I readecp
end
$basis
*
H
*
3 S
19.2406000000 0.0328280770
2.8992000000 0.2312085421
0.6534000000 0.8172399161
1 S
0.1776000000 1.0000000000
*
I
*
2 S
0.7242000000 -2.9731047517
0.4653000000 3.4827642436
1 S
0.1336000000 1.0000000000
2 P
1.2900000000 -0.2092377099
0.3180000000 1.1035347523
1 P
0.1053000000 1.0000000000
*
$end
$ecp
*
I
*
ncore = 46 lmax = 3
f-ul 5
-0.0747621000 0 1.0715702000
-30.0811224000 1 44.1936028000
-75.3722721000 2 12.9367609000
-22.0563758000 2 3.1956412000
-1.6979585000 2 0.8589806000
s-ul 5
2.9380036000 0 127.9202670000
41.2471267000 1 78.6211465000
287.8680095000 2 36.5146237000
114.3758506000 2 9.9065681000
37.6547714000 2 1.9420086000
p-ul 5
2.2222630000 0 13.0035304000
39.4090831000 1 76.0331404000
177.4075002000 2 24.1961684000
77.9889462000 2 6.4053433000
25.7547641000 2 1.5851786000
d-ul 5
7.0524360000 0 40.4278108000
33.3041635000 1 28.9084375000
186.9453875000 2 15.6268936000
71.9688361000 2 4.1442856000
9.3630657000 2 0.9377235000
*
$end
4 辅助基组
在Amesp中支持RI来加速SCF、TDDFT以及post-HF的计算,在使用RI时需要辅助基组,Amesp对内置基组默认配备了相关的辅助基组。如果想自行设置辅助基组,可以使用>ope中的auxscf和auxmp2关键词,前者是设置SCF和TDDFT的,而后者是设置post-HF的(如RIMP2,RI-CIS(D)),可以使用的辅助基组参考手册的表4。这里给出一个简单的例子:
代码语言:javascript复制% npara 4
! mp2 def2-SVP RI
>ope
auxscf def2-JK
auxmp2 def2-SVP-C
end
>xyz 0 1
C -0.90296498 0.92991912 0.00000000
H -0.54631056 -0.07889088 0.00000000
H -0.54629214 1.43431731 0.87365150
H -0.54629214 1.43431731 -0.87365150
H -1.97296498 0.92993231 0.00000000
end
如果用户需要自己定义辅助基组,只需要在auxscf和auxmp2后面写关键词define,然后在坐标模块下面的模块“>auxscf”和“>auxmp2”中具体对辅助基组进行定义即可,与前面的基组书写方式类似。这里给出一个具体的例子:
代码语言:javascript复制% npara 4
! mp2 def2-SVP RI
>ope
auxscf define
auxmp2 define
end
>xyz 0 1
C -0.90296498 0.92991912 0.00000000
H -0.54631056 -0.07889088 0.00000000
H -0.54629214 1.43431731 0.87365150
H -0.54629214 1.43431731 -0.87365150
H -1.97296498 0.92993231 0.00000000
end
>auxscf
C def2-JK
H read
end
$auxscf
*
H
*
3 S
22.0683430000 0.0424380615
4.3905712000 0.3158026706
1.0540787000 0.7340270752
1 S
0.2717874000 1.0000000000
1 P
1.8529979000 1.0000000000
1 P
0.3881034000 1.0000000000
1 D
2.5579933000 1.0000000000
1 D
0.3292649000 1.0000000000
*
$end
>auxmp2
C def2-SVP-C
H read
end
$auxmp2
*
H
*
2 S
9.3352160900 0.3487618270
1.8611070400 0.7395551373
1 S
0.5951246600 1.0000000000
1 S
0.2644809900 1.0000000000
2 P
2.4524982100 0.0844547495
1.3540383000 0.9235458776
1 P
0.5952239400 1.0000000000
2 D
1.5816376600 1.0050058114
0.6274396000 -0.0072040465
*
$end