10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-06-25 14:42:15 +02:00

strange things in MRPT

This commit is contained in:
Emmanuel Giner 2017-03-24 22:49:59 +01:00
parent 3c9c51ad12
commit 7fb1132b86
2 changed files with 59 additions and 5 deletions

View File

@ -0,0 +1,42 @@
! DO NOT MODIFY BY HAND
! Created by $QP_ROOT/scripts/ezfio_interface/ei_handler.py
! from file /home/giner/qp_fork/quantum_package/src/MRPT_Utils/EZFIO.cfg
BEGIN_PROVIDER [ logical, do_third_order_1h1p ]
implicit none
BEGIN_DOC
! If true, compute the third order contribution for the 1h1p
END_DOC
logical :: has
PROVIDE ezfio_filename
call ezfio_has_mrpt_utils_do_third_order_1h1p(has)
if (has) then
call ezfio_get_mrpt_utils_do_third_order_1h1p(do_third_order_1h1p)
else
print *, 'mrpt_utils/do_third_order_1h1p not found in EZFIO file'
stop 1
endif
END_PROVIDER
BEGIN_PROVIDER [ logical, save_heff_eigenvectors ]
implicit none
BEGIN_DOC
! If true, save the eigenvectors of the dressed matrix at the end of the MRPT calculation
END_DOC
logical :: has
PROVIDE ezfio_filename
call ezfio_has_mrpt_utils_save_heff_eigenvectors(has)
if (has) then
call ezfio_get_mrpt_utils_save_heff_eigenvectors(save_heff_eigenvectors)
else
print *, 'mrpt_utils/save_heff_eigenvectors not found in EZFIO file'
stop 1
endif
END_PROVIDER

View File

@ -34,11 +34,13 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_1h(i_state) = accu(i_state)
enddo
print*, '1h = ',accu
stop
! 1p
delta_ij_tmp = 0.d0
call H_apply_mrpt_1p(delta_ij_tmp,N_det)
@ -49,6 +51,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_1p(i_state) = accu(i_state)
enddo
@ -67,6 +70,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_1h1p(i_state) = accu(i_state)
enddo
@ -83,6 +87,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_1h1p(i_state) = accu(i_state)
enddo
@ -99,6 +104,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_2h(i_state) = accu(i_state)
enddo
@ -114,6 +120,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_2p(i_state) = accu(i_state)
enddo
@ -130,6 +137,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_1h2p(i_state) = accu(i_state)
enddo
@ -146,6 +154,7 @@
accu(i_state) += delta_ij_tmp(j,i,i_state) * psi_coef(i,i_state) * psi_coef(j,i_state)
delta_ij(j,i,i_state) += delta_ij_tmp(j,i,i_state)
enddo
write(*,'(1000(F16.10,x))')delta_ij_tmp(i,:,:)
enddo
second_order_pt_new_2h1p(i_state) = accu(i_state)
enddo
@ -178,6 +187,9 @@
! total
print*, ''
print*, 'total dressing'
print*, ''
accu = 0.d0
do i_state = 1, N_states
do i = 1, N_det
@ -245,11 +257,11 @@ END_PROVIDER
integer, allocatable :: iorder(:)
! Guess values for the "N_states_diag" states of the CI_dressed_pt2_new_eigenvectors
! do j=1,min(N_states_diag,N_det)
! do i=1,N_det
! CI_dressed_pt2_new_eigenvectors(i,j) = psi_coef(i,j)
! enddo
! enddo
do j=1,min(N_states,N_det)
do i=1,N_det
CI_dressed_pt2_new_eigenvectors(i,j) = psi_coef(i,j)
enddo
enddo
do j=N_det+1,N_states_diag
do i=1,N_det