1.2 产生里德堡基函数

我们首先介绍对分子产生里德堡基函数的方法。这些里德堡轨道是弥散的,因此需要使基函数弥散。由于弥散,它们不再局限在原子上,也就是价轨道上,而应被看作是扩展到整个分子中。

计算方法以这样的事实为基础:如果在一个虚轨道上添加一个电子,按照Koopmans理论,轨道能量的增加使体系的能量增加。轨道重新组织的影响对弥散虚轨道的影响非常小,因此在阳离子的虚轨道上添加一个电子是对里德堡态的合理近似。对这种方法更详细的讨论见文献[3]。

方法可以分为几步(见文献[3]):

1.     使用RASSCF程序,在一个电子去除之后对系统进行RHF或价电子的CASSCf计算。这将决定电荷的中心,对于选择里德堡基函数展开的中心非常适合。结果对选择的反应不灵敏。

2.     在中心电荷上,为初始基组添加合适的弥散。我们使用Kaufmann等人对里德堡波函优化的通用的指数(见文献[4])。

3.     用新的基函数重复RHF或CASSCF计算。

4.     使用最低的虚函数定义基组。

最好不要使用相当大的价基组进行这个计算,最好选择双-ζ或双-ζ加极化函数基组。在这个例子中,我们将使用苯,在环中心有一个自然形成的原点,因此就排除了决定电荷中心的步骤,而且也作了简化,只需考虑s函数。

方案如下:

1. 创建SEWARD,SCF,RASSCF,RASREAD和GENANO的输入。

2. 创建用于运行SEWARD,SCF,RASSCF和RASREAD的shell脚本,并运行任务。

3. 编辑得到的格式化轨道文件C6H6.RasOrb。设置占据空间的占据数为0,而不可约表示中的最初三个虚轨道的占据数分别为10-1,10-2,和10-3。这些占据数是任意的,只要能构成一个衰减的序列即可。

4. 建立运行GENANO的shell脚本,并运行任务。

5. 结果文件C6H6.Ano包含了收缩因子。把这个文件与SEWARD输入文件中的指数合并,就得到最终的收缩基组。我们通常对每一类型使用一个函数。

    基函数半径范围的结果如图2所示。

    下面是输入的例子。首先,SEWARD输入使用非收缩的里德堡函数:

 

图2. 里德堡轨道半径的范围。

    

&SEWARD &END
Title
Benzene molecule.
Symmetry
X Y Z
*OneOnly
Basis set
C.ano-s...3s2p1d.
C1    2.636169     .000000     .000000
C2    1.318084    2.282990     .000000
End of basis
Basis set
H.ano-s...2s1p.
H1    4.684633     .000000     .000000
H2    2.342316    4.057011     .000000
End of basis
Basis set
X....8s8p8d. / Inline
  0.0 0
8 8
.02462393 .01125334 .00585838 .00334597 .00204842 .00132364 .00089310 .00062431
1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 1.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0
X     0.000000    0.000000     .000000
End of basis
End of input

一旦完成计算,收缩函数就会代替非收缩函数。在通常的计算中,我们对每一类型使用同一个函数1s1p1d,但是作为特殊的用途,例如为了增加里德堡基组,我们可以使用三个。

基组:

X....1s1p1d. / Inline
  0.0 0
8 1
.02462393 .01125334 .00585838 .00334597 .00204842 .00132364 .00089310 .00062431
   .15531366  -.26126804   .38654527
 -1.53362747 -1.27182240   .94560891
  1.10186802   .95250581 -1.24269525
 -1.70918216   .49632170 -2.22724281
  2.03031830   .68292933  1.94719179
 -1.73187442  -.56245782   .68883478
   .92694465   .30675927   .15138171
  -.22934028  -.07852136  -.02092438
X     0.000000    0.000000     .000000
End of basis

SCF输入:

 &SCF &END
Title
 Benzene molecule.
Occupied
 6 5 4 3 1 1 1 0
End of input

RASSCF输入:

 &RASSCF &END
Title
 Benzene molecule
Symmetry
 7
Spin 
 2
nActEl
  1 0 0
Inactive
 6 5 4 3 1 1 0 0
Ras2    
 0 0 0 0 0 0 1 0
LumOrb
Thrshld
0.5d-8 0.5d-4 1.0d-4
Iterations
 50 25
End of input

 

RASREAD输入:

 

&RASREAD &END
Average Orbitals
End of input

GENANO输入:

 &GENANO &END
Title
 Rydberg basis set for benzene.
sets
 1
Center
X
Weights
 1.0
end of input

这里是例子中的两个shell脚本,用Korn shell编写,但没有使用Korn shell的外部功能,所以需要重新用C shell或其它你喜欢的shell编写。这是很简单的。

产生波函的shell脚本:

#!/bin/ksh
Project='C6H6'
Home=$PWD
WorkDir=/temp1/$LOGNAME/$Project
export Project WorkDir
print 'Start of job:' $Project
print 'Current directory:' $Home
print 'Scratch directory:' $WorkDir
#
trap 'exit' ERR
rm -fr $WorkDir
mkdir  $WorkDir
cd     $WorkDir
#
molcas run seward    $Home/$Project.seward.input
molcas run scf       $Home/$Project.scf.input
molcas run rasscf    $Home/$Project.rasscf.input
molcas run rasread   $Home/$Project.rasread.input
cp C6H6.RasOrb $Home
#
cd -
rm -r $WorkDir

产生收缩的shell脚本:

#!/bin/ksh
Project='C6H6'
Home=$PWD
WorkDir=/temp1/$LOGNAME/$Project
export Project WorkDir
print 'Start of job:' $Project
print 'Current directory:' $Home
print 'Scratch directory:' $WorkDir
#
trap 'exit' ERR
rm -fr $WorkDir
mkdir  $WorkDir
cd     $WorkDir
#
molcas run seward   $Home/$Project.seward.input
ln -s $Home/C6H6.Ano     ANO   
ln -s $Home/C6H6.RasOrb  NAT001
ln -s C6H6.OneInt        ONE001
molcas run genano   $Home/$Project.genano.input
#
cd -
rm -r $WorkDir
exit

对于噻吩,可以使用同样的方法。除了产生s,p,d函数以外唯一不同的是,要计算阳离子的两个态。因此使用GENANO程序的最后步骤将包括两个文件:

ln -s $Home/Thiophene.Ano     ANO   
ln -s $Home/Thiophene.RasOrb1  NAT001
ln -s $Home/Thiophene.RasOrb2  NAT002
ln -s Thiophene.OneInt        ONE001
ln -s Thiophene.OneInt        ONE002
molcas run genano   $Home/$Project.genano.input

和GENANO输入:

Title
 Rydberg basis set for thiophene.
sets
 2
Center
X
Weights
 0.5 0.5
End of input

电荷的重心选择为两个阳离子电荷中心的平均。

上一页下一页