diff --git a/plugins/MRCC_CASSD/mrcc_noiter.irp.f b/plugins/MRCC_CASSD/mrcc_noiter.irp.f index 949a0dab..d36bedef 100644 --- a/plugins/MRCC_CASSD/mrcc_noiter.irp.f +++ b/plugins/MRCC_CASSD/mrcc_noiter.irp.f @@ -1,7 +1,8 @@ program mrcc_noiter implicit none read_wf = .True. - SOFT_TOUCH read_wf + threshold_generators = .9999d0 + SOFT_TOUCH read_wf threshold_generators call print_cas_coefs call set_generators_bitmasks_as_holes_and_particles call run diff --git a/plugins/MRCC_Utils/mrcc_utils.irp.f b/plugins/MRCC_Utils/mrcc_utils.irp.f index 25e6af77..d83dc239 100644 --- a/plugins/MRCC_Utils/mrcc_utils.irp.f +++ b/plugins/MRCC_Utils/mrcc_utils.irp.f @@ -12,7 +12,7 @@ BEGIN_PROVIDER [ double precision, lambda_mrcc, (N_states,psi_det_size) ] lambda_mrcc = 0.d0 do i=1,N_det_non_ref - call i_h_psi(psi_non_ref(1,1,i), psi_ref, psi_ref_coef, N_int, N_det_ref,& + call i_h_psi(psi_non_ref(1,1,i), psi_ref, psi_ref_coef_normalized, N_int, N_det_ref,& size(psi_ref_coef,1), N_states,ihpsi_current) call i_H_j(psi_non_ref(1,1,i),psi_non_ref(1,1,i),N_int,hii) do k=1,N_states @@ -21,8 +21,7 @@ BEGIN_PROVIDER [ double precision, lambda_mrcc, (N_states,psi_det_size) ] endif lambda_mrcc(k,i) = min(0.d0,psi_non_ref_coef(i,k)/ihpsi_current(k) ) lambda_pert = 1.d0 / (psi_ref_energy_diagonalized(k)-hii) - if ((lambda_pert < 0.5d0 * lambda_mrcc(k,i)).or. & - (lambda_pert > 2.0d0 * lambda_mrcc(k,i)) ) then + if (lambda_pert / lambda_mrcc(k,i) < 0.5d0) then i_pert_count += 1 lambda_mrcc(k,i) = 0.d0 endif diff --git a/plugins/Psiref_CAS/psi_ref.irp.f b/plugins/Psiref_CAS/psi_ref.irp.f index d3dbda08..c7b9867f 100644 --- a/plugins/Psiref_CAS/psi_ref.irp.f +++ b/plugins/Psiref_CAS/psi_ref.irp.f @@ -23,7 +23,21 @@ use bitmasks psi_ref_coef(i,k) = psi_cas_coef(i,k) enddo enddo - call normalize(psi_ref_coef, N_det_ref) + +END_PROVIDER + +BEGIN_PROVIDER [ double precision, psi_ref_coef_normalized, (psi_det_size,n_states) ] + implicit none + BEGIN_DOC +! Normalized coefficients of the reference + END_DOC + integer :: i,j,k + do k=1,N_states + do j=1,N_det_ref + psi_ref_coef_normalized(j,k) = psi_ref_coef(j,k) + enddo + call normalize(psi_ref_coef_normalized(1,k), N_det_ref) + enddo END_PROVIDER