9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 19:43:32 +01:00

added explicit PROVIDE in F(3e)

This commit is contained in:
AbdAmmar 2022-12-22 00:46:31 +01:00
parent 8eecb342c9
commit 3560133e9c
4 changed files with 35 additions and 9 deletions

View File

@ -8,6 +8,8 @@ BEGIN_PROVIDER [double precision, fock_3e_uhf_mo_cs, (mo_num, mo_num)]
double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia
double precision :: ti, tf double precision :: ti, tf
PROVIDE mo_l_coef mo_r_coef
!print *, ' PROVIDING fock_3e_uhf_mo_cs ...' !print *, ' PROVIDING fock_3e_uhf_mo_cs ...'
call wall_time(ti) call wall_time(ti)
@ -52,6 +54,8 @@ BEGIN_PROVIDER [double precision, fock_3e_uhf_mo_a, (mo_num, mo_num)]
double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia
double precision :: ti, tf double precision :: ti, tf
PROVIDE mo_l_coef mo_r_coef
!print *, ' PROVIDING fock_3e_uhf_mo_a ...' !print *, ' PROVIDING fock_3e_uhf_mo_a ...'
call wall_time(ti) call wall_time(ti)
@ -147,6 +151,8 @@ BEGIN_PROVIDER [double precision, fock_3e_uhf_mo_b, (mo_num, mo_num)]
double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia double precision :: I_bij_aij, I_bij_ija, I_bij_jai, I_bij_aji, I_bij_iaj, I_bij_jia
double precision :: ti, tf double precision :: ti, tf
PROVIDE mo_l_coef mo_r_coef
!print *, ' PROVIDING fock_3e_uhf_mo_b ...' !print *, ' PROVIDING fock_3e_uhf_mo_b ...'
call wall_time(ti) call wall_time(ti)

View File

@ -6,6 +6,8 @@ BEGIN_PROVIDER [double precision, fock_a_tot_3e_bi_orth, (mo_num, mo_num)]
implicit none implicit none
integer :: i, a integer :: i, a
PROVIDE mo_l_coef mo_r_coef
fock_a_tot_3e_bi_orth = 0.d0 fock_a_tot_3e_bi_orth = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -25,6 +27,8 @@ BEGIN_PROVIDER [double precision, fock_b_tot_3e_bi_orth, (mo_num, mo_num)]
implicit none implicit none
integer :: i, a integer :: i, a
PROVIDE mo_l_coef mo_r_coef
fock_b_tot_3e_bi_orth = 0.d0 fock_b_tot_3e_bi_orth = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -47,6 +51,8 @@ BEGIN_PROVIDER [double precision, fock_cs_3e_bi_orth, (mo_num, mo_num)]
double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int
double precision :: new double precision :: new
PROVIDE mo_l_coef mo_r_coef
fock_cs_3e_bi_orth = 0.d0 fock_cs_3e_bi_orth = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -91,6 +97,8 @@ BEGIN_PROVIDER [double precision, fock_a_tmp1_bi_ortho, (mo_num, mo_num)]
double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int
double precision :: new double precision :: new
PROVIDE mo_l_coef mo_r_coef
fock_a_tmp1_bi_ortho = 0.d0 fock_a_tmp1_bi_ortho = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -123,6 +131,8 @@ BEGIN_PROVIDER [double precision, fock_a_tmp2_bi_ortho, (mo_num, mo_num)]
integer :: i, a, j, k integer :: i, a, j, k
double precision :: contrib_sss double precision :: contrib_sss
PROVIDE mo_l_coef mo_r_coef
fock_a_tmp2_bi_ortho = 0.d0 fock_a_tmp2_bi_ortho = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -148,6 +158,8 @@ BEGIN_PROVIDER [double precision, fock_b_tmp1_bi_ortho, (mo_num, mo_num)]
double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int
double precision :: new double precision :: new
PROVIDE mo_l_coef mo_r_coef
fock_b_tmp1_bi_ortho = 0.d0 fock_b_tmp1_bi_ortho = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -176,6 +188,8 @@ BEGIN_PROVIDER [double precision, fock_b_tmp2_bi_ortho, (mo_num, mo_num)]
integer :: i, a, j, k integer :: i, a, j, k
double precision :: contrib_soo double precision :: contrib_soo
PROVIDE mo_l_coef mo_r_coef
fock_b_tmp2_bi_ortho = 0.d0 fock_b_tmp2_bi_ortho = 0.d0
do i = 1, mo_num do i = 1, mo_num
@ -205,6 +219,8 @@ subroutine contrib_3e_sss(a, i, j, k, integral)
double precision, intent(out) :: integral double precision, intent(out) :: integral
double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int double precision :: direct_int, exch_13_int, exch_23_int, exch_12_int, c_3_int, c_minus_3_int
PROVIDE mo_l_coef mo_r_coef
call give_integrals_3_body_bi_ort(a, k, j, i, k, j, direct_int )!!! < a k j | i k j > call give_integrals_3_body_bi_ort(a, k, j, i, k, j, direct_int )!!! < a k j | i k j >
call give_integrals_3_body_bi_ort(a, k, j, j, i, k, c_3_int) ! < a k j | j i k > call give_integrals_3_body_bi_ort(a, k, j, j, i, k, c_3_int) ! < a k j | j i k >
call give_integrals_3_body_bi_ort(a, k, j, k, j, i, c_minus_3_int)! < a k j | k j i > call give_integrals_3_body_bi_ort(a, k, j, k, j, i, c_minus_3_int)! < a k j | k j i >
@ -233,6 +249,8 @@ subroutine contrib_3e_soo(a,i,j,k,integral)
double precision, intent(out) :: integral double precision, intent(out) :: integral
double precision :: direct_int, exch_23_int double precision :: direct_int, exch_23_int
PROVIDE mo_l_coef mo_r_coef
call give_integrals_3_body_bi_ort(a, k, j, i, k, j, direct_int) ! < a k j | i k j > call give_integrals_3_body_bi_ort(a, k, j, i, k, j, direct_int) ! < a k j | i k j >
call give_integrals_3_body_bi_ort(a, k, j, i, j, k, exch_23_int)! < a k j | i j k > : E_23 call give_integrals_3_body_bi_ort(a, k, j, i, j, k, exch_23_int)! < a k j | i j k > : E_23
integral = direct_int - exch_23_int integral = direct_int - exch_23_int
@ -249,6 +267,8 @@ subroutine contrib_3e_sos(a, i, j, k, integral)
! returns the same spin / opposite spin / same spin contribution to F(a,i) from two orbitals j,k ! returns the same spin / opposite spin / same spin contribution to F(a,i) from two orbitals j,k
END_DOC END_DOC
PROVIDE mo_l_coef mo_r_coef
implicit none implicit none
integer, intent(in) :: a, i, j, k integer, intent(in) :: a, i, j, k
double precision, intent(out) :: integral double precision, intent(out) :: integral

View File

@ -170,7 +170,7 @@ subroutine simple_tcscf()
TOUCH mo_l_coef mo_r_coef TOUCH mo_l_coef mo_r_coef
call ezfio_set_tc_scf_bitc_energy(TC_HF_energy) call ezfio_set_tc_scf_bitc_energy(TC_HF_energy)
!call test_fock_3e_uhf_mo() call test_fock_3e_uhf_mo()
print *, ' ***' print *, ' ***'
print *, '' print *, ''
@ -226,9 +226,9 @@ subroutine test_fock_3e_uhf_mo()
diff_ij = dabs(fock_3e_uhf_mo_a(j,i) - fock_a_tot_3e_bi_orth(j,i)) diff_ij = dabs(fock_3e_uhf_mo_a(j,i) - fock_a_tot_3e_bi_orth(j,i))
if(diff_ij .gt. thr_ih) then if(diff_ij .gt. thr_ih) then
print *, ' difference on ', j, i !print *, ' difference on ', j, i
print *, ' MANU : ', fock_a_tot_3e_bi_orth(j,i) !print *, ' MANU : ', fock_a_tot_3e_bi_orth(j,i)
print *, ' UHF : ', fock_3e_uhf_mo_a (j,i) !print *, ' UHF : ', fock_3e_uhf_mo_a (j,i)
!stop !stop
endif endif
@ -249,9 +249,9 @@ subroutine test_fock_3e_uhf_mo()
diff_ij = dabs(fock_3e_uhf_mo_b(j,i) - fock_b_tot_3e_bi_orth(j,i)) diff_ij = dabs(fock_3e_uhf_mo_b(j,i) - fock_b_tot_3e_bi_orth(j,i))
if(diff_ij .gt. thr_ih) then if(diff_ij .gt. thr_ih) then
print *, ' difference on ', j, i !print *, ' difference on ', j, i
print *, ' MANU : ', fock_b_tot_3e_bi_orth(j,i) !print *, ' MANU : ', fock_b_tot_3e_bi_orth(j,i)
print *, ' UHF : ', fock_3e_uhf_mo_b (j,i) !print *, ' UHF : ', fock_3e_uhf_mo_b (j,i)
!stop !stop
endif endif

View File

@ -25,7 +25,7 @@ program test_ints
!call routine_int2_grad1u2_grad2u2_j1b2 !call routine_int2_grad1u2_grad2u2_j1b2
call test_fock_3e_uhf_ao() !call test_fock_3e_uhf_ao()
call test_fock_3e_uhf_mo() call test_fock_3e_uhf_mo()
end end