双中心动能积分的公式
由这个公式得到一个java计算方法
Tab( double R,double za,double zb, int n1,int L1 ,int m1 ,int n2 ,int L2 ,int m2 )
其中R是两核之间的距离,ζ,ζ’是斯莱特规则的核电荷数,因为第三项的lb(lb+1)-nb(nb-1)因此当n-l=1时第三项为0,不必算
验算这个方法,参考了YAKAR, Yusuf写于2006年的这篇文章
Evaluation of Two-center One- and Two-electron Integrals over Slater Type Orbitals by YAKAR, Yusuf , ÖZMEN, Ayhan,ATAV, Ülfet (2006)
得到的数据
n | l | n' | l' | λ | ζ | ζ' | R | YAKAR, Yusuf | 计算 | 参考值/计算值 |
2 | 1 | 3 | 2 | 1 | 4.2 | 4.4 | 2.5 | 0.0173824126508177 | 0.0173824126557933 | 0.9999999997137570 |
3 | 2 | 2 | 1 | 0 | 2.3 | 2.3 | 2.5 | -0.4680808325908930 | -0.4680808325908490 | 1.0000000000000900 |
3 | 2 | 3 | 2 | 2 | 5.8 | 4.5 | 0.2 | 10.8255480900514000 | 10.8255480689687000 | 1.0000000019474900 |
3 | 2 | 3 | 2 | 1 | 2 | 4.4 | 8.7 | 0.0000074849179189 | 0.0000074983855612 | 0.9982039277395570 |
4 | 3 | 5 | 2 | 1 | 1.5 | 0.5 | 15 | -0.0009332751691818 | -0.0009332751619610 | 1.0000000077371200 |
5 | 3 | 6 | 4 | 3 | 1.5 | 1 | 0.1 | -0.0146950937173451 | #DIV/0! | |
4 | 3 | 8 | 5 | 2 | 3.6 | 3.7 | 0.1 | 0.0497663176863373 | #DIV/0! |
由于方法中的重叠积分只对主量子数小于等于5的情况有效,因此双中心动能积分的主量子数也不能超过5。
代数比如第一组
double d2= Tab (2.5 , 4.2 , 4.4 , 2, 1 , 1 , 3 ,2 , 1 ); // 0.017382412655793364
这个方法的java程序为
public static double Tab( double R,double za,double zb, int n1,int L1 ,int m1 ,int n2 ,int L2 ,int m2 ) throws IOException, ParseException, InterruptedException {
double f=0;
double f1=0;
double f2=0;
double f3=0;
f1= ( -zb*zb/2)*HFoverlapA.Sab ( R,za, zb, n1, L1 , m1 , n2 , L2 );
System.out.println( f1 +" f1 Tab " );
double d1=( ( 2*n2*zb*zb) /Math.pow ( 2*n2*(2*n2-1) ,0.5 ) );
double d2=HFoverlapA.Sab (R, za, zb, n1, L1 , m1 , (n2-1) , L2 );
f2=d1*d2;
System.out.println( f2 +" f2 Tab " +d1+" "+d2 );
double d5=0;
double d6=0;
if(n2>1){
double d4=2*zb*zb*(L2*(L2+1)-n2*(n2-1) );
if(Math.abs(d4)>1e-6){
d5=Math.pow ( 2*n2*(2*n2-1)*(2*n2-2)*(2*n2-3) ,0.5);
d6= HFoverlapA.Sab (R, za, zb, n1, L1 , m1 , (n2-2) , L2 );
f3=(d4/d5)*d6;
}
System.out.println( f3 +" f3 Tab " +d4+" "+d5+" "+d6 );
}
f=f1+f2+f3;
System.out.println( f+" "+ f1+" "+f2+" "+f3+" f Tab " );
return f;
}