From dc42b639aff512c1fdab2e40e301bb864ef1737b Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 28 Jan 2022 20:50:10 +0100 Subject: [PATCH] Minor changes --- bin/qp_plugins | 5 ++++- etc/qp.rc | 3 +++ scripts/module/module_handler.py | 1 + src/csf/conversion.irp.f | 21 ++++++++++++++++++++- src/csf/sigma_vector.irp.f | 4 ++-- src/determinants/spindeterminants.irp.f | 2 +- 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/bin/qp_plugins b/bin/qp_plugins index ef0f5a45..c9158422 100755 --- a/bin/qp_plugins +++ b/bin/qp_plugins @@ -6,6 +6,7 @@ Usage: qp_plugins download [-n ] qp_plugins install ... qp_plugins uninstall + qp_plugins remove qp_plugins update [-r ] qp_plugins create -n [-r ] [...] @@ -24,6 +25,8 @@ Options: uninstall Uninstall a plugin + remove Uninstall a plugin + update Update the repository create @@ -274,7 +277,7 @@ def main(arguments): subprocess.check_call(["qp_create_ninja", "update"]) print("[ OK ]") - elif arguments["uninstall"]: + elif arguments["uninstall"] or arguments["remove"]: m_instance = ModuleHandler([QP_SRC]) d_descendant = m_instance.dict_descendant diff --git a/etc/qp.rc b/etc/qp.rc index 7661aadf..c56661c7 100644 --- a/etc/qp.rc +++ b/etc/qp.rc @@ -204,6 +204,9 @@ _qp_Complete() uninstall) COMPREPLY=( $(compgen -W "$(qp_plugins list -i)" -- $cur ) ) return 0;; + remove) + COMPREPLY=( $(compgen -W "$(qp_plugins list -i)" -- $cur ) ) + return 0;; create) COMPREPLY=( $(compgen -W "-n " -- $cur ) ) return 0;; diff --git a/scripts/module/module_handler.py b/scripts/module/module_handler.py index d66918e2..6dd74f34 100755 --- a/scripts/module/module_handler.py +++ b/scripts/module/module_handler.py @@ -116,6 +116,7 @@ def get_l_module_descendant(d_child, l_module): print("Error: ", file=sys.stderr) print("`{0}` is not a submodule".format(module), file=sys.stderr) print("Check the typo (spelling, case, '/', etc.) ", file=sys.stderr) +# pass sys.exit(1) return list(set(l)) diff --git a/src/csf/conversion.irp.f b/src/csf/conversion.irp.f index c8bc9199..b52b766d 100644 --- a/src/csf/conversion.irp.f +++ b/src/csf/conversion.irp.f @@ -38,6 +38,8 @@ subroutine convertWFfromDETtoCSF(N_st,psi_coef_det_in, psi_coef_cfg_out) integer s, bfIcfg integer countcsf + integer MS + MS = elec_alpha_num-elec_beta_num countcsf = 0 phasedet = 1.0d0 do i = 1,N_configuration @@ -61,7 +63,24 @@ subroutine convertWFfromDETtoCSF(N_st,psi_coef_det_in, psi_coef_cfg_out) if (psi_configuration(k,1,i) == 0_bit_kind) cycle s = s + popcnt(psi_configuration(k,1,i)) enddo - bfIcfg = max(1,nint((binom(s,(s+1)/2)-binom(s,((s+1)/2)+1)))) + + ! Test 1 +! if(iand(MS,1) .EQ. 0) then +! bfIcfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) +! else +! bfIcfg = max(1,nint((binom(s,(s+1)/2)-binom(s,((s+1)/2)+1)))) +! endif + +! Test 2 +! double precision :: binom1, binom2 +! double precision, external :: logabsgamma +! binom1 = dexp(logabsgamma(1.0d0*(s+1)) & +! - logabsgamma(1.0d0*(((s+1)/2)+1)) & +! - logabsgamma(1.0d0*(s-(((s+1)/2))+1))); +! binom2 = dexp(logabsgamma(1.0d0*(s+1)) & +! - logabsgamma(1.0d0*((((s+3)/2)+1)+1)) & +! - logabsgamma(1.0d0*(s-(((s+3)/2)+1)+1))); +! bfIcfg = max(1,nint(binom1 - binom2)) ! perhaps blocking with CFGs of same seniority ! can be more efficient diff --git a/src/csf/sigma_vector.irp.f b/src/csf/sigma_vector.irp.f index 0d24ae57..7286e91e 100644 --- a/src/csf/sigma_vector.irp.f +++ b/src/csf/sigma_vector.irp.f @@ -65,7 +65,7 @@ dimcsfpercfg = 2 else if(iand(MS,1) .EQ. 0) then - !dimcsfpercfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) +! dimcsfpercfg = max(1,nint((binom(i,i/2)-binom(i,i/2+1)))) binom1 = dexp(logabsgamma(1.0d0*(i+1)) & - logabsgamma(1.0d0*((i/2)+1)) & - logabsgamma(1.0d0*(i-((i/2))+1))); @@ -74,7 +74,7 @@ - logabsgamma(1.0d0*(i-((i/2)+1)+1))); dimcsfpercfg = max(1,nint(binom1 - binom2)) else - !dimcsfpercfg = max(1,nint((binom(i,(i+1)/2)-binom(i,(i+3)/2)))) +! dimcsfpercfg = max(1,nint((binom(i,(i+1)/2)-binom(i,(i+3)/2)))) binom1 = dexp(logabsgamma(1.0d0*(i+1)) & - logabsgamma(1.0d0*(((i+1)/2)+1)) & - logabsgamma(1.0d0*(i-(((i+1)/2))+1))); diff --git a/src/determinants/spindeterminants.irp.f b/src/determinants/spindeterminants.irp.f index dea4a566..dd55e112 100644 --- a/src/determinants/spindeterminants.irp.f +++ b/src/determinants/spindeterminants.irp.f @@ -585,7 +585,7 @@ END_PROVIDER enddo !$OMP ENDDO !$OMP END PARALLEL - call i8radix_sort(to_sort, psi_bilinear_matrix_transp_order, N_det,-1) + call i8sort(to_sort, psi_bilinear_matrix_transp_order, N_det) call iset_order(psi_bilinear_matrix_transp_rows,psi_bilinear_matrix_transp_order,N_det) call iset_order(psi_bilinear_matrix_transp_columns,psi_bilinear_matrix_transp_order,N_det) !$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(l)