验算双中心重叠积分程序
用前面得到的计算勒让德多项式系数的新方法改写了计算重叠积分的程序,这次验证这个程序的性能,主要参考了
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 ); |
实测结果表明,这个程序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:/工业/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( );}}
验算双中心重叠积分程序相关推荐
- 双中心积分计算氟化氢HF的动能和势能
<F 1s | H 1s>,<F 2s | H 1s>,<F 2p0 | H 1s>,氟化氢中有这三种情况是双中心积分, 列成表格 n l n' l' λ ζ ζ' ...
- 双中心单电子积分计算氢分子离子H2+的轨道能量
双中心用椭圆坐标 用线性组合原子轨道LCAO方法把电子波函数设为 假设这个轨道是两个轨道的线性组合,φA,φB用氢原子的1s轨道代入 轨道能量E 将E的表达式展开 因为cA,cB是实系数,因此可以进一 ...
- 双十一,程序员前女友发来消息。。。
故事发生在双11前 久久不联系,朋友圈常年屏蔽的前女友 突然发来微信 突!然!发!来!信!息!! 就此 一位戏精程序员与前女友大戏拉开帷幕 究竟谁才是戏精王? 前女友?程序员? 是自我加戏,还是欲擒故 ...
- 浅谈同城双中心的网络部署模型
企业建设数据中心时,出于灾备的考虑,会建设两个甚至多个数据中心.例如我们经常提到的"两地三中心",即同城双中心+异地中心. 同城双中心是指在同城或邻近城市建立两个可独立承担业务的数 ...
- Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:Cannot execute request on any known server
问题描述:Spring Cloud的Eureka Server(注册中心)在程序启动的时候报错:com.netflix.discovery.shared.transport.TransportExce ...
- 计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)
项目介绍 据世界动物保护协会统计,全世界大概有5亿只流浪狗和散养的狗和大致同样数量的流浪猫,而这些主要源于主人的弃养.同时,在很多地区,狗和猫都处于散养状态,这部分的动物,也经常会变成流浪动物.猫和狗 ...
- django基于Python的HOME宠物领养+购物商城中心小程序#毕业设计
开发环境 项目编号:django基于Python的HOME宠物领养中心小程序#毕业设计 开发语言:Python python框架:django 软件版本:python3.7/python3.8 数据库 ...
- ES双中心数据稽核(同步)
数据稽核场景 基于ES双中心使用场景,需要近实时周期性验证2个ES索引双写的数据差异,并采取措施保证数据的一致性. 数据稽核方案 由于ES一般承载的数据量较大,无法直接查询到内存中进行明细比对,采用的 ...
- 恋爱小助手微信QQ双端小程序源码/可添加流量主,无需域名无需服务器
源码介绍 恋爱小助手微信QQ双端小程序源码,无需服务器和域名,可添加流量主,搭建教程都打包在文件里面了. 源码特点: 1.支持任意漫画头像生成功能,后端自定义字体,颜色,大小,角度,位置,二维码水印等 ...
最新文章
- 7-8 超速判断 (C语言)
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- 解读容器的 2020:寻找云原生的下一站
- Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
- .net程序员安全注意代码及服务器配置
- python 重复执行任务_使用Python自动执行数字艺术家的重复任务
- 帆软报表设计器菜单栏介绍之二文件菜单
- 使用OpenGL绘制shp文件
- 计算机毕业设计-SSM在线视频教育网站-JavaWeb在线视频教育网站
- 根据路由器MAC地址查详细地址(WIFI定位)免费接口
- VS2008打开时出现devenv.exe 应用程序错误 该内存不能为written
- 微信支付之Native扫码支付功能
- 机器人控制学习机器编程代码_带上机器人,让他们维护我们的代码!
- 树莓派4B简单使用内容(以移植QT应用为例)
- hive 修改cluster by算法_疯狂Hive之DML操作(四)
- DHCP,服务器,汇聚层三层交换机,网关
- 机器学习-54-RL-06-Actor-Critic(强化学习-A2C,A3C,Pathwise Derivative Policy Gradient)
- 使用python中的Selenium爬取百度文库word文章
- 关于Keil编译程序出现“File has been changed outside the editor,reload?”的解决方法
- JBoss EAP 7消息系统
热门文章
- 三次样条插值Python实现
- 查看网页服务器搭建方式(Python3)
- logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...
- 为什么要使用页面缓存技术
- Kubernetes中的nodePort,targetPort,port的区别和意义
- LeetCode OJ - Copy List with Random Pointer
- 5.4任务进展情况(整理——郑云飞)
- eclipse 导入myeclipse web项目
- Apache运行机制剖析
- ACTIONSCRIPT 3.0著名开源库 大集合