New scheme for pseudo explosion

This commit is contained in:
Anthony Scemama 2021-05-14 14:03:34 +02:00
parent 2a68a494c4
commit 8ac9bcb963
1 changed files with 3 additions and 5 deletions

View File

@ -252,12 +252,10 @@ BEGIN_PROVIDER [ double precision, E_loc ]
enddo
! Avoid divergence of E_loc and population explosion
if (do_pseudo) then
if (do_pseudo .and. qmc_method == 'DMC' ) then
double precision :: delta_e
! delta_e = E_loc-E_ref
! E_loc = E_ref + erf(delta_e*time_step_sq)/time_step_sq
E_loc = max(2.d0*E_ref, E_loc)
! continue
delta_e = E_loc-E_ref
E_loc = E_ref + delta_e * dexp(-dabs(delta_e)*time_step_sq)
endif
E_loc_min = min(E_loc,E_loc_min)
E_loc_max = max(E_loc,E_loc_max)