1
0
mirror of https://gitlab.com/scemama/qp_plugins_scemama.git synced 2024-12-23 04:43:38 +01:00
qp_plugins_scemama/devel/dmc_dress/dmc_dress.irp.f

37 lines
1.0 KiB
FortranFixed
Raw Normal View History

2021-07-31 01:17:07 +02:00
program dmc_dress
2021-07-28 17:24:03 +02:00
implicit none
BEGIN_DOC
! Program that extracts the lowest states of the Hamiltonian dressed by the QMC
! dressing vector stored in :option:`dmc_dressing dmc_delta_h`
!
END_DOC
read_wf = .True.
touch read_wf
2021-09-07 18:46:34 +02:00
! call pre
2021-07-28 17:24:03 +02:00
call routine
2021-09-07 18:46:34 +02:00
call save_wavefunction_general(N_det,N_states,psi_det,size(psi_coef,1),psi_coef)
2021-07-28 17:24:03 +02:00
end
2021-07-30 00:57:03 +02:00
subroutine pre
implicit none
double precision, allocatable :: left(:,:), right(:,:), tmp(:,:), res(:,:)
2021-07-31 02:41:34 +02:00
integer :: i
2021-07-30 00:57:03 +02:00
allocate (left(1,1:N_det), right(1:N_det,1), tmp(1:N_det,1), res(1,1))
left(1,1:N_det) = psi_coef(1:N_det,1)
right(1:N_det,1) = psi_coef(1:N_det,1)
tmp(1:N_det,1:1) = matmul(h_matrix_dressed(1:N_det,1:N_det), right(1:N_det,1:1))
res(1:1,1:1) = matmul(left(1:1,1:N_det), tmp(1:N_det,1:1))
print *, 'E_in = ', res(1,1)
2021-07-31 02:41:34 +02:00
do i=1,N_det
print *, 'HPsi/c0 = ', tmp(i,1)/psi_coef(i,1)
enddo
2021-07-30 00:57:03 +02:00
end
2021-07-28 17:24:03 +02:00
subroutine routine
implicit none
psi_coef(1:N_det,1) = ci_eigenvectors_dressed(1:N_det,1)
print*,'N_det = ',N_det
2021-09-07 18:46:34 +02:00
print *, 'E = ', ci_energy_dressed(1)
2021-07-28 17:24:03 +02:00
SOFT_TOUCH psi_coef
end