mirror of
https://github.com/LCPQ/quantum_package
synced 2025-01-03 10:05:57 +01:00
strange things in MRPT
This commit is contained in:
parent
3c9c51ad12
commit
7fb1132b86
42
plugins/MRPT_Utils/ezfio_interface.irp.f
Normal file
42
plugins/MRPT_Utils/ezfio_interface.irp.f
Normal 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
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user