From c910257927d119f6682ff365aa981e188a79f27e Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 19 Sep 2015 02:00:26 +0200 Subject: [PATCH] Tests OK again. --- plugins/CISD/.gitignore | 1 - plugins/CISD_selected/.gitignore | 1 - src/Integrals_Bielec/README.rst | 22 +++---- src/Integrals_Bielec/ao_bi_integrals.irp.f | 73 ++++++++++------------ 4 files changed, 43 insertions(+), 54 deletions(-) diff --git a/plugins/CISD/.gitignore b/plugins/CISD/.gitignore index 5c7aee18..49d9e244 100644 --- a/plugins/CISD/.gitignore +++ b/plugins/CISD/.gitignore @@ -20,7 +20,6 @@ Pseudo Selectors_full SingleRefMethod Utils -cisd cisd_lapack ezfio_interface.irp.f irpf90.make diff --git a/plugins/CISD_selected/.gitignore b/plugins/CISD_selected/.gitignore index e9803984..82a3a233 100644 --- a/plugins/CISD_selected/.gitignore +++ b/plugins/CISD_selected/.gitignore @@ -23,7 +23,6 @@ Pseudo Selectors_full SingleRefMethod Utils -cisd_selection ezfio_interface.irp.f irpf90.make irpf90_entities diff --git a/src/Integrals_Bielec/README.rst b/src/Integrals_Bielec/README.rst index 3ed86fe6..b71d9c0d 100644 --- a/src/Integrals_Bielec/README.rst +++ b/src/Integrals_Bielec/README.rst @@ -113,7 +113,7 @@ Documentation Save to disk the $ao integrals -`eri `_ +`eri `_ ATOMIC PRIMTIVE bielectronic integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) @@ -176,37 +176,37 @@ Documentation Return the number of elements in the MO map -`give_polynom_mult_center_x `_ +`give_polynom_mult_center_x `_ subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw : I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) -`i_x1_new `_ +`i_x1_new `_ recursive function involved in the bielectronic integral -`i_x1_pol_mult `_ +`i_x1_pol_mult `_ recursive function involved in the bielectronic integral -`i_x1_pol_mult_a1 `_ +`i_x1_pol_mult_a1 `_ recursive function involved in the bielectronic integral -`i_x1_pol_mult_a2 `_ +`i_x1_pol_mult_a2 `_ recursive function involved in the bielectronic integral -`i_x1_pol_mult_recurs `_ +`i_x1_pol_mult_recurs `_ recursive function involved in the bielectronic integral -`i_x2_new `_ +`i_x2_new `_ recursive function involved in the bielectronic integral -`i_x2_pol_mult `_ +`i_x2_pol_mult `_ recursive function involved in the bielectronic integral @@ -218,7 +218,7 @@ Documentation Create new entry into MO map, or accumulate in an existing entry -`integrale_new `_ +`integrale_new `_ calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1) @@ -292,7 +292,7 @@ Documentation Aligned n_pt_max_integrals -`n_pt_sup `_ +`n_pt_sup `_ Returns the upper boundary of the degree of the polynomial involved in the bielctronic integral : Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z) diff --git a/src/Integrals_Bielec/ao_bi_integrals.irp.f b/src/Integrals_Bielec/ao_bi_integrals.irp.f index f9cd44d0..ba3bbcc1 100644 --- a/src/Integrals_Bielec/ao_bi_integrals.irp.f +++ b/src/Integrals_Bielec/ao_bi_integrals.irp.f @@ -28,7 +28,7 @@ double precision function ao_bielec_integral(i,j,k,l) num_l = ao_nucl(l) ao_bielec_integral = 0.d0 -! if (num_i /= num_j .or. num_k /= num_l .or. num_j /= num_k)then + if (num_i /= num_j .or. num_k /= num_l .or. num_j /= num_k)then do p = 1, 3 I_power(p) = ao_power(i,p) J_power(p) = ao_power(j,p) @@ -71,36 +71,36 @@ double precision function ao_bielec_integral(i,j,k,l) enddo ! q enddo ! p -! else -! -! do p = 1, 3 -! I_power(p) = ao_power(i,p) -! J_power(p) = ao_power(j,p) -! K_power(p) = ao_power(k,p) -! L_power(p) = ao_power(l,p) -! enddo -! double precision :: ERI -! -! do p = 1, ao_prim_num(i) -! coef1 = ao_coef_normalized_ordered_transp(p,i) -! do q = 1, ao_prim_num(j) -! coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) -! do r = 1, ao_prim_num(k) -! coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) -! do s = 1, ao_prim_num(l) -! coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) -! integral = ERI( & -! ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),& -! 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)) -! ao_bielec_integral += coef4 * integral -! enddo ! s -! enddo ! r -! enddo ! q -! enddo ! p -! -! endif + else + + do p = 1, 3 + I_power(p) = ao_power(i,p) + J_power(p) = ao_power(j,p) + K_power(p) = ao_power(k,p) + L_power(p) = ao_power(l,p) + enddo + double precision :: ERI + + do p = 1, ao_prim_num(i) + coef1 = ao_coef_normalized_ordered_transp(p,i) + do q = 1, ao_prim_num(j) + coef2 = coef1*ao_coef_normalized_ordered_transp(q,j) + do r = 1, ao_prim_num(k) + coef3 = coef2*ao_coef_normalized_ordered_transp(r,k) + do s = 1, ao_prim_num(l) + coef4 = coef3*ao_coef_normalized_ordered_transp(s,l) + integral = ERI( & + ao_expo_ordered_transp(p,i),ao_expo_ordered_transp(q,j),ao_expo_ordered_transp(r,k),ao_expo_ordered_transp(s,l),& + 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)) + ao_bielec_integral += coef4 * integral + enddo ! s + enddo ! r + enddo ! q + enddo ! p + + endif end @@ -643,16 +643,7 @@ double precision function general_primitive_integral(dim, & !DEC$ FORCEINLINE call multiply_poly(d_poly ,n_pt_tmp ,Iz_pol,n_Iz,d1,n_pt_out) double precision :: rint_sum - if (dist /= 0.d0) then - double precision :: rho_mu, const_mu - rho_mu = 1.d0/( 1.d0/rho + 4.d0 ) - const_mu = dist * rho_mu - accu = accu + dsqrt(const_mu/const) * rint_sum(n_pt_out,const_mu,d1) -! print *, const_mu, const, accu -! pause - else - accu = accu + rint_sum(n_pt_out,const,d1) - endif + accu = accu + rint_sum(n_pt_out,const,d1) general_primitive_integral = fact_p * fact_q * accu *pi_5_2*p_inv*q_inv/dsqrt(p+q) end