mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-23 03:53:29 +01:00
fixed conjg bug in cgtos integ
This commit is contained in:
parent
067faae6ab
commit
de365195c3
@ -30,9 +30,9 @@ END_PROVIDER
|
|||||||
ao_expo_pw_ord_transp(m,i,j) = ao_expo_pw_ord(m,j,i)
|
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)
|
ao_expo_phase_ord_transp(m,i,j) = ao_expo_phase_ord(m,j,i)
|
||||||
enddo
|
enddo
|
||||||
ao_expo_pw_ord_transp(4,i,j) = ao_expo_pw_ord_transp(1,i,j) &
|
ao_expo_pw_ord_transp(4,i,j) = ao_expo_pw_ord_transp(1,i,j) * ao_expo_pw_ord_transp(1,i,j) &
|
||||||
+ ao_expo_pw_ord_transp(2,i,j) &
|
+ ao_expo_pw_ord_transp(2,i,j) * ao_expo_pw_ord_transp(2,i,j) &
|
||||||
+ ao_expo_pw_ord_transp(3,i,j)
|
+ ao_expo_pw_ord_transp(3,i,j) * ao_expo_pw_ord_transp(3,i,j)
|
||||||
ao_expo_phase_ord_transp(4,i,j) = ao_expo_phase_ord_transp(1,j,i) &
|
ao_expo_phase_ord_transp(4,i,j) = ao_expo_phase_ord_transp(1,j,i) &
|
||||||
+ ao_expo_phase_ord_transp(2,j,i) &
|
+ ao_expo_phase_ord_transp(2,j,i) &
|
||||||
+ ao_expo_phase_ord_transp(3,j,i)
|
+ ao_expo_phase_ord_transp(3,j,i)
|
||||||
@ -199,7 +199,6 @@ END_PROVIDER
|
|||||||
|
|
||||||
alpha = ao_expo_cgtos_ord_transp(n,j)
|
alpha = ao_expo_cgtos_ord_transp(n,j)
|
||||||
alpha_inv = (1.d0, 0.d0) / alpha
|
alpha_inv = (1.d0, 0.d0) / alpha
|
||||||
|
|
||||||
do m = 1, 3
|
do m = 1, 3
|
||||||
phiA(m) = ao_expo_phase_ord_transp(m,n,j)
|
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)
|
A_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * alpha_inv * ao_expo_pw_ord_transp(m,n,j)
|
||||||
@ -210,7 +209,6 @@ END_PROVIDER
|
|||||||
|
|
||||||
beta = ao_expo_cgtos_ord_transp(l,i)
|
beta = ao_expo_cgtos_ord_transp(l,i)
|
||||||
beta_inv = (1.d0, 0.d0) / beta
|
beta_inv = (1.d0, 0.d0) / beta
|
||||||
|
|
||||||
do m = 1, 3
|
do m = 1, 3
|
||||||
phiB(m) = ao_expo_phase_ord_transp(m,l,i)
|
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)
|
B_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * beta_inv * ao_expo_pw_ord_transp(m,l,i)
|
||||||
@ -232,7 +230,7 @@ END_PROVIDER
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_x1, overlap_y1, overlap_z1, overlap1, dim1)
|
overlap_x1, overlap_y1, overlap_z1, overlap1, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, conjg(alpha), beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(conjg(A_center), B_center, conjg(alpha), beta, power_A, power_B, &
|
||||||
overlap_x2, overlap_y2, overlap_z2, overlap2, dim1)
|
overlap_x2, overlap_y2, overlap_z2, overlap2, dim1)
|
||||||
|
|
||||||
overlap_x = 2.d0 * real(C1(1) * overlap_x1 + C2(1) * overlap_x2)
|
overlap_x = 2.d0 * real(C1(1) * overlap_x1 + C2(1) * overlap_x2)
|
||||||
|
@ -54,7 +54,7 @@ BEGIN_PROVIDER [double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
|||||||
A_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * alpha_inv * ao_expo_pw_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)
|
||||||
enddo
|
enddo
|
||||||
phiA = ao_expo_phase_ord_transp(4,n,j)
|
phiA = ao_expo_phase_ord_transp(4,n,j)
|
||||||
KA2 = ao_expo_pw_ord_transp(4,n,j) * ao_expo_pw_ord_transp(4,n,j)
|
KA2 = ao_expo_pw_ord_transp(4,n,j)
|
||||||
|
|
||||||
do l = 1, ao_prim_num(i)
|
do l = 1, ao_prim_num(i)
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ BEGIN_PROVIDER [double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
|||||||
B_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * beta_inv * ao_expo_pw_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)
|
||||||
enddo
|
enddo
|
||||||
phiB = ao_expo_phase_ord_transp(4,l,i)
|
phiB = ao_expo_phase_ord_transp(4,l,i)
|
||||||
KB2 = ao_expo_pw_ord_transp(4,l,i) * ao_expo_pw_ord_transp(4,l,i)
|
KB2 = ao_expo_pw_ord_transp(4,l,i)
|
||||||
|
|
||||||
C1 = zexp((0.d0, 1.d0) * (-phiA - phiB) - 0.25d0 * (alpha_inv * KA2 + beta_inv * KB2))
|
C1 = zexp((0.d0, 1.d0) * (-phiA - phiB) - 0.25d0 * (alpha_inv * KA2 + beta_inv * KB2))
|
||||||
C2 = zexp((0.d0, 1.d0) * ( phiA - phiB) - 0.25d0 * (conjg(alpha_inv) * KA2 + beta_inv * KB2))
|
C2 = zexp((0.d0, 1.d0) * ( phiA - phiB) - 0.25d0 * (conjg(alpha_inv) * KA2 + beta_inv * KB2))
|
||||||
@ -79,7 +79,7 @@ BEGIN_PROVIDER [double precision, ao_integrals_n_e_cgtos, (ao_num, ao_num)]
|
|||||||
|
|
||||||
I1 = NAI_pol_mult_cgtos(A_center, B_center, power_A, power_B, alpha, beta, C_center, n_pt_max_integrals)
|
I1 = NAI_pol_mult_cgtos(A_center, B_center, power_A, power_B, alpha, beta, C_center, n_pt_max_integrals)
|
||||||
|
|
||||||
I2 = NAI_pol_mult_cgtos(A_center, B_center, power_A, power_B, conjg(alpha), beta, C_center, n_pt_max_integrals)
|
I2 = NAI_pol_mult_cgtos(conjg(A_center), B_center, power_A, power_B, conjg(alpha), beta, C_center, n_pt_max_integrals)
|
||||||
|
|
||||||
c = c - Z * 2.d0 * real(C1 * I1 + C2 * I2)
|
c = c - Z * 2.d0 * real(C1 * I1 + C2 * I2)
|
||||||
enddo
|
enddo
|
||||||
|
@ -70,33 +70,31 @@
|
|||||||
|
|
||||||
alpha = ao_expo_cgtos_ord_transp(n,j)
|
alpha = ao_expo_cgtos_ord_transp(n,j)
|
||||||
alpha_inv = (1.d0, 0.d0) / alpha
|
alpha_inv = (1.d0, 0.d0) / alpha
|
||||||
|
|
||||||
do m = 1, 3
|
do m = 1, 3
|
||||||
A_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * alpha_inv * ao_expo_pw_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)
|
||||||
enddo
|
enddo
|
||||||
phiA = ao_expo_phase_ord_transp(4,n,j)
|
phiA = ao_expo_phase_ord_transp(4,n,j)
|
||||||
KA2 = ao_expo_pw_ord_transp(4,n,j) * ao_expo_pw_ord_transp(4,n,j)
|
KA2 = ao_expo_pw_ord_transp(4,n,j)
|
||||||
|
|
||||||
do l = 1, ao_prim_num(i)
|
do l = 1, ao_prim_num(i)
|
||||||
|
|
||||||
beta = ao_expo_cgtos_ord_transp(l,i)
|
beta = ao_expo_cgtos_ord_transp(l,i)
|
||||||
beta_inv = (1.d0, 0.d0) / beta
|
beta_inv = (1.d0, 0.d0) / beta
|
||||||
|
|
||||||
do m = 1, 3
|
do m = 1, 3
|
||||||
B_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * beta_inv * ao_expo_pw_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)
|
||||||
enddo
|
enddo
|
||||||
phiB = ao_expo_phase_ord_transp(4,l,i)
|
phiB = ao_expo_phase_ord_transp(4,l,i)
|
||||||
KB2 = ao_expo_pw_ord_transp(4,l,i) * ao_expo_pw_ord_transp(4,l,i)
|
KB2 = ao_expo_pw_ord_transp(4,l,i)
|
||||||
|
|
||||||
c = ao_coef_cgtos_norm_ord_transp(n,j) * ao_coef_cgtos_norm_ord_transp(l,i)
|
c = ao_coef_cgtos_norm_ord_transp(n,j) * ao_coef_cgtos_norm_ord_transp(l,i)
|
||||||
|
|
||||||
C1 = zexp((0.d0, 1.d0) * (-phiA - phiB) - 0.25d0 * (alpha_inv * KA2 + beta_inv * KB2))
|
C1 = zexp((0.d0, 1.d0) * (-phiA - phiB) - 0.25d0 * (alpha_inv * KA2 + beta_inv * KB2))
|
||||||
C2 = zexp((0.d0, 1.d0) * ( phiA - phiB) - 0.25d0 * (conjg(alpha_inv) * KA2 + beta_inv * KB2))
|
C2 = zexp((0.d0, 1.d0) * (-phiA + phiB) - 0.25d0 * (alpha_inv * KA2 + conjg(beta_inv) * KB2))
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
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)
|
overlap_x0_1, overlap_y0_1, overlap_z0_1, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_x0_2, overlap_y0_2, overlap_z0_2, overlap, dim1)
|
overlap_x0_2, overlap_y0_2, overlap_z0_2, overlap, dim1)
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
@ -106,7 +104,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_m2_1, overlap_y, overlap_z, overlap, dim1)
|
overlap_m2_1, overlap_y, overlap_z, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_m2_2, overlap_y, overlap_z, overlap, dim1)
|
overlap_m2_2, overlap_y, overlap_z, overlap, dim1)
|
||||||
else
|
else
|
||||||
overlap_m2_1 = (0.d0, 0.d0)
|
overlap_m2_1 = (0.d0, 0.d0)
|
||||||
@ -117,7 +115,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_p2_1, overlap_y, overlap_z, overlap, dim1)
|
overlap_p2_1, overlap_y, overlap_z, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_p2_2, overlap_y, overlap_z, overlap, dim1)
|
overlap_p2_2, overlap_y, overlap_z, overlap, dim1)
|
||||||
|
|
||||||
power_A(1) = power_A(1) - 2
|
power_A(1) = power_A(1) - 2
|
||||||
@ -141,7 +139,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_x, overlap_m2_1, overlap_y, overlap, dim1)
|
overlap_x, overlap_m2_1, overlap_y, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_x, overlap_m2_2, overlap_y, overlap, dim1)
|
overlap_x, overlap_m2_2, overlap_y, overlap, dim1)
|
||||||
else
|
else
|
||||||
overlap_m2_1 = (0.d0, 0.d0)
|
overlap_m2_1 = (0.d0, 0.d0)
|
||||||
@ -152,7 +150,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_x, overlap_p2_1, overlap_y, overlap, dim1)
|
overlap_x, overlap_p2_1, overlap_y, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_x, overlap_p2_2, overlap_y, overlap, dim1)
|
overlap_x, overlap_p2_2, overlap_y, overlap, dim1)
|
||||||
|
|
||||||
power_A(2) = power_A(2) - 2
|
power_A(2) = power_A(2) - 2
|
||||||
@ -176,7 +174,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_x, overlap_y, overlap_m2_1, overlap, dim1)
|
overlap_x, overlap_y, overlap_m2_1, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_x, overlap_y, overlap_m2_2, overlap, dim1)
|
overlap_x, overlap_y, overlap_m2_2, overlap, dim1)
|
||||||
else
|
else
|
||||||
overlap_m2_1 = (0.d0, 0.d0)
|
overlap_m2_1 = (0.d0, 0.d0)
|
||||||
@ -187,7 +185,7 @@
|
|||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
overlap_x, overlap_y, overlap_p2_1, overlap, dim1)
|
overlap_x, overlap_y, overlap_p2_1, overlap, dim1)
|
||||||
|
|
||||||
call overlap_cgaussian_xyz(A_center, B_center, alpha, conjg(beta), power_A, power_B, &
|
call overlap_cgaussian_xyz(A_center, conjg(B_center), alpha, conjg(beta), power_A, power_B, &
|
||||||
overlap_x, overlap_y, overlap_p2_2, overlap, dim1)
|
overlap_x, overlap_y, overlap_p2_2, overlap, dim1)
|
||||||
|
|
||||||
power_A(3) = power_A(3) - 2
|
power_A(3) = power_A(3) - 2
|
||||||
@ -227,6 +225,7 @@ BEGIN_PROVIDER [double precision, ao_kinetic_integrals_cgtos, (ao_num, ao_num)]
|
|||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
integer :: i, j
|
integer :: i, j
|
||||||
|
|
||||||
!$OMP PARALLEL DO DEFAULT(NONE) &
|
!$OMP PARALLEL DO DEFAULT(NONE) &
|
||||||
@ -244,3 +243,4 @@ BEGIN_PROVIDER [double precision, ao_kinetic_integrals_cgtos, (ao_num, ao_num)]
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
||||||
enddo
|
enddo
|
||||||
phiI = ao_expo_phase_ord_transp(4,p,i)
|
phiI = ao_expo_phase_ord_transp(4,p,i)
|
||||||
KI2 = ao_expo_pw_ord_transp(4,p,i) * ao_expo_pw_ord_transp(4,p,i)
|
KI2 = ao_expo_pw_ord_transp(4,p,i)
|
||||||
|
|
||||||
do q = 1, ao_prim_num(j)
|
do q = 1, ao_prim_num(j)
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
||||||
enddo
|
enddo
|
||||||
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
||||||
KJ2 = ao_expo_pw_ord_transp(4,q,j) * ao_expo_pw_ord_transp(4,q,j)
|
KJ2 = ao_expo_pw_ord_transp(4,q,j)
|
||||||
|
|
||||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
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)
|
expo1, expo2, I_power, J_power, I_center, J_center, dim1)
|
||||||
@ -100,7 +100,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
call give_explicit_cpoly_and_cgaussian(Q1_new, Q1_center, qq1, fact_q1, iorder_q1, &
|
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)
|
expo3, expo4, K_power, L_power, K_center, L_center, dim1)
|
||||||
@ -189,7 +189,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
||||||
enddo
|
enddo
|
||||||
phiI = ao_expo_phase_ord_transp(4,p,i)
|
phiI = ao_expo_phase_ord_transp(4,p,i)
|
||||||
KI2 = ao_expo_pw_ord_transp(4,p,i) * ao_expo_pw_ord_transp(4,p,i)
|
KI2 = ao_expo_pw_ord_transp(4,p,i)
|
||||||
|
|
||||||
do q = 1, ao_prim_num(j)
|
do q = 1, ao_prim_num(j)
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
||||||
enddo
|
enddo
|
||||||
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
||||||
KJ2 = ao_expo_pw_ord_transp(4,q,j) * ao_expo_pw_ord_transp(4,q,j)
|
KJ2 = ao_expo_pw_ord_transp(4,q,j)
|
||||||
|
|
||||||
do r = 1, ao_prim_num(k)
|
do r = 1, ao_prim_num(k)
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
|
|
||||||
@ -222,7 +222,7 @@ double precision function ao_two_e_integral_cgtos(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
C1 = zexp((0.d0, 1.d0) * (-phiI - phiJ - phiK - phiL) &
|
C1 = zexp((0.d0, 1.d0) * (-phiI - phiJ - phiK - phiL) &
|
||||||
- 0.25d0 * (expo1_inv * KI2 + expo2_inv * KJ2 + expo3_inv * KK2 + expo4_inv * KL2))
|
- 0.25d0 * (expo1_inv * KI2 + expo2_inv * KJ2 + expo3_inv * KK2 + expo4_inv * KL2))
|
||||||
@ -366,7 +366,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
schwartz_kl(0,r) = 0.d0
|
schwartz_kl(0,r) = 0.d0
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
@ -378,7 +378,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
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)
|
expo1, expo2, K_power, L_power, K_center, L_center, dim1)
|
||||||
@ -452,7 +452,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
||||||
enddo
|
enddo
|
||||||
phiI = ao_expo_phase_ord_transp(4,p,i)
|
phiI = ao_expo_phase_ord_transp(4,p,i)
|
||||||
KI2 = ao_expo_pw_ord_transp(4,p,i) * ao_expo_pw_ord_transp(4,p,i)
|
KI2 = ao_expo_pw_ord_transp(4,p,i)
|
||||||
|
|
||||||
do q = 1, ao_prim_num(j)
|
do q = 1, ao_prim_num(j)
|
||||||
|
|
||||||
@ -463,7 +463,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
||||||
enddo
|
enddo
|
||||||
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
||||||
KJ2 = ao_expo_pw_ord_transp(4,q,j) * ao_expo_pw_ord_transp(4,q,j)
|
KJ2 = ao_expo_pw_ord_transp(4,q,j)
|
||||||
|
|
||||||
call give_explicit_cpoly_and_cgaussian(P1_new, P1_center, pp1, fact_p1, iorder_p1, &
|
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)
|
expo1, expo2, I_power, J_power, I_center, J_center, dim1)
|
||||||
@ -533,7 +533,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
||||||
@ -545,7 +545,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
call give_explicit_cpoly_and_cgaussian(Q1_new, Q1_center, qq1, fact_q1, iorder_q1, &
|
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)
|
expo3, expo4, K_power, L_power, K_center, L_center, dim1)
|
||||||
@ -624,7 +624,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
schwartz_kl(0,r) = 0.d0
|
schwartz_kl(0,r) = 0.d0
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
@ -636,7 +636,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
C1 = zexp(-(0.d0, 2.d0) * (phiK + phiL) - 0.5d0 * (expo1_inv * KK2 + expo2_inv * KL2))
|
C1 = zexp(-(0.d0, 2.d0) * (phiK + phiL) - 0.5d0 * (expo1_inv * KK2 + expo2_inv * KL2))
|
||||||
C2 = zexp(-(0.d0, 2.d0) * phiL - 0.5d0 * (real(expo1_inv) * KK2 + expo2_inv * KL2))
|
C2 = zexp(-(0.d0, 2.d0) * phiL - 0.5d0 * (real(expo1_inv) * KK2 + expo2_inv * KL2))
|
||||||
@ -708,7 +708,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
I_center(m) = nucl_coord(ii,m) - (0.d0, 0.5d0) * expo1_inv * ao_expo_pw_ord_transp(m,p,i)
|
||||||
enddo
|
enddo
|
||||||
phiI = ao_expo_phase_ord_transp(4,p,i)
|
phiI = ao_expo_phase_ord_transp(4,p,i)
|
||||||
KI2 = ao_expo_pw_ord_transp(4,p,i) * ao_expo_pw_ord_transp(4,p,i)
|
KI2 = ao_expo_pw_ord_transp(4,p,i)
|
||||||
|
|
||||||
do q = 1, ao_prim_num(j)
|
do q = 1, ao_prim_num(j)
|
||||||
|
|
||||||
@ -719,7 +719,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
J_center(m) = nucl_coord(jj,m) - (0.d0, 0.5d0) * expo2_inv * ao_expo_pw_ord_transp(m,q,j)
|
||||||
enddo
|
enddo
|
||||||
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
phiJ = ao_expo_phase_ord_transp(4,q,j)
|
||||||
KJ2 = ao_expo_pw_ord_transp(4,q,j) * ao_expo_pw_ord_transp(4,q,j)
|
KJ2 = ao_expo_pw_ord_transp(4,q,j)
|
||||||
|
|
||||||
C1 = zexp(-(0.d0, 2.d0) * (phiI + phiJ) - 0.5d0 * (expo1_inv * KI2 + expo2_inv * KJ2))
|
C1 = zexp(-(0.d0, 2.d0) * (phiI + phiJ) - 0.5d0 * (expo1_inv * KI2 + expo2_inv * KJ2))
|
||||||
C2 = zexp(-(0.d0, 2.d0) * phiJ - 0.5d0 * (real(expo1_inv) * KI2 + expo2_inv * KJ2))
|
C2 = zexp(-(0.d0, 2.d0) * phiJ - 0.5d0 * (real(expo1_inv) * KI2 + expo2_inv * KJ2))
|
||||||
@ -788,7 +788,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
K_center(m) = nucl_coord(kk,m) - (0.d0, 0.5d0) * expo3_inv * ao_expo_pw_ord_transp(m,r,k)
|
||||||
enddo
|
enddo
|
||||||
phiK = ao_expo_phase_ord_transp(4,r,k)
|
phiK = ao_expo_phase_ord_transp(4,r,k)
|
||||||
KK2 = ao_expo_pw_ord_transp(4,r,k) * ao_expo_pw_ord_transp(4,r,k)
|
KK2 = ao_expo_pw_ord_transp(4,r,k)
|
||||||
|
|
||||||
do s = 1, ao_prim_num(l)
|
do s = 1, ao_prim_num(l)
|
||||||
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
if(schwartz_kl(s,r)*schwartz_ij < thr) cycle
|
||||||
@ -800,7 +800,7 @@ double precision function ao_2e_cgtos_schwartz_accel(i, j, k, l)
|
|||||||
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
L_center(m) = nucl_coord(ll,m) - (0.d0, 0.5d0) * expo4_inv * ao_expo_pw_ord_transp(m,s,l)
|
||||||
enddo
|
enddo
|
||||||
phiL = ao_expo_phase_ord_transp(4,s,l)
|
phiL = ao_expo_phase_ord_transp(4,s,l)
|
||||||
KL2 = ao_expo_pw_ord_transp(4,s,l) * ao_expo_pw_ord_transp(4,s,l)
|
KL2 = ao_expo_pw_ord_transp(4,s,l)
|
||||||
|
|
||||||
C1 = zexp((0.d0, 1.d0) * (-phiI - phiJ - phiK - phiL) &
|
C1 = zexp((0.d0, 1.d0) * (-phiI - phiJ - phiK - phiL) &
|
||||||
- 0.25d0 * (expo1_inv * KI2 + expo2_inv * KJ2 + expo3_inv * KK2 + expo4_inv * KL2))
|
- 0.25d0 * (expo1_inv * KI2 + expo2_inv * KJ2 + expo3_inv * KK2 + expo4_inv * KL2))
|
||||||
|
@ -42,12 +42,12 @@ complex*16 function overlap_cgaussian_x(A_center, B_center, alpha, beta, power_A
|
|||||||
|
|
||||||
overlap_cgaussian_x *= fact_p
|
overlap_cgaussian_x *= fact_p
|
||||||
|
|
||||||
end function overlap_cgaussian_x
|
end
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
subroutine overlap_cgaussian_xyz( A_center, B_center, alpha, beta, power_A, power_B &
|
subroutine overlap_cgaussian_xyz(A_center, B_center, alpha, beta, power_A, power_B, &
|
||||||
, overlap_x, overlap_y, overlap_z, overlap, dim )
|
overlap_x, overlap_y, overlap_z, overlap, dim )
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
!
|
!
|
||||||
@ -113,7 +113,7 @@ subroutine overlap_cgaussian_xyz( A_center, B_center, alpha, beta, power_A, powe
|
|||||||
|
|
||||||
overlap = overlap_x * overlap_y * overlap_z
|
overlap = overlap_x * overlap_y * overlap_z
|
||||||
|
|
||||||
end subroutine overlap_cgaussian_xyz
|
end
|
||||||
|
|
||||||
! ---
|
! ---
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user