From df7d5cd117b76ea7718b087d089bff565151e608 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Mon, 17 Sep 2018 15:15:25 +0200 Subject: [PATCH] Fixed multi-state efficiency --- plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f | 4 ++-- plugins/Generators_full/generators.irp.f | 3 +-- plugins/Selectors_full/selectors.irp.f | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f b/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f index 46fa2da7..aba1e587 100644 --- a/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f +++ b/plugins/Full_CI_ZMQ/pt2_stoch_routines.irp.f @@ -49,7 +49,7 @@ logical function testTeethBuilding(minF, N) allocate(tilde_w(N_det_generators), tilde_cW(0:N_det_generators)) do i=1,N_det_generators - tilde_w(i) = psi_coef_sorted_gen(i,pt2_stoch_istate)**2 + 1.d-20 + tilde_w(i) = psi_coef_sorted_gen(i,pt2_stoch_istate)**2 !+ 1.d-20 enddo double precision :: norm @@ -479,7 +479,7 @@ END_PROVIDER tilde_cW(0) = 0d0 do i=1,N_det_generators - tilde_w(i) = psi_coef_sorted_gen(i,pt2_stoch_istate)**2 + 1.d-20 + tilde_w(i) = psi_coef_sorted_gen(i,pt2_stoch_istate)**2 !+ 1.d-20 enddo double precision :: norm diff --git a/plugins/Generators_full/generators.irp.f b/plugins/Generators_full/generators.irp.f index b996d31b..dc1c7d77 100644 --- a/plugins/Generators_full/generators.irp.f +++ b/plugins/Generators_full/generators.irp.f @@ -13,8 +13,7 @@ BEGIN_PROVIDER [ integer, N_det_generators ] N_det_generators = N_det do i=1,N_det norm = norm - psi_average_norm_contrib_sorted(i) - if (psi_average_norm_contrib_sorted(i) == 0.d0) exit - if (norm < 1.d0 - threshold_generators) then + if (norm - 1.d-12 < 1.d0 - threshold_generators) then N_det_generators = i exit endif diff --git a/plugins/Selectors_full/selectors.irp.f b/plugins/Selectors_full/selectors.irp.f index f0d50c94..6e198353 100644 --- a/plugins/Selectors_full/selectors.irp.f +++ b/plugins/Selectors_full/selectors.irp.f @@ -13,8 +13,7 @@ BEGIN_PROVIDER [ integer, N_det_selectors] norm = 1.d0 do i=1,N_det norm = norm - psi_average_norm_contrib_sorted(i) - if (psi_average_norm_contrib_sorted(i) == 0.d0) exit - if (norm < 1.d0 - threshold_selectors) then + if (norm - 1.d-12 < 1.d0 - threshold_selectors) then N_det_selectors = i exit endif