From cbb8d4aa6dce42fe8c41d9f9f85596b3c0b4e144 Mon Sep 17 00:00:00 2001 From: Emmanuel Giner Date: Mon, 13 Sep 2021 14:38:00 +0200 Subject: [PATCH] added the possibility to have a pure active space interaction --- src/basis_correction/print_routine.irp.f | 2 +- src/mu_of_r/EZFIO.cfg | 2 +- src/mu_of_r/basis_def.irp.f | 18 ++++++++++++++---- src/mu_of_r/mu_of_r_conditions.irp.f | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/basis_correction/print_routine.irp.f b/src/basis_correction/print_routine.irp.f index 05fbbf60..67c5c6c2 100644 --- a/src/basis_correction/print_routine.irp.f +++ b/src/basis_correction/print_routine.irp.f @@ -38,7 +38,7 @@ subroutine print_basis_correction write(*, '(A29,X,I3,X,A3,X,F16.10)') ' ECMD PBE-UEG , state ',istate,' = ',ecmd_pbe_ueg_mu_of_r(istate) enddo - else if(mu_of_r_potential.EQ."cas_ful")then + else if(mu_of_r_potential.EQ."cas_ful".or.mu_of_r_potential.EQ."cas_truncated".or.mu_of_r_potential.EQ."pure_act")then print*, '' print*,'Using a CAS-like two-body density to define mu(r)' print*,'This assumes that the CAS is a qualitative representation of the wave function ' diff --git a/src/mu_of_r/EZFIO.cfg b/src/mu_of_r/EZFIO.cfg index 5677b3ab..c774ec82 100644 --- a/src/mu_of_r/EZFIO.cfg +++ b/src/mu_of_r/EZFIO.cfg @@ -6,7 +6,7 @@ size: (becke_numerical_grid.n_points_final_grid,determinants.n_states) [mu_of_r_potential] type: character*(32) -doc: type of potential for the mu(r) interaction: can be [ hf| cas_ful | cas_truncated] +doc: type of potential for the mu(r) interaction: can be [ hf| cas_ful | cas_truncated | pure_act] interface: ezfio, provider, ocaml default: hf diff --git a/src/mu_of_r/basis_def.irp.f b/src/mu_of_r/basis_def.irp.f index 4da27cb0..fff9f581 100644 --- a/src/mu_of_r/basis_def.irp.f +++ b/src/mu_of_r/basis_def.irp.f @@ -76,7 +76,11 @@ BEGIN_PROVIDER [integer, n_basis_orb] ! ! It corresponds to all MOs except those defined as "deleted" END_DOC - n_basis_orb = n_all_but_del_orb + if(mu_of_r_potential == "pure_act")then + n_basis_orb = n_act_orb + else + n_basis_orb = n_all_but_del_orb + endif END_PROVIDER BEGIN_PROVIDER [integer, list_basis, (n_basis_orb)] @@ -89,9 +93,15 @@ BEGIN_PROVIDER [integer, list_basis, (n_basis_orb)] ! It corresponds to all MOs except those defined as "deleted" END_DOC integer :: i - do i = 1, n_all_but_del_orb - list_basis(i) = list_all_but_del_orb(i) - enddo + if(mu_of_r_potential == "pure_act")then + do i = 1, n_act_orb + list_basis(i) = list_act(i) + enddo + else + do i = 1, n_all_but_del_orb + list_basis(i) = list_all_but_del_orb(i) + enddo + endif END_PROVIDER BEGIN_PROVIDER [double precision, basis_mos_in_r_array, (n_basis_orb,n_points_final_grid)] diff --git a/src/mu_of_r/mu_of_r_conditions.irp.f b/src/mu_of_r/mu_of_r_conditions.irp.f index 148c65b3..5c41acdc 100644 --- a/src/mu_of_r/mu_of_r_conditions.irp.f +++ b/src/mu_of_r/mu_of_r_conditions.irp.f @@ -26,7 +26,7 @@ do ipoint = 1, n_points_final_grid if(mu_of_r_potential.EQ."hf")then mu_of_r_prov(ipoint,istate) = mu_of_r_hf(ipoint) - else if(mu_of_r_potential.EQ."cas_ful".or.mu_of_r_potential.EQ."cas_truncated")then + else if(mu_of_r_potential.EQ."cas_ful".or.mu_of_r_potential.EQ."cas_truncated".or.mu_of_r_potential.EQ."pure_act")then mu_of_r_prov(ipoint,istate) = mu_of_r_psi_cas(ipoint,istate) else print*,'you requested the following mu_of_r_potential'