diff --git a/src/PROPERTIES/properties_energy.irp.f b/src/PROPERTIES/properties_energy.irp.f index 56a91e6..9c63d8c 100644 --- a/src/PROPERTIES/properties_energy.irp.f +++ b/src/PROPERTIES/properties_energy.irp.f @@ -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)