mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-11-19 12:32:30 +01:00
added Overlap for general cGTOs
This commit is contained in:
parent
6edaaef524
commit
fd51b73310
@ -1,10 +1,10 @@
|
||||
|
||||
! ---
|
||||
|
||||
BEGIN_PROVIDER [ double precision, ao_overlap , (ao_num, ao_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, ao_overlap_x, (ao_num, ao_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, ao_overlap_y, (ao_num, ao_num) ]
|
||||
&BEGIN_PROVIDER [ double precision, ao_overlap_z, (ao_num, ao_num) ]
|
||||
BEGIN_PROVIDER [double precision, ao_overlap , (ao_num, ao_num)]
|
||||
&BEGIN_PROVIDER [double precision, ao_overlap_x, (ao_num, ao_num)]
|
||||
&BEGIN_PROVIDER [double precision, ao_overlap_y, (ao_num, ao_num)]
|
||||
&BEGIN_PROVIDER [double precision, ao_overlap_z, (ao_num, ao_num)]
|
||||
|
||||
BEGIN_DOC
|
||||
! Overlap between atomic basis functions:
|
||||
@ -48,7 +48,7 @@
|
||||
!$OMP DEFAULT(NONE) &
|
||||
!$OMP PRIVATE(A_center,B_center,power_A,power_B,&
|
||||
!$OMP overlap_x,overlap_y, overlap_z, overlap, &
|
||||
!$OMP alpha, beta,i,j,c) &
|
||||
!$OMP alpha, beta,i,j,n,l,c) &
|
||||
!$OMP SHARED(nucl_coord,ao_power,ao_prim_num, &
|
||||
!$OMP ao_overlap_x,ao_overlap_y,ao_overlap_z,ao_overlap,ao_num,ao_coef_normalized_ordered_transp,ao_nucl, &
|
||||
!$OMP ao_expo_ordered_transp,dim1)
|
||||
|
@ -1,14 +1,14 @@
|
||||
|
||||
! ---
|
||||
|
||||
BEGIN_PROVIDER [double precision, ao_coef_norm_ord_transp_cgtos, (ao_prim_num_max, ao_num)]
|
||||
BEGIN_PROVIDER [double precision, ao_coef_cgtos_norm_ord_transp, (ao_prim_num_max, ao_num)]
|
||||
|
||||
implicit none
|
||||
integer :: i, j
|
||||
|
||||
do j = 1, ao_num
|
||||
do i = 1, ao_prim_num_max
|
||||
ao_coef_norm_ord_transp_cgtos(i,j) = ao_coef_norm_ord_cgtos(j,i)
|
||||
ao_coef_cgtos_norm_ord_transp(i,j) = ao_coef_norm_cgtos_ord(j,i)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
@ -16,14 +16,20 @@ END_PROVIDER
|
||||
|
||||
! ---
|
||||
|
||||
BEGIN_PROVIDER [complex*16, ao_expo_ord_transp_cgtos, (ao_prim_num_max, ao_num)]
|
||||
BEGIN_PROVIDER [complex*16, ao_expo_cgtos_ord_transp, (ao_prim_num_max, ao_num)]
|
||||
&BEGIN_PROVIDER [complex*16, ao_expo_pw_ord_transp, (3, ao_prim_num_max, ao_num)]
|
||||
&BEGIN_PROVIDER [complex*16, ao_expo_phase_ord_transp, (3, ao_prim_num_max, ao_num)]
|
||||
|
||||
implicit none
|
||||
integer :: i, j
|
||||
integer :: i, j, m
|
||||
|
||||
do j = 1, ao_num
|
||||
do i = 1, ao_prim_num_max
|
||||
ao_expo_ord_transp_cgtos(i,j) = ao_expo_ord_cgtos(j,i)
|
||||
ao_expo_cgtos_ord_transp(i,j) = ao_expo_cgtos_ord(j,i)
|
||||
do m = 1, 3
|
||||
ao_expo_pw_ord_transp(m,i,j) = ao_expo_pw_ord(m,j,i)
|
||||
ao_expo_phase_ord_transp(m,i,j) = ao_expo_phase_ord(m,j,i)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
||||
@ -84,8 +90,8 @@ END_PROVIDER
|
||||
|
||||
! ---
|
||||
|
||||
BEGIN_PROVIDER [double precision, ao_coef_norm_ord_cgtos, (ao_num, ao_prim_num_max)]
|
||||
&BEGIN_PROVIDER [complex*16 , ao_expo_ord_cgtos, (ao_num, ao_prim_num_max)]
|
||||
BEGIN_PROVIDER [double precision, ao_coef_norm_cgtos_ord, (ao_num, ao_prim_num_max)]
|
||||
&BEGIN_PROVIDER [complex*16 , ao_expo_cgtos_ord, (ao_num, ao_prim_num_max)]
|
||||
&BEGIN_PROVIDER [double precision, ao_expo_pw_ord, (3, ao_num, ao_prim_num_max)]
|
||||
&BEGIN_PROVIDER [double precision, ao_expo_phase_ord, (3, ao_num, ao_prim_num_max)]
|
||||
|
||||
@ -118,8 +124,8 @@ END_PROVIDER
|
||||
enddo
|
||||
|
||||
do j = 1, ao_prim_num(i)
|
||||
ao_expo_ord_cgtos (i,j) = d(j,1) + (0.d0, 1.d0) * d(j,3)
|
||||
ao_coef_norm_ord_cgtos(i,j) = d(j,2)
|
||||
ao_expo_cgtos_ord (i,j) = d(j,1) + (0.d0, 1.d0) * d(j,3)
|
||||
ao_coef_norm_cgtos_ord(i,j) = d(j,2)
|
||||
ao_expo_pw_ord(i,j,1) = d(j,4)
|
||||
ao_expo_pw_ord(i,j,2) = d(j,5)
|
||||
ao_expo_pw_ord(i,j,3) = d(j,6)
|
||||
@ -139,9 +145,12 @@ END_PROVIDER
|
||||
&BEGIN_PROVIDER [double precision, ao_overlap_cgtos_z, (ao_num, ao_num)]
|
||||
|
||||
implicit none
|
||||
integer :: i, j, n, l, dim1, power_A(3), power_B(3)
|
||||
|
||||
integer :: i, j, m, n, l, ii, jj, dim1, power_A(3), power_B(3)
|
||||
double precision :: c, overlap, overlap_x, overlap_y, overlap_z
|
||||
complex*16 :: alpha, beta, A_center(3), B_center(3)
|
||||
complex*16 :: alpha, alpha_inv, A_center(3), KA2(3), phiA(3)
|
||||
complex*16 :: beta, beta_inv, B_center(3), KB2(3), phiB(3)
|
||||
complex*16 :: C1(1:4), C2(1:4)
|
||||
complex*16 :: overlap1, overlap_x1, overlap_y1, overlap_z1
|
||||
complex*16 :: overlap2, overlap_x2, overlap_y2, overlap_z2
|
||||
|
||||
@ -152,40 +161,67 @@ END_PROVIDER
|
||||
|
||||
dim1 = 100
|
||||
|
||||
!$OMP PARALLEL DO SCHEDULE(GUIDED) &
|
||||
!$OMP DEFAULT(NONE) &
|
||||
!$OMP PRIVATE(A_center, B_center, power_A, power_B, alpha, beta, i, j, n, l, c, &
|
||||
!$OMP overlap_x , overlap_y , overlap_z , overlap, &
|
||||
!$OMP overlap_x1, overlap_y1, overlap_z1, overlap1, &
|
||||
!$OMP overlap_x2, overlap_y2, overlap_z2, overlap2) &
|
||||
!$OMP SHARED(nucl_coord, ao_power, ao_prim_num, ao_num, ao_nucl, dim1, &
|
||||
!$OMP ao_overlap_cgtos_x, ao_overlap_cgtos_y, ao_overlap_cgtos_z, ao_overlap_cgtos, &
|
||||
!$OMP ao_coef_norm_ord_transp_cgtos, ao_expo_ord_transp_cgtos )
|
||||
!$OMP PARALLEL DO SCHEDULE(GUIDED) &
|
||||
!$OMP DEFAULT(NONE) &
|
||||
!$OMP PRIVATE(i, j, m, n, l, ii, jj, c, C1, C2, &
|
||||
!$OMP alpha, alpha_inv, A_center, power_A, KA2, phiA, &
|
||||
!$OMP beta, beta_inv, B_center, power_B, KB2, phiB, &
|
||||
!$OMP overlap_x , overlap_y , overlap_z , overlap, &
|
||||
!$OMP overlap_x1, overlap_y1, overlap_z1, overlap1, &
|
||||
!$OMP overlap_x2, overlap_y2, overlap_z2, overlap2) &
|
||||
!$OMP SHARED(nucl_coord, ao_power, ao_prim_num, ao_num, ao_nucl, dim1, &
|
||||
!$OMP ao_coef_cgtos_norm_ord_transp, ao_expo_cgtos_ord_transp, &
|
||||
!$OMP ao_expo_pw_ord_transp, ao_expo_phase_ord_transp, &
|
||||
!$OMP ao_overlap_cgtos_x, ao_overlap_cgtos_y, ao_overlap_cgtos_z, &
|
||||
!$OMP ao_overlap_cgtos)
|
||||
|
||||
do j = 1, ao_num
|
||||
|
||||
A_center(1) = nucl_coord(ao_nucl(j),1) * (1.d0, 0.d0)
|
||||
A_center(2) = nucl_coord(ao_nucl(j),2) * (1.d0, 0.d0)
|
||||
A_center(3) = nucl_coord(ao_nucl(j),3) * (1.d0, 0.d0)
|
||||
power_A(1) = ao_power(j,1)
|
||||
power_A(2) = ao_power(j,2)
|
||||
power_A(3) = ao_power(j,3)
|
||||
jj = ao_nucl(j)
|
||||
power_A(1) = ao_power(j,1)
|
||||
power_A(2) = ao_power(j,2)
|
||||
power_A(3) = ao_power(j,3)
|
||||
|
||||
do i = 1, ao_num
|
||||
|
||||
B_center(1) = nucl_coord(ao_nucl(i),1) * (1.d0, 0.d0)
|
||||
B_center(2) = nucl_coord(ao_nucl(i),2) * (1.d0, 0.d0)
|
||||
B_center(3) = nucl_coord(ao_nucl(i),3) * (1.d0, 0.d0)
|
||||
power_B(1) = ao_power(i,1)
|
||||
power_B(2) = ao_power(i,2)
|
||||
power_B(3) = ao_power(i,3)
|
||||
ii = ao_nucl(i)
|
||||
power_B(1) = ao_power(i,1)
|
||||
power_B(2) = ao_power(i,2)
|
||||
power_B(3) = ao_power(i,3)
|
||||
|
||||
do n = 1, ao_prim_num(j)
|
||||
alpha = ao_expo_ord_transp_cgtos(n,j)
|
||||
|
||||
alpha = ao_expo_cgtos_ord_transp(n,j)
|
||||
alpha_inv = (1.d0, 0.d0) / alpha
|
||||
|
||||
do m = 1, 3
|
||||
phiA(m) = ao_expo_phase_ord_transp(m,n,j)
|
||||
A_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * alpha_inv * ao_expo_pw_ord_transp(m,n,j)
|
||||
KA2(m) = ao_expo_pw_ord_transp(m,n,j) * ao_expo_pw_ord_transp(m,n,j)
|
||||
enddo
|
||||
|
||||
do l = 1, ao_prim_num(i)
|
||||
c = ao_coef_norm_ord_transp_cgtos(n,j) * ao_coef_norm_ord_transp_cgtos(l,i)
|
||||
beta = ao_expo_ord_transp_cgtos(l,i)
|
||||
|
||||
beta = ao_expo_cgtos_ord_transp(l,i)
|
||||
beta_inv = (1.d0, 0.d0) / beta
|
||||
|
||||
do m = 1, 3
|
||||
phiB(m) = ao_expo_phase_ord_transp(m,l,i)
|
||||
B_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * beta_inv * ao_expo_pw_ord_transp(m,l,i)
|
||||
KB2(m) = ao_expo_pw_ord_transp(m,l,i) * ao_expo_pw_ord_transp(m,l,i)
|
||||
enddo
|
||||
|
||||
c = ao_coef_cgtos_norm_ord_transp(n,j) * ao_coef_cgtos_norm_ord_transp(l,i)
|
||||
|
||||
C1(1) = zexp((0.d0, 1.d0) * (-phiA(1) + phiB(1)) - 0.25d0 * (alpha_inv * KA2(1) + beta_inv * KB2(1)))
|
||||
C1(2) = zexp((0.d0, 1.d0) * (-phiA(2) + phiB(2)) - 0.25d0 * (alpha_inv * KA2(2) + beta_inv * KB2(2)))
|
||||
C1(3) = zexp((0.d0, 1.d0) * (-phiA(3) + phiB(3)) - 0.25d0 * (alpha_inv * KA2(3) + beta_inv * KB2(3)))
|
||||
C1(4) = C1(1) * C1(2) * C1(3)
|
||||
|
||||
C2(1) = zexp((0.d0, 1.d0) * (phiA(1) + phiB(1)) - 0.25d0 * (conjg(alpha_inv) * KA2(1) + beta_inv * KB2(1)))
|
||||
C2(2) = zexp((0.d0, 1.d0) * (phiA(2) + phiB(2)) - 0.25d0 * (conjg(alpha_inv) * KA2(2) + beta_inv * KB2(2)))
|
||||
C2(3) = zexp((0.d0, 1.d0) * (phiA(3) + phiB(3)) - 0.25d0 * (conjg(alpha_inv) * KA2(3) + beta_inv * KB2(3)))
|
||||
C2(4) = C2(1) * C2(2) * C2(3)
|
||||
|
||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||
overlap_x1, overlap_y1, overlap_z1, overlap1, dim1)
|
||||
@ -193,14 +229,14 @@ END_PROVIDER
|
||||
call overlap_cgaussian_xyz(A_center, B_center, conjg(alpha), beta, power_A, power_B, &
|
||||
overlap_x2, overlap_y2, overlap_z2, overlap2, dim1)
|
||||
|
||||
overlap_x = 2.d0 * real(overlap_x1 + overlap_x2)
|
||||
overlap_y = 2.d0 * real(overlap_y1 + overlap_y2)
|
||||
overlap_z = 2.d0 * real(overlap_z1 + overlap_z2)
|
||||
overlap = 2.d0 * real(overlap1 + overlap2 )
|
||||
overlap_x = 2.d0 * real(C1(1) * overlap_x1 + C2(1) * overlap_x2)
|
||||
overlap_y = 2.d0 * real(C1(2) * overlap_y1 + C2(2) * overlap_y2)
|
||||
overlap_z = 2.d0 * real(C1(3) * overlap_z1 + C2(3) * overlap_z2)
|
||||
overlap = 2.d0 * real(C1(4) * overlap1 + C2(4) * overlap2 )
|
||||
|
||||
ao_overlap_cgtos(i,j) = ao_overlap_cgtos(i,j) + c * overlap
|
||||
|
||||
if( isnan(ao_overlap_cgtos(i,j)) ) then
|
||||
if(isnan(ao_overlap_cgtos(i,j))) then
|
||||
print*,'i, j', i, j
|
||||
print*,'l, n', l, n
|
||||
print*,'c, overlap', c, overlap
|
||||
|
@ -26,7 +26,7 @@ BEGIN_PROVIDER [ double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
||||
!$OMP PRIVATE ( i, j, k, l, m, alpha, beta, A_center, B_center, C_center &
|
||||
!$OMP , power_A, power_B, num_A, num_B, Z, c, c1, c2, n_pt_in ) &
|
||||
!$OMP SHARED ( ao_num, ao_prim_num, ao_nucl, nucl_coord, ao_power, nucl_num, nucl_charge &
|
||||
!$OMP , ao_expo_ord_transp_cgtos, ao_coef_norm_ord_transp_cgtos &
|
||||
!$OMP , ao_expo_cgtos_ord_transp, ao_coef_cgtos_norm_ord_transp &
|
||||
!$OMP , n_pt_max_integrals, ao_integrals_n_e_cgtos )
|
||||
|
||||
n_pt_in = n_pt_max_integrals
|
||||
@ -44,10 +44,10 @@ BEGIN_PROVIDER [ double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
||||
B_center(1:3) = nucl_coord(num_B,1:3)
|
||||
|
||||
do l = 1, ao_prim_num(j)
|
||||
alpha = ao_expo_ord_transp_cgtos(l,j)
|
||||
alpha = ao_expo_cgtos_ord_transp(l,j)
|
||||
|
||||
do m = 1, ao_prim_num(i)
|
||||
beta = ao_expo_ord_transp_cgtos(m,i)
|
||||
beta = ao_expo_cgtos_ord_transp(m,i)
|
||||
|
||||
c = 0.d0
|
||||
do k = 1, nucl_num
|
||||
@ -74,8 +74,8 @@ BEGIN_PROVIDER [ double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
||||
|
||||
enddo
|
||||
ao_integrals_n_e_cgtos(i,j) = ao_integrals_n_e_cgtos(i,j) &
|
||||
+ ao_coef_norm_ord_transp_cgtos(l,j) &
|
||||
* ao_coef_norm_ord_transp_cgtos(m,i) * c
|
||||
+ ao_coef_cgtos_norm_ord_transp(l,j) &
|
||||
* ao_coef_cgtos_norm_ord_transp(m,i) * c
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
@ -40,7 +40,7 @@
|
||||
!$OMP , overlap_m2_1, overlap_p2_1, overlap_m2_2, overlap_p2_2 &
|
||||
!$OMP , overlap_x0_1, overlap_y0_1, overlap_z0_1, overlap_x0_2, overlap_y0_2, overlap_z0_2 ) &
|
||||
!$OMP SHARED( nucl_coord, ao_power, ao_prim_num, ao_num, ao_nucl, dim1 &
|
||||
!$OMP , ao_coef_norm_ord_transp_cgtos, ao_expo_ord_transp_cgtos &
|
||||
!$OMP , ao_coef_cgtos_norm_ord_transp, ao_expo_cgtos_ord_transp &
|
||||
!$OMP , ao_deriv2_cgtos_x, ao_deriv2_cgtos_y, ao_deriv2_cgtos_z )
|
||||
|
||||
do j = 1, ao_num
|
||||
@ -64,11 +64,11 @@
|
||||
ao_deriv2_cgtos_z(i,j) = 0.d0
|
||||
|
||||
do n = 1, ao_prim_num(j)
|
||||
alpha = ao_expo_ord_transp_cgtos(n,j)
|
||||
alpha = ao_expo_cgtos_ord_transp(n,j)
|
||||
|
||||
do l = 1, ao_prim_num(i)
|
||||
c = ao_coef_norm_ord_transp_cgtos(n,j) * ao_coef_norm_ord_transp_cgtos(l,i)
|
||||
beta = ao_expo_ord_transp_cgtos(l,i)
|
||||
c = ao_coef_cgtos_norm_ord_transp(n,j) * ao_coef_cgtos_norm_ord_transp(l,i)
|
||||
beta = ao_expo_cgtos_ord_transp(l,i)
|
||||
|
||||
call overlap_cgaussian_xyz( A_center, B_center, alpha, beta, power_A, power_B &
|
||||
, overlap_x0_1, overlap_y0_1, overlap_z0_1, overlap, dim1 )
|
||||
|
@ -48,12 +48,12 @@ subroutine deb_ao_2eint_cgtos(i, j, k, l)
|
||||
enddo
|
||||
|
||||
do p = 1, ao_prim_num(i)
|
||||
expo1 = ao_expo_ord_transp_cgtos(p,i)
|
||||
expo1 = ao_expo_cgtos_ord_transp(p,i)
|
||||
!print*, "expo1 = ", expo1
|
||||
!print*, "center1 = ", I_center
|
||||
|
||||
do q = 1, ao_prim_num(j)
|
||||
expo2 = ao_expo_ord_transp_cgtos(q,j)
|
||||
expo2 = ao_expo_cgtos_ord_transp(q,j)
|
||||
!print*, "expo2 = ", expo2
|
||||
!print*, "center2 = ", J_center
|
||||
|
||||
@ -66,12 +66,12 @@ subroutine deb_ao_2eint_cgtos(i, j, k, l)
|
||||
iorder_p2(1:3) = I_power(1:3) + J_power(1:3)
|
||||
|
||||
do r = 1, ao_prim_num(k)
|
||||
expo3 = ao_expo_ord_transp_cgtos(r,k)
|
||||
expo3 = ao_expo_cgtos_ord_transp(r,k)
|
||||
!print*, "expo3 = ", expo3
|
||||
!print*, "center3 = ", K_center
|
||||
|
||||
do s = 1, ao_prim_num(l)
|
||||
expo4 = ao_expo_ord_transp_cgtos(s,l)
|
||||
expo4 = ao_expo_cgtos_ord_transp(s,l)
|
||||
!print*, "expo4 = ", expo4
|
||||
!print*, "center4 = ", L_center
|
||||
|
||||
|
@ -60,12 +60,12 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
||||
enddo
|
||||
|
||||
do p = 1, ao_prim_num(i)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(p,i)
|
||||
expo1 = ao_expo_ord_transp_cgtos(p,i)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(p,i)
|
||||
expo1 = ao_expo_cgtos_ord_transp(p,i)
|
||||
|
||||
do q = 1, ao_prim_num(j)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(q,j)
|
||||
expo2 = ao_expo_ord_transp_cgtos(q,j)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(q,j)
|
||||
expo2 = ao_expo_cgtos_ord_transp(q,j)
|
||||
|
||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
||||
expo1, expo2, I_power, J_power, I_center, J_center, dim1)
|
||||
@ -76,12 +76,12 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
||||
p2_inv = (1.d0, 0.d0) / pp2
|
||||
|
||||
do r = 1, ao_prim_num(k)
|
||||
coef3 = coef2 * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo3 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef3 = coef2 * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo3 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
do s = 1, ao_prim_num(l)
|
||||
coef4 = coef3 * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo4 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef4 = coef3 * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo4 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
call give_explicit_cpoly_and_cgaussian(Q1_new, Q1_center, qq1, fact_q1, iorder_q1, &
|
||||
expo3, expo4, K_power, L_power, K_center, L_center, dim1)
|
||||
@ -141,20 +141,20 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
||||
enddo
|
||||
|
||||
do p = 1, ao_prim_num(i)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(p,i)
|
||||
expo1 = ao_expo_ord_transp_cgtos(p,i)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(p,i)
|
||||
expo1 = ao_expo_cgtos_ord_transp(p,i)
|
||||
|
||||
do q = 1, ao_prim_num(j)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(q,j)
|
||||
expo2 = ao_expo_ord_transp_cgtos(q,j)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(q,j)
|
||||
expo2 = ao_expo_cgtos_ord_transp(q,j)
|
||||
|
||||
do r = 1, ao_prim_num(k)
|
||||
coef3 = coef2 * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo3 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef3 = coef2 * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo3 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
do s = 1, ao_prim_num(l)
|
||||
coef4 = coef3 * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo4 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef4 = coef3 * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo4 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
integral1 = ERI_cgtos(expo1, expo2, expo3, expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
@ -274,13 +274,13 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
|
||||
schwartz_kl(0,0) = 0.d0
|
||||
do r = 1, ao_prim_num(k)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(r,k) * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo1 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(r,k) * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo1 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
schwartz_kl(0,r) = 0.d0
|
||||
do s = 1, ao_prim_num(l)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(s,l) * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo2 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(s,l) * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo2 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
||||
expo1, expo2, K_power, L_power, K_center, L_center, dim1)
|
||||
@ -334,12 +334,12 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
|
||||
|
||||
do p = 1, ao_prim_num(i)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(p,i)
|
||||
expo1 = ao_expo_ord_transp_cgtos(p,i)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(p,i)
|
||||
expo1 = ao_expo_cgtos_ord_transp(p,i)
|
||||
|
||||
do q = 1, ao_prim_num(j)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(q,j)
|
||||
expo2 = ao_expo_ord_transp_cgtos(q,j)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(q,j)
|
||||
expo2 = ao_expo_cgtos_ord_transp(q,j)
|
||||
|
||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
||||
expo1, expo2, I_power, J_power, I_center, J_center, dim1)
|
||||
@ -390,14 +390,14 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
do r = 1, ao_prim_num(k)
|
||||
if(schwartz_kl(0,r)*schwartz_ij < thr) cycle
|
||||
|
||||
coef3 = coef2 * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo3 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef3 = coef2 * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo3 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
do s = 1, ao_prim_num(l)
|
||||
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
||||
|
||||
coef4 = coef3 * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo4 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef4 = coef3 * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo4 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
call give_explicit_cpoly_and_cgaussian(Q1_new, Q1_center, qq1, fact_q1, iorder_q1, &
|
||||
expo3, expo4, K_power, L_power, K_center, L_center, dim1)
|
||||
@ -458,13 +458,13 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
|
||||
schwartz_kl(0,0) = 0.d0
|
||||
do r = 1, ao_prim_num(k)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(r,k) * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo1 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(r,k) * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo1 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
schwartz_kl(0,r) = 0.d0
|
||||
do s = 1, ao_prim_num(l)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(s,l) * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo2 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(s,l) * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo2 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
integral1 = ERI_cgtos(expo1, expo2, expo1, expo2, &
|
||||
K_power(1), L_power(1), K_power(1), L_power(1), &
|
||||
@ -517,12 +517,12 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
enddo
|
||||
|
||||
do p = 1, ao_prim_num(i)
|
||||
coef1 = ao_coef_norm_ord_transp_cgtos(p,i)
|
||||
expo1 = ao_expo_ord_transp_cgtos(p,i)
|
||||
coef1 = ao_coef_cgtos_norm_ord_transp(p,i)
|
||||
expo1 = ao_expo_cgtos_ord_transp(p,i)
|
||||
|
||||
do q = 1, ao_prim_num(j)
|
||||
coef2 = coef1 * ao_coef_norm_ord_transp_cgtos(q,j)
|
||||
expo2 = ao_expo_ord_transp_cgtos(q,j)
|
||||
coef2 = coef1 * ao_coef_cgtos_norm_ord_transp(q,j)
|
||||
expo2 = ao_expo_cgtos_ord_transp(q,j)
|
||||
|
||||
integral1 = ERI_cgtos(expo1, expo2, expo1, expo2, &
|
||||
I_power(1), J_power(1), I_power(1), J_power(1), &
|
||||
@ -572,54 +572,54 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
||||
do r = 1, ao_prim_num(k)
|
||||
if(schwartz_kl(0,r)*schwartz_ij < thr) cycle
|
||||
|
||||
coef3 = coef2 * ao_coef_norm_ord_transp_cgtos(r,k)
|
||||
expo3 = ao_expo_ord_transp_cgtos(r,k)
|
||||
coef3 = coef2 * ao_coef_cgtos_norm_ord_transp(r,k)
|
||||
expo3 = ao_expo_cgtos_ord_transp(r,k)
|
||||
|
||||
do s = 1, ao_prim_num(l)
|
||||
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
||||
|
||||
coef4 = coef3 * ao_coef_norm_ord_transp_cgtos(s,l)
|
||||
expo4 = ao_expo_ord_transp_cgtos(s,l)
|
||||
coef4 = coef3 * ao_coef_cgtos_norm_ord_transp(s,l)
|
||||
expo4 = ao_expo_cgtos_ord_transp(s,l)
|
||||
|
||||
integral1 = ERI_cgtos(expo1, expo2, expo3, expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral2 = ERI_cgtos(expo1, expo2, conjg(expo3), expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral3 = ERI_cgtos(conjg(expo1), expo2, expo3, expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral4 = ERI_cgtos(conjg(expo1), expo2, conjg(expo3), expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral5 = ERI_cgtos(expo1, conjg(expo2), expo3, expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral6 = ERI_cgtos(expo1, conjg(expo2), conjg(expo3), expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral7 = ERI_cgtos(conjg(expo1), conjg(expo2), expo3, expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral8 = ERI_cgtos(conjg(expo1), conjg(expo2), conjg(expo3), expo4, &
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
I_power(1), J_power(1), K_power(1), L_power(1), &
|
||||
I_power(2), J_power(2), K_power(2), L_power(2), &
|
||||
I_power(3), J_power(3), K_power(3), L_power(3))
|
||||
|
||||
integral_tot = integral1 + integral2 + integral3 + integral4 + integral5 + integral6 + integral7 + integral8
|
||||
|
||||
@ -666,7 +666,7 @@ END_PROVIDER
|
||||
! ---
|
||||
|
||||
complex*16 function general_primitive_integral_cgtos(dim, P_new, P_center, fact_p, p, p_inv, iorder_p, &
|
||||
Q_new, Q_center, fact_q, q, q_inv, iorder_q)
|
||||
Q_new, Q_center, fact_q, q, q_inv, iorder_q)
|
||||
|
||||
BEGIN_DOC
|
||||
!
|
||||
|
Loading…
Reference in New Issue
Block a user