日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

验算双中心重叠积分程序

發(fā)布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 验算双中心重叠积分程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

用前面得到的計算勒讓德多項式系數(shù)的新方法改寫了計算重疊積分的程序,這次驗證這個程序的性能,主要參考了

1.Approximate Molecular Orbital Theory by Pople John A., Beveridge David L. ?

2.Calculation of the One-Electron Two-Center Integrals Over Slater-Type Orbitals by Means of the Ellipsoidal Coordinates Method by SIDI MOHAMED MEKELLECHE, ABDELLATIF BABA-AHMED(1996)

3.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.012921364533705600

-0.012921364533721100

1.000000000001200000

double d= Sab ( 2.5, 4.2, 4.4 ,??? 2, 1 , 1 ,3 ,2 );

3

2

2

1

0

2.3

2.3

2.5

-0.225219666538108000

-0.225219666538093000

0.999999999999933000

double d= Sab ( 2.5, 2.3, 2.3,??? 3, 2, 0, 2, 1? );

3

2

3

2

2

5.8

4.5

0.2

0.878358705056473000

0.878358707428179000

1.000000002700160000

double d= Sab ( 0.2, 5.8, 4.5,??? 3, 2, 2, 3, 2? );

3

2

3

2

1

2

4.4

8.7

-0.000006314661261245

-0.000006315678534335

1.000161097016560000

double d= Sab ( 8.7, 2.0, 4.4,??? 3, 2, 1, 3, 2? );

4

3

5

2

1

1.5

0.5

15

-0.012890231001724500

-0.012890230947022000

0.999999995756282000

double d= Sab ( 15, 1.5, 0.5,??? 4, 3, 1, 5, 2? );

5

3

6

4

3

1.5

1

0.1

-0.025946449868473100

0.000000000000000000

0.000000000000000000

double d= Sab ( 0.1, 1.5, 1,??? 5, 3, 3, 6, 4? );

4

3

8

5

2

3.6

3.7

0.1

0.008313612868317390

1551313174102550000.0

186599159556070000000

double d= Sab ( 0.1, 3.6, 3.7,??? 4, 3, 2, 8, 5? );

6

4

12

4

4

3.5

0.5

20

0.000011906964150515

0.000000000000000000

5

3

8

5

3

2.5

2

2.2

0.414308041044988000

0.000000000000000000

10

5

5

4

2

0.3

0.1

10

0.244313116241577000

0.000000000000000000

15

12

10

8

3

4

2.5

1.5

0.145246101309526000

0.000000000000000000

22

20

24

18

15

1.5

3.5

0.8

0.009891139692046750

0.000000000000000000

John A. Pople

1-6

1

0

1

0

0

8.7

1

1.733

0.054800000000000000

0.054840104000444100

1.000731824825620000

double d= Sab (1.733, 8.7,1,?? 1, 0 , 0 ,1 ,0 );

2-6

2

0

1

0

0

2.6

1

1.733

0.471700000000000000

0.471700639846316000

1.000001356468760000

double d= Sab ( 1.733,2.6,1,?? 2, 0 , 0 ,1 ,0 );

3-6

2

1

1

0

0

2.6

1

1.733

0.298900000000000000

0.298911819595470000

1.000039543644930000

double d= Sab (1.733, 2.6,1,?? 2, 1 , 0 ,1 ,0 );

SIDI MOHAMED MEKELLECHE

<1s|1s>

1

0

1

0

0

2.2

1.5

2

0.231371105832753000

0.231371105832752000

0.999999999999996000

double d= Sab (2, 2.2 , 1.5 ,??? 1, 0 , 0 ,1 ,0 );

<1s|1s>

1

0

1

0

0

5.5

1.5

2

0.059125938608933700

0.059125938608931800

0.999999999999968000

double d= Sab (2, 5.5 , 1.5 ,??? 1, 0 , 0 ,1 ,0 );

<1s|1s>

1

0

1

0

0

7.7

1.5

2

0.035054800488251800

0.035054800488252500

1.000000000000020000

double d= Sab (2, 7.7 , 1.5 ,??? 1, 0 , 0 ,1 ,0 );

<1s|1s>

1

0

1

0

0

9.9

1.5

2

0.023836349699891400

0.023836349699889800

0.999999999999933000

double d= Sab (2, 9.9 , 1.5 ,??? 1, 0 , 0 ,1 ,0 );

<1s|1s>

1

0

1

0

0

10

10

1.4

0.000066799473767987

0.000066799473773200

1.000000000078040000

double d= Sab (1.4, 10 , 10 ,??? 1, 0 , 0 ,1 ,0 );

<5s|5s>

5

0

5

0

0

0.1

0.1

1.4

0.999637189410387000

0.999637189410387000

1.000000000000000000

double d= Sab (1.4, 0.1 , 0.1 ,??? 5, 0 , 0 ,5 ,0 );

<1s|2p0>

1

0

2

1

0

10

2

1.4

-0.117413789686628000

-0.117413789686631000

1.000000000000030000

double d= Sab (1.4, 10 , 2 ,??? 1, 0 , 0 ,2 ,1 );

<4s|4p0>

4

0

4

1

0

0.5

0.4

1.4

-0.123035213531177000

-0.123035185362651000

0.999999771053138000

double d= Sab (1.4, 0.5 , 0.4 ,??? 4, 0 , 0 ,4 ,1 );

<2p0|2p0>

2

1

2

1

0

2

2

1.4

-0.100740382147441000

-0.100740382147440000

0.999999999999990000

double d= Sab (1.4, 2, 2 ,??? 2, 1 , 0 ,2 ,1 );

<1s|1s>

1

0

1

0

0

7.7

1.5

1.4

0.084173621969720800

0.084173621969731700

1.000000000000130000

double d= Sab (1.4, 7.7, 1.5 ,??? 1, 0 , 0 ,1 ,0 );

<3d1|3d1>

3

2

3

2

1

6.5

2

1.4

-0.095957753440884500

-0.095957753440886700

1.000000000000020000

double d= Sab (1.4, 6.5, 2 ,??? 3, 2 , 1 ,3 ,2 );

<4s|4p1>

4

0

4

1

0

1.5

0.3

1.4

-0.047652956826569900

-0.047652956826569600

0.999999999999994000

double d= Sab (1.4, 1.5, 0.3 ,??? 4, 0 , 0 ,4 ,1 );

實測結(jié)果表明,這個程序n和n’取值范圍只能小于等于5,

Java程序

package udp;import java.io.DataInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.text.ParseException;public class HFoverlapC {public static double calc2( String stra ) throws IOException, ParseException, InterruptedException {FileWriter fileWriter5 = new FileWriter("d:/工業(yè)/hk/python/表達式.csv");//stra="hin( fx1,fx1)";//stra="jin( rj1,rj2)";stra=stra.replaceAll(",","#");fileWriter5.write( stra + "\r\n");fileWriter5.flush();String exe = "python";String command = "D:/Download/cal.py"; String[] cmdArr = new String[] {exe ,command };Process process = Runtime.getRuntime().exec(cmdArr);InputStream is = process.getInputStream();DataInputStream dis = new DataInputStream(is);String str = dis.readLine();process.waitFor();System.out.println(str); double df= Double.parseDouble(str.trim()); return df;}public static double overLap( int n1,int n2 ,int c, int d, int m ,double α1 ,double β1) throws IOException, ParseException, InterruptedException {String f1= "sympy.exp(-0.5*("+α1+"+"+β1+")*μ-0.5*("+α1+"-"+β1+")*v )";String f2="(μ*μ-1)**"+m+"*(1-v*v)**"+m+"*(1+μ*v)**"+c+"*(1-μ*v)**"+d+"*(μ+v)**("+n1+"-"+m+"-"+c+")*(μ-v)**("+n2+"-"+m+"-"+d+")"; String d2 ="(integrate(integrate("+f1+" *"+ f2+" , (μ, 1, float('inf'))),(v, -1, 1)))";System.out.println( d2+" ** " );double ds=calc2( d2 );return ds; }public static double FACT( double n ) throws IOException, ParseException {double prodt=1.0;for(int a=1 ;a<n+1 ;a++){prodt=prodt*a;}return prodt;}//9.6-21 574public static double D( int L1,int L2,int m ) throws IOException, ParseException {double ss1=0;ss1 = (FACT(m + 1) / 8) * (FACT(m + 1) / 8) * Math.pow( ( (2 * L1 + 1) * FACT(L1 - m) * (2 * L2 + 1) * FACT(L2 - m) / (4.0 * FACT(L1 + m) * FACT(L2 + m))) ,0.5 );// ss1 = Math.pow( ( (2 * L1 + 1) * FACT(L1 - m) * (2 * L2 + 1) * FACT(L2 - m) / (4.0 * FACT(L1 + m) * FACT(L2 + m))) ,0.5 );System.out.println( ss1+" ** ss1" );return ss1; }//9.6-24public static double SS( int n1,int L1 ,int m ,int n2 ,int L2 ,double α1 ,double β1 ) throws IOException, ParseException, InterruptedException {double d1=D(L1,L2,m);double[] cL1= chcL1( L1 ,m ); double[] cL2= chcL1( L2 ,m ); double d2=0;for(int c=0 ;c<L1-m+1;c++){for(int d=0;d<L2-m+1;d++){d2 =d2+ cL1[c]*cL2[d]* overLap( n1, n2 , c, d, m , α1 , β1);//System.out.println( cL1[c]+" "+ cL2[d]+" "+ d2+" "+d1+" ** d2"+" "+c+" "+d );}}System.out.println( d2+" ** **d2" );return d2*d1; }public static double[] chcL1( int L ,int m ) throws IOException, ParseException, InterruptedException {double[] a1= new double[L-m+1];double f1=0; for(int u=0 ;u<L-m+1 ;u++){double d1=Math.pow( -1 ,(L-m-u)/2);double d2=1+Math.pow( -1 ,(L-m-u));double d3=FACT(L+m+u);double d4=Math.pow( 2 , L+1);double d5=FACT ( (L-m-u)/2 );double d6=FACT ( (L+m+u)/2 );f1=(8/FACT(m + 1) ) * d1*d2*d3/(d4*FACT(u)*d5*d6);//System.out.println( f1+" ** **f1 "+d1+" "+(L-m-u)/2+" "+(L-m-u) );//System.out.println( L+" "+m+" "+u +" "+(L-m-u)/2);a1[u]=f1;}return a1; }public static double Sab(double R,double za,double zb, int n1,int L1 ,int m ,int n2 ,int L2 ) throws IOException, ParseException, InterruptedException {double α1 =za*R;double β1 = zb*R;double f1=0;double d1= Math.pow((2*za),(n1+0.5))* Math.pow((2*zb) ,(n2+0.5) )/ Math.pow( ( FACT(2*n1)*FACT(2*n2) ),0.5) * Math.pow( (R/2),(n1+n2+1)) ;double d2=SS(n1,L1,m,n2,L2,α1 ,β1);f1=Math.pow(-1 , L2+m )*d1*d2;System.out.println( f1+" "+d1+" "+d2+" Sab "+Math.pow(-1 , L2+m ) );// System.out.println( f1+" f1 Sab " );return f1;}public static void so( ) throws IOException, ParseException, InterruptedException {//double d= Sab (1.733, 8.7,1, 1, 0 , 0 ,1 ,0 ); //1-6 0.05484010400044412//double d= Sab ( 1.733,2.6,1, 2, 0 , 0 ,1 ,0 ); //2-6 0.471700639846316//double d= Sab (1.733, 2.6,1, 2, 1 , 0 ,1 ,0 ); //3-6 0.29891181959547//double d= Sab ( 1.733,8.7,2.6, 1, 0 , 0 ,2 ,0 ); //1-2 0.237710896136317//double d= Sab (2, 2.2 , 1.5 , 1, 0 , 0 ,1 ,0 ); // 0.23137110583275272//double d= Sab (2, 5.5 , 1.5 , 1, 0 , 0 ,1 ,0 ); //0.05912593860893186//double d= Sab (2, 7.7 , 1.5 , 1, 0 , 0 ,1 ,0 ); //0.035054800488252554//double d= Sab (2, 9.9 , 1.5 , 1, 0 , 0 ,1 ,0 ); //0.023836349699889875//double d= Sab (1.4, 10 , 10 , 1, 0 , 0 ,1 ,0 ); //6.679947377319999E-5//double d= Sab (1.4, 0.1 , 0.1 , 5, 0 , 0 ,5 ,0 ); //0.9996371894103874//double d= Sab (1.4, 10 , 2 , 1, 0 , 0 ,2 ,1 ); //-0.11741378968663181//double d= Sab (1.4, 0.5 , 0.4 , 4, 0 , 0 ,4 ,1 ); // 4s0 4p0 -0.12303518536265186double d= Sab (1.4, 2, 2 , 2, 1 , 0 ,2 ,1 ); //-0.10074038214744//double d= Sab (1.4, 7.7, 1.5 , 1, 0 , 0 ,1 ,0 ); // 0.0841736219697317//double d= Sab (1.4, 6.5, 2 , 3, 2 , 1 ,3 ,2 ); // 3d1 -0.09595775344088678//double d= Sab (1.4, 1.5, 0.3 , 4, 0 , 0 ,4 ,1 ); //-0.04765295682656969//R=2.5;//double d= Sab ( 2.5, 4.2, 4.4 , 2, 1 , 1 ,3 ,2 ); //-0.012921364533721143//double d= Sab ( 2.5, 2.3, 2.3, 3, 2, 0, 2, 1 ); //-0.2252196665380932//double d= Sab ( 0.2, 5.8, 4.5, 3, 2, 2, 3, 2 ); //0.8783587074281796//double d= Sab ( 8.7, 2.0, 4.4, 3, 2, 1, 3, 2 ); //-6.315678534334961E-6//double d= Sab ( 15, 1.5, 0.5, 4, 3, 1, 5, 2 ); //-0.012890230947022028//double d= Sab ( 0.1, 1.5, 1, 5, 3, 3, 6, 4 ); //0//double d= Sab ( 0.1, 3.6, 3.7, 4, 3, 2, 8, 5 ); //1.55131317410255283E18System.out.println( d+" Sab " );}public static void main(String[] args) throws IOException, ParseException, InterruptedException {so( );}}

總結(jié)

以上是生活随笔為你收集整理的验算双中心重叠积分程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。