10
1
mirror of https://gitlab.com/scemama/qmcchem.git synced 2024-12-22 12:23:30 +01:00

Fixed BeH with pseudos

This commit is contained in:
Anthony Scemama 2018-07-16 18:48:42 +02:00
parent 1e9b94374f
commit 3c0d404661

View File

@ -100,9 +100,7 @@ END_SHELL
block_weight = 0.d0 block_weight = 0.d0
real, external :: accep_rate real, external :: accep_rate
double precision :: delta, thr double precision :: delta
thr = 2.d0/time_step_sq
logical :: first_loop logical :: first_loop
first_loop = .True. first_loop = .True.
@ -160,6 +158,11 @@ END_SHELL
srmc_weight(i_walk) = 2.d0-dexp(dtime_step*delta) srmc_weight(i_walk) = 2.d0-dexp(dtime_step*delta)
endif endif
! Trick to avoid holes in DMC PES.
if (dabs(delta/E_ref) * time_step_sq > p ) then
srmc_weight(i_walk) = 1.d-1
endif
! if (accepted) then ! if (accepted) then
! ! Compute correction to past weights ! ! Compute correction to past weights
@ -186,7 +189,7 @@ END_SHELL
! endif ! endif
if ( (psi_value * psi_value_save(i_walk) >= 0.d0).and.(srmc_weight(i_walk) > 1.d-4) ) then if ( psi_value * psi_value_save(i_walk) >= 0.d0 ) then
elec_coord(elec_num+1,1) += p*time_step elec_coord(elec_num+1,1) += p*time_step
elec_coord(elec_num+1,2) = E_loc elec_coord(elec_num+1,2) = E_loc
elec_coord(elec_num+1,3) = srmc_weight(i_walk) * srmc_pop_weight_mult elec_coord(elec_num+1,3) = srmc_weight(i_walk) * srmc_pop_weight_mult
@ -261,6 +264,13 @@ END_SHELL
srmc_projection_step = 1 srmc_projection_step = 1
endif endif
if (srmc_pop_weight_mult > 1.d0/time_step_sq) then
srmc_pop_weight_mult = 1.d0
endif
if (srmc_pop_weight_mult < time_step_sq) then
srmc_pop_weight_mult = 1.d0
endif
! Eventually, recompute the weight of the population ! Eventually, recompute the weight of the population
if (srmc_projection_step == 1) then if (srmc_projection_step == 1) then
srmc_pop_weight_mult = 1.d0 srmc_pop_weight_mult = 1.d0