2022-03-11 15:49:43 +01:00
|
|
|
BEGIN_PROVIDER [ double precision, h_dmc_row , (N_det) ]
|
|
|
|
&BEGIN_PROVIDER [ double precision, s_dmc_row , (N_det) ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Data sampled with QMC=Chem
|
|
|
|
END_DOC
|
|
|
|
|
2022-12-07 10:18:33 +01:00
|
|
|
h_dmc_row(:) = h_dmc(:)
|
|
|
|
s_dmc_row(:) = s_dmc(:)
|
|
|
|
call dset_order(h_dmc_row,psi_bilinear_matrix_order_reverse,N_det)
|
|
|
|
call dset_order(s_dmc_row,psi_bilinear_matrix_order_reverse,N_det)
|
2022-03-11 15:49:43 +01:00
|
|
|
|
2022-12-07 10:18:33 +01:00
|
|
|
! integer :: i
|
|
|
|
! do i=1,N_det
|
|
|
|
! s_dmc_row(i) = psi_coef(i,1)
|
|
|
|
! call i_h_psi(psi_det(1,1,i), psi_det, psi_coef, N_int, N_det, &
|
|
|
|
! N_det, 1, h_dmc_row(i) )
|
|
|
|
! enddo
|
2022-03-11 15:49:43 +01:00
|
|
|
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ integer, mat_size ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Size of the matrices
|
|
|
|
END_DOC
|
|
|
|
mat_size = N_det+1
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ double precision, H_dmc_mat, (mat_size, mat_size) ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Hamiltonian extended with DMC data
|
|
|
|
END_DOC
|
|
|
|
integer :: i,j
|
|
|
|
do j=1,N_det
|
|
|
|
do i=1,N_det
|
|
|
|
call i_h_j(psi_det(1,1,i), psi_det(1,1,j), N_int, H_dmc_mat(i,j))
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
|
|
|
|
do i=1,N_det
|
|
|
|
call i_h_psi(psi_det(1,1,i), psi_det, psi_coef, N_int, N_det, &
|
|
|
|
N_det, 1, H_dmc_mat(i,N_det+1) )
|
|
|
|
H_dmc_mat(N_det+1,i) = h_dmc_row(i)
|
|
|
|
enddo
|
2022-12-07 10:18:33 +01:00
|
|
|
H_dmc_mat(mat_size,mat_size) = E_dmc - nuclear_repulsion
|
2022-03-11 15:49:43 +01:00
|
|
|
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
BEGIN_PROVIDER [ double precision, S_dmc_mat, (mat_size, mat_size) ]
|
|
|
|
implicit none
|
|
|
|
BEGIN_DOC
|
|
|
|
! Overlap matrix extended with DMC data
|
|
|
|
END_DOC
|
|
|
|
integer :: i,j
|
|
|
|
S_dmc_mat = 0.d0
|
|
|
|
do i=1,mat_size
|
|
|
|
S_dmc_mat(i,i) = 1.d0
|
|
|
|
enddo
|
|
|
|
|
|
|
|
do i=1,N_det
|
|
|
|
S_dmc_mat(i,N_det+1) = psi_coef(i,1)
|
|
|
|
S_dmc_mat(N_det+1,i) = S_dmc_row(i)
|
|
|
|
enddo
|
|
|
|
|
|
|
|
END_PROVIDER
|
|
|
|
|
|
|
|
|
|
|
|
|