From 2c1812e5cad4edcdfea85f2c9f4f2f0dd8271ca3 Mon Sep 17 00:00:00 2001 From: eginer Date: Thu, 11 May 2023 10:42:12 +0200 Subject: [PATCH] fixed extrpolation energy in fci_tc_bi --- src/dft_utils_in_r/dm_in_r_routines.irp.f | 2 ++ src/fci_tc_bi/diagonalize_ci.irp.f | 5 ++++- src/tc_bi_ortho/tc_h_eigvectors.irp.f | 22 ---------------------- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/src/dft_utils_in_r/dm_in_r_routines.irp.f b/src/dft_utils_in_r/dm_in_r_routines.irp.f index 9991289c..364b6767 100644 --- a/src/dft_utils_in_r/dm_in_r_routines.irp.f +++ b/src/dft_utils_in_r/dm_in_r_routines.irp.f @@ -140,6 +140,8 @@ end enddo enddo + ! TODO : build the vector of chi_i(r) chi_j(r) and conscequently grad_i(r) grad_j(r) + ! : the same for gamma_ij and big dot product do istate = 1, N_states ! alpha density ! aos_array_bis = \rho_ao * aos_array diff --git a/src/fci_tc_bi/diagonalize_ci.irp.f b/src/fci_tc_bi/diagonalize_ci.irp.f index c8369e93..b6ec073f 100644 --- a/src/fci_tc_bi/diagonalize_ci.irp.f +++ b/src/fci_tc_bi/diagonalize_ci.irp.f @@ -39,6 +39,9 @@ subroutine diagonalize_CI_tc_bi_ortho(ndet, E_tc,norm,pt2_data,print_pt2) write(*,'(A28,X,I10,X,100(F16.8,X))')'Ndet,E,E+PT2,E+RPT2,|PT2|=',ndet,E_tc ,E_tc + pt2_tmp/norm,E_tc + rpt2_tmp/norm,abs_pt2 print*,'*****' endif + psi_energy(1:N_states) = eigval_right_tc_bi_orth(1:N_states) + psi_s2(1:N_states) = s2_eigvec_tc_bi_orth(1:N_states) + E_tc = eigval_right_tc_bi_orth(1) norm = norm_ground_left_right_bi_orth ndet = N_det @@ -50,7 +53,7 @@ subroutine diagonalize_CI_tc_bi_ortho(ndet, E_tc,norm,pt2_data,print_pt2) enddo enddo SOFT_TOUCH eigval_left_tc_bi_orth eigval_right_tc_bi_orth leigvec_tc_bi_orth reigvec_tc_bi_orth norm_ground_left_right_bi_orth - SOFT_TOUCH psi_l_coef_bi_ortho psi_r_coef_bi_ortho psi_coef + SOFT_TOUCH psi_l_coef_bi_ortho psi_r_coef_bi_ortho psi_coef psi_energy psi_s2 call save_tc_bi_ortho_wavefunction end diff --git a/src/tc_bi_ortho/tc_h_eigvectors.irp.f b/src/tc_bi_ortho/tc_h_eigvectors.irp.f index a288810b..3140d229 100644 --- a/src/tc_bi_ortho/tc_h_eigvectors.irp.f +++ b/src/tc_bi_ortho/tc_h_eigvectors.irp.f @@ -233,8 +233,6 @@ end do istate = N_states+1, n_states_diag vec_tmp(istate,istate) = 1.d0 enddo - !call davidson_general_ext_rout_nonsym_b1space(vec_tmp, H_jj, eigval_left_tc_bi_orth, N_det, n_states, n_states_diag, converged, htcdag_bi_ortho_calc_tdav) - !call davidson_general_ext_rout_nonsym_b1space(vec_tmp, H_jj, eigval_left_tc_bi_orth, N_det, n_states, n_states_diag, converged, H_tc_dagger_u_0_opt) integer :: n_it_max,i_it n_it_max = 1 converged = .False. @@ -300,26 +298,6 @@ end print*,' = ', s2_eigvec_tc_bi_orth(i) enddo - double precision, allocatable :: buffer(:,:) - allocate(buffer(N_det,N_states)) - do k = 1, N_states - do i = 1, N_det - psi_l_coef_bi_ortho(i,k) = leigvec_tc_bi_orth(i,k) - buffer(i,k) = leigvec_tc_bi_orth(i,k) - enddo - enddo - TOUCH psi_l_coef_bi_ortho - call ezfio_set_tc_bi_ortho_psi_l_coef_bi_ortho(buffer) - do k = 1, N_states - do i = 1, N_det - psi_r_coef_bi_ortho(i,k) = reigvec_tc_bi_orth(i,k) - buffer(i,k) = reigvec_tc_bi_orth(i,k) - enddo - enddo - TOUCH psi_r_coef_bi_ortho - call ezfio_set_tc_bi_ortho_psi_r_coef_bi_ortho(buffer) - deallocate(buffer) - END_PROVIDER