mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2024-12-22 20:33:32 +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
|
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
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Zero-variance parameter on E_loc
|
! Zero-variance parameter on E_loc
|
||||||
END_DOC
|
END_DOC
|
||||||
! E_loc_zv(1) = E_loc + (E_trial-E_loc) * dmc_zv_weight_half
|
E_loc_zv = E_loc + (E_trial-E_loc) * dmc_zv_weight
|
||||||
! E_loc_zv(2) = E_loc + (E_trial-E_loc) * dmc_zv_weight
|
|
||||||
! E_loc_zv(3) = dmc_zv_weight_half
|
! E_loc_zv(3) = dmc_zv_weight_half
|
||||||
E_loc_zv(:) = 0.d0
|
! E_loc_zv(:) = 0.d0
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -185,10 +185,10 @@ END_SHELL
|
|||||||
endif
|
endif
|
||||||
TOUCH dmc_zv_weight dmc_zv_weight_half
|
TOUCH dmc_zv_weight dmc_zv_weight_half
|
||||||
|
|
||||||
do i=1,pdmc_n_diag+1
|
! 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) = 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
|
! E_loc_zv(i+pdmc_n_diag+1) = pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight
|
||||||
enddo
|
! enddo
|
||||||
|
|
||||||
BEGIN_SHELL [ /usr/bin/python ]
|
BEGIN_SHELL [ /usr/bin/python ]
|
||||||
from properties import *
|
from properties import *
|
||||||
@ -304,22 +304,23 @@ for p in properties:
|
|||||||
print t.replace("$X",p[1])
|
print t.replace("$X",p[1])
|
||||||
END_SHELL
|
END_SHELL
|
||||||
|
|
||||||
H = 0.d0
|
! H(0,0) = H(3,3)
|
||||||
H(0,0) = E_loc_zv_pdmc_block_walk(1)
|
! H(1,0) = H(4,3)
|
||||||
H(1,0) = E_loc_zv_pdmc_block_walk(3)
|
! H(0,1) = H(3,4)
|
||||||
H(0,1) = E_loc_zv_pdmc_block_walk(3)
|
! H(1,1) = H(4,4)
|
||||||
H(1,1) = E_loc_zv_pdmc_block_walk(5)
|
! S(0,0) = S(3,3)
|
||||||
|
! S(1,0) = S(4,3)
|
||||||
S = 0.d0
|
! S(0,1) = S(3,4)
|
||||||
S(0,0) = E_loc_zv_pdmc_block_walk(6)
|
! S(1,1) = S(4,4)
|
||||||
S(1,0) = E_loc_zv_pdmc_block_walk(8)
|
!
|
||||||
S(0,1) = E_loc_zv_pdmc_block_walk(8)
|
! print *, H(0,0)/S(0,0)
|
||||||
S(1,1) = E_loc_zv_pdmc_block_walk(10)
|
! print *, H(1,1)/S(1,1)
|
||||||
S(2,2) = 1.d0
|
! 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', 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)
|
! 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 )
|
deallocate ( elec_coord_tmp, psi_grad_psi_inv_save, psi_grad_psi_inv_save_tmp )
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user