Amesp中基组的使用

2023-09-03 14:16:18 浏览数 (1)

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

0 人点赞