mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2024-11-19 12:32:20 +01:00
ZV estimator
This commit is contained in:
parent
09bf6140c8
commit
605ee8018c
@ -264,15 +264,15 @@ BEGIN_PROVIDER [ double precision, E_loc ]
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, E_loc_zv, ((pdmc_n_diag+1)*2) ]
|
||||
!BEGIN_PROVIDER [ double precision, E_loc_zv, ((pdmc_n_diag+1)*2) ]
|
||||
BEGIN_PROVIDER [ double precision, E_loc_zv ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Zero-variance parameter on E_loc
|
||||
END_DOC
|
||||
! E_loc_zv(1) = E_loc + (E_trial-E_loc) * dmc_zv_weight_half
|
||||
! E_loc_zv(2) = E_loc + (E_trial-E_loc) * dmc_zv_weight
|
||||
E_loc_zv = E_loc + (E_trial-E_loc) * dmc_zv_weight
|
||||
! E_loc_zv(3) = dmc_zv_weight_half
|
||||
E_loc_zv(:) = 0.d0
|
||||
! E_loc_zv(:) = 0.d0
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
@ -185,10 +185,10 @@ END_SHELL
|
||||
endif
|
||||
TOUCH dmc_zv_weight dmc_zv_weight_half
|
||||
|
||||
do i=1,pdmc_n_diag+1
|
||||
E_loc_zv(i) = E_loc * pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight + (E_trial-E_loc) * dmc_zv_weight
|
||||
E_loc_zv(i+pdmc_n_diag+1) = pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight
|
||||
enddo
|
||||
! do i=1,pdmc_n_diag+1
|
||||
! E_loc_zv(i) = E_loc * pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight + (E_trial-E_loc) * dmc_zv_weight
|
||||
! E_loc_zv(i+pdmc_n_diag+1) = pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight
|
||||
! enddo
|
||||
|
||||
BEGIN_SHELL [ /usr/bin/python ]
|
||||
from properties import *
|
||||
@ -304,22 +304,23 @@ for p in properties:
|
||||
print t.replace("$X",p[1])
|
||||
END_SHELL
|
||||
|
||||
H = 0.d0
|
||||
H(0,0) = E_loc_zv_pdmc_block_walk(1)
|
||||
H(1,0) = E_loc_zv_pdmc_block_walk(3)
|
||||
H(0,1) = E_loc_zv_pdmc_block_walk(3)
|
||||
H(1,1) = E_loc_zv_pdmc_block_walk(5)
|
||||
|
||||
S = 0.d0
|
||||
S(0,0) = E_loc_zv_pdmc_block_walk(6)
|
||||
S(1,0) = E_loc_zv_pdmc_block_walk(8)
|
||||
S(0,1) = E_loc_zv_pdmc_block_walk(8)
|
||||
S(1,1) = E_loc_zv_pdmc_block_walk(10)
|
||||
S(2,2) = 1.d0
|
||||
|
||||
call dsygv(1, 'N', 'U', pdmc_n_diag/2+1, H, pdmc_n_diag/2+1, S, pdmc_n_diag/2+1, w, work, 3*(pdmc_n_diag+1), info)
|
||||
E_loc_zv_diag_pdmc_block_walk = w(0)
|
||||
|
||||
! H(0,0) = H(3,3)
|
||||
! H(1,0) = H(4,3)
|
||||
! H(0,1) = H(3,4)
|
||||
! H(1,1) = H(4,4)
|
||||
! S(0,0) = S(3,3)
|
||||
! S(1,0) = S(4,3)
|
||||
! S(0,1) = S(3,4)
|
||||
! S(1,1) = S(4,4)
|
||||
!
|
||||
! print *, H(0,0)/S(0,0)
|
||||
! print *, H(1,1)/S(1,1)
|
||||
! print *, ''
|
||||
!
|
||||
! call dsygv(1, 'N', 'U', pdmc_n_diag/2+1, H, pdmc_n_diag/2+1, S, pdmc_n_diag/2+1, w, work, 3*(pdmc_n_diag+1), info)
|
||||
! call dsygv(1, 'N', 'U', 2, H, pdmc_n_diag/2+1, S, pdmc_n_diag/2+1, w, work, 3*(pdmc_n_diag+1), info)
|
||||
! E_loc_zv_diag_pdmc_block_walk = w(0)
|
||||
! print *, w
|
||||
|
||||
deallocate ( elec_coord_tmp, psi_grad_psi_inv_save, psi_grad_psi_inv_save_tmp )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user