diff --git a/.gitignore b/.gitignore index bc1d7d13..9d79d718 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,8 @@ quantum_package.rc -EZFIO/ -irpf90/ -EMSL_Basis/ -ninja/ -bin/ -*.log quantum_package_static.tar.gz -resultsFile -opam_installer.sh -*.mod -*.p build.ninja .ninja_log -.ninja_deps \ No newline at end of file +.ninja_deps +bin/ +lib/ +config/qp_create_ninja.pickle \ No newline at end of file diff --git a/README.md b/README.md index 217ff776..8a43f486 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,8 @@ Optional: size: The size information. (by default is one) Example : 1, =sum(ao_num); (ao_num,3) + ATTENTION : The module and the value are separed by a "." not a "_". + For exemple (determinants.n_det) ezfio_name: The name for the EZFIO lib (by default is ) ezfio_dir: Will be the folder of EZFIO. diff --git a/config/ifort.cfg b/config/ifort.cfg index e1a0dadf..647ec77e 100644 --- a/config/ifort.cfg +++ b/config/ifort.cfg @@ -57,6 +57,6 @@ FCFLAGS : -xSSE2 -C -fpe0 ################# # [OPENMP] -FC : -fopenmp +FC : -openmp IRPF90_FLAGS : --openmp diff --git a/configure b/configure index b810f600..e6e58a60 100755 --- a/configure +++ b/configure @@ -158,7 +158,7 @@ def check_output(*popenargs, **kwargs): >>> check_output(['/usr/bin/python', '--version']) Python 2.6.2 """ - process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) + process = subprocess.Popen(stdout=subprocess.PIPE,stderr=subprocess.PIPE, *popenargs, **kwargs) output, unused_err = process.communicate() retcode = process.poll() if retcode: @@ -190,7 +190,7 @@ def checking(d_dependency): def check_availability(binary): """ - If avalabie return the path who can can't find the + If avalable return the path who can find the binary else return 0 """ @@ -198,7 +198,19 @@ def checking(d_dependency): check_python() try: - return check_output(["which", binary]) + a = check_output(["which", binary]) + + if binary == "irpf90": + version = check_output("irpf90 -v".split()).strip() + + from distutils.version import LooseVersion + if LooseVersion(version) < LooseVersion("1.6.7"): + return 0 + else: + return a + + return a + except subprocess.CalledProcessError: default_path = d_info[binary].default_path if os.path.exists(default_path): @@ -208,7 +220,7 @@ def checking(d_dependency): def get_list_descendant(d_dependency, l_installed, l_needed): """ - Descendant – a node reachable by repeated proceeding from parent to child. + Descendant : a node reachable by repeated proceeding from parent to child. """ d_need_genealogy = dict() @@ -265,7 +277,7 @@ def installation(l_install_descendant): def create_rule_ninja(): l_rules = [ - "rule download", " command = wget ${url} -O ${out} -o /dev/null", + "rule download", " command = wget --no-check-certificate ${url} -O ${out} -o /dev/null", " description = Downloading ${descr}", "" ] @@ -423,8 +435,8 @@ def create_ninja_and_rc(l_installed): 'export IRPF90={0}'.format(find_path("irpf90", l_installed)), 'export NINJA={0}'.format(find_path("ninja", l_installed)), 'export QP_PYTHON={0}'.format(":".join(l_python)), "", - 'export PYTHONPATH="${PYTHONPATH}":"${QP_PYTHON}"', - 'export PATH="${PATH}":"${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROOT}"/ocaml', + 'export PYTHONPATH="${QP_PYTHON}":"${PYTHONPATH}"', + 'export PATH="${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROOT}"/ocaml:"${PATH}"', 'export LD_LIBRARY_PATH="${QP_ROOT}"/lib:"${LD_LIBRARY_PATH}"', 'export LIBRARY_PATH="${QP_ROOT}"/lib:"${LIBRARY_PATH}"', "" 'source ${HOME}/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true', diff --git a/install/.gitignore b/install/.gitignore new file mode 100644 index 00000000..60fbede4 --- /dev/null +++ b/install/.gitignore @@ -0,0 +1,10 @@ +config/qp_create_ninja.pickle +Downloads +_build +docopt +emsl +EZFIO +irpf90 +resultsFile +zlib +build.ninja \ No newline at end of file diff --git a/install/scripts/check_irp_version.sh b/install/scripts/check_irp_version.sh new file mode 100755 index 00000000..245a15d9 --- /dev/null +++ b/install/scripts/check_irp_version.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# This script should be included + +# pro: +# +# solid way to compare fancy version strings: +# support any length of sub-parts (ie: 1.3alpha.2.dev2 > 1.1 ?) +# support alpha-betical sort (ie: 1.alpha < 1.beta2) +# support big size version (ie: 1.10003939209329320932 > 1.2039209378273789273 ?) +# can easily be modified to support n arguments. (leaved as an exercise ;) ) +# usually very usefull with 3 arguments: (ie: 1.2 < my_version < 2.7 ) +# cons: +# +# uses a lot of various calls to different programs. So it's not that efficient. +# uses a pretty recent version of sort and it might not be available on your system. (check with man sort) + +function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | tail -n 1)" == "$1"; } + +irp_cur_version=`irpf90 -v` +irp_need_version=1.6.7 + +if version_gt $irp_cur_version $irp_need_version; then + echo "OK" +fi +echo "FAIL" \ No newline at end of file diff --git a/install/scripts/install_irpf90.sh b/install/scripts/install_irpf90.sh index 60bcf6dc..62de9417 100755 --- a/install/scripts/install_irpf90.sh +++ b/install/scripts/install_irpf90.sh @@ -13,8 +13,16 @@ function _install() [[ -x ./irpf90/bin/irpf90 ]] || return 1 [[ -x ./irpf90/bin/irpman ]] || return 1 rm -rf -- ../bin/irpf90 ../bin/irpman - echo 'exec ${QP_ROOT}/install/irpf90/bin/irpf90 $@' > ../bin/irpf90 || return 1 - echo 'exec ${QP_ROOT}/install/irpf90/bin/irpman $@' > ../bin/irpman || return 1 + cat << EOF > ../bin/irpf90 || return 1 +#!/bin/bash +exec \${QP_ROOT}/install/irpf90/bin/irpf90 \$@ +EOF + + + cat << EOF > ../bin/irpman || return 1 +#!/bin/bash +exec \${QP_ROOT}/install/irpf90/bin/irpman \$@ +EOF chmod +x ../bin/irpf90 ../bin/irpman || return 1 return 0 } diff --git a/plugins/Hartree_Fock/test b/plugins/All_singles/ASSUMPTIONS.rst similarity index 100% rename from plugins/Hartree_Fock/test rename to plugins/All_singles/ASSUMPTIONS.rst diff --git a/plugins/All_singles/README.rst b/plugins/All_singles/README.rst new file mode 100644 index 00000000..24abb1ae --- /dev/null +++ b/plugins/All_singles/README.rst @@ -0,0 +1,4 @@ +================== +All_singles Module +================== + diff --git a/plugins/CAS_SD/.gitignore b/plugins/CAS_SD/.gitignore index 7f8eb5f0..ed6b1e0b 100644 --- a/plugins/CAS_SD/.gitignore +++ b/plugins/CAS_SD/.gitignore @@ -1,32 +1,31 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Generators_CAS -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock +ezfio_interface.irp.f +Ezfio_files Perturbation Determinants -Electrons Utils -Properties -Nuclei +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +Pseudo +Bitmask +Generators_CAS +AO_Basis +Electrons MOGuess -Ezfio_files +Nuclei +Hartree_Fock +Properties cas_sd_selected -cas_sd +cas_sd \ No newline at end of file diff --git a/plugins/CAS_SD/README.rst b/plugins/CAS_SD/README.rst index f0fbbd17..92a4572b 100644 --- a/plugins/CAS_SD/README.rst +++ b/plugins/CAS_SD/README.rst @@ -34,24 +34,24 @@ Documentation Assume N_int is already provided. -`h_apply_cas_sd_pt2 `_ +`h_apply_cas_sd_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cas_sd_pt2_diexc `_ +`h_apply_cas_sd_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_pt2_monoexc `_ +`h_apply_cas_sd_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cas_sd_selected `_ +`h_apply_cas_sd_selected `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. @@ -62,7 +62,7 @@ Documentation Assume N_int is already provided. -`h_apply_cas_sd_selected_monoexc `_ +`h_apply_cas_sd_selected_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/CAS_SD/tree_dependency.png b/plugins/CAS_SD/tree_dependency.png index 305aff05..6dd95cc4 100644 Binary files a/plugins/CAS_SD/tree_dependency.png and b/plugins/CAS_SD/tree_dependency.png differ diff --git a/plugins/CID/.gitignore b/plugins/CID/.gitignore index 2baec9eb..638efebf 100644 --- a/plugins/CID/.gitignore +++ b/plugins/CID/.gitignore @@ -1,30 +1,29 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock -Determinants -Electrons -Utils -Nuclei -MOGuess -SingleRefMethod +ezfio_interface.irp.f Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Selectors_full +Utils +Pseudo +AO_Basis +Bitmask +SingleRefMethod +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec cid -cid_lapack +cid_lapack \ No newline at end of file diff --git a/plugins/CID/H_apply.irp.f b/plugins/CID/H_apply.irp.f index 6a1bb536..41584070 100644 --- a/plugins/CID/H_apply.irp.f +++ b/plugins/CID/H_apply.irp.f @@ -1,9 +1,9 @@ -! Generates subroutine H_apply_cisd +! Generates subroutine H_apply_cid ! ---------------------------------- BEGIN_SHELL [ /usr/bin/env python ] from generate_h_apply import H_apply -H = H_apply("cisd",do_double_exc=True,do_mono_exc=False) +H = H_apply("cid",do_double_exc=True,do_mono_exc=False) print H END_SHELL diff --git a/plugins/CID/README.rst b/plugins/CID/README.rst index 326546f5..f6c930d0 100644 --- a/plugins/CID/README.rst +++ b/plugins/CID/README.rst @@ -1,7 +1,7 @@ -CISD +CID ==== -This is a test directory which builds a CISD by setting the follwoing rules: +This is a test directory which builds a CID by setting the follwoing rules: * The only generator determinant is the Hartee-Fock (single-reference method) * All generated determinants are included in the wave function (no perturbative @@ -26,22 +26,179 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`cisd `_ +`cid `_ Undocumented -`h_apply_cisd `_ +`h_apply_cid `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_diexc `_ +`h_apply_cid_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_monoexc `_ +`h_apply_cid_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection `_ + Undocumented + + +`h_apply_cisd_selection_delta_rho_one_point `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_delta_rho_one_point_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_delta_rho_one_point_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_dipole_moment_z_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_h_core_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_moller_plesset_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/CID/cid.irp.f b/plugins/CID/cid.irp.f index 0b6bc9fd..313b0059 100644 --- a/plugins/CID/cid.irp.f +++ b/plugins/CID/cid.irp.f @@ -1,4 +1,4 @@ -program cisd +program cid implicit none integer :: i @@ -6,7 +6,7 @@ program cisd print *, 'N_states = ', N_states N_det = 1 touch psi_det psi_coef N_det - call H_apply_cisd + call H_apply_cid print *, 'N_det = ', N_det do i = 1,N_states print *, 'energy = ',CI_energy(i) diff --git a/plugins/CID/cid_lapack.irp.f b/plugins/CID/cid_lapack.irp.f index 374dc9c2..0aa80f0a 100644 --- a/plugins/CID/cid_lapack.irp.f +++ b/plugins/CID/cid_lapack.irp.f @@ -1,4 +1,4 @@ -program cisd +program cid implicit none integer :: i @@ -6,7 +6,7 @@ program cisd touch diag_algorithm print *, 'HF = ', HF_energy print *, 'N_states = ', N_states - call H_apply_cisd + call H_apply_cid print *, 'N_det = ', N_det do i = 1,N_states print *, 'energy = ',CI_energy(i) diff --git a/plugins/CID/tree_dependency.png b/plugins/CID/tree_dependency.png index 90c80d49..64876dcb 100644 Binary files a/plugins/CID/tree_dependency.png and b/plugins/CID/tree_dependency.png differ diff --git a/plugins/CID_SC2_selected/.gitignore b/plugins/CID_SC2_selected/.gitignore index 6e8f2ab1..c030dc88 100644 --- a/plugins/CID_SC2_selected/.gitignore +++ b/plugins/CID_SC2_selected/.gitignore @@ -1,35 +1,32 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -CID_selected -Pseudo -Integrals_Monoelec -Bitmask -CID -Integrals_Bielec -CISD_selected -AOs -Selectors_full -MOs -Hartree_Fock -Perturbation -CISD -Determinants -Electrons -Utils -Properties -Nuclei -MOGuess -SingleRefMethod +ezfio_interface.irp.f Ezfio_files -cid_sc2_selection +Perturbation +Determinants +Integrals_Monoelec +MO_Basis +Selectors_full +SingleRefMethod +Utils +CID +Pseudo +Properties +Bitmask +AO_Basis +Electrons +MOGuess +CID_selected +Nuclei +Hartree_Fock +Integrals_Bielec +cid_sc2_selection \ No newline at end of file diff --git a/plugins/CID_SC2_selected/tree_dependency.png b/plugins/CID_SC2_selected/tree_dependency.png index 84d5c5ac..b42aa4bf 100644 Binary files a/plugins/CID_SC2_selected/tree_dependency.png and b/plugins/CID_SC2_selected/tree_dependency.png differ diff --git a/plugins/CID_selected/.gitignore b/plugins/CID_selected/.gitignore index 7b859906..9a0bd11e 100644 --- a/plugins/CID_selected/.gitignore +++ b/plugins/CID_selected/.gitignore @@ -1,33 +1,31 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -CID -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock -Perturbation -CISD -Determinants -Electrons -Utils -Properties -Nuclei -MOGuess -SingleRefMethod +ezfio_interface.irp.f Ezfio_files -cid_selection +Perturbation +Determinants +Utils +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +CID +Pseudo +AO_Basis +Bitmask +SingleRefMethod +Electrons +MOGuess +Nuclei +Hartree_Fock +Properties +cid_selection \ No newline at end of file diff --git a/plugins/CID_selected/README.rst b/plugins/CID_selected/README.rst index ad309857..9cc3dd33 100644 --- a/plugins/CID_selected/README.rst +++ b/plugins/CID_selected/README.rst @@ -8,10 +8,6 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`cisd `_ - Undocumented - - `h_apply_cisd_selection `_ Undocumented diff --git a/plugins/CID_selected/tree_dependency.png b/plugins/CID_selected/tree_dependency.png index 656584c7..753ae2eb 100644 Binary files a/plugins/CID_selected/tree_dependency.png and b/plugins/CID_selected/tree_dependency.png differ diff --git a/plugins/CIS/.gitignore b/plugins/CIS/.gitignore index cb171efd..eb36f1dc 100644 --- a/plugins/CIS/.gitignore +++ b/plugins/CIS/.gitignore @@ -1,30 +1,29 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock -Determinants -Electrons -Utils -Nuclei -MOGuess -SingleRefMethod +ezfio_interface.irp.f Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Selectors_full +Utils +Pseudo +AO_Basis +Bitmask +SingleRefMethod +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec super_ci -cis +cis \ No newline at end of file diff --git a/plugins/CIS/tree_dependency.png b/plugins/CIS/tree_dependency.png index 272b44c0..36856095 100644 Binary files a/plugins/CIS/tree_dependency.png and b/plugins/CIS/tree_dependency.png differ diff --git a/plugins/CISD/.gitignore b/plugins/CISD/.gitignore index 31d392bd..1a10284f 100644 --- a/plugins/CISD/.gitignore +++ b/plugins/CISD/.gitignore @@ -1,30 +1,29 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock -Determinants -Electrons -Utils -Nuclei -MOGuess -SingleRefMethod +ezfio_interface.irp.f Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Selectors_full +Utils +Pseudo +AO_Basis +Bitmask +SingleRefMethod +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec cisd_lapack -cisd +cisd \ No newline at end of file diff --git a/plugins/CISD/README.rst b/plugins/CISD/README.rst index 412f0aad..881509a3 100644 --- a/plugins/CISD/README.rst +++ b/plugins/CISD/README.rst @@ -26,10 +26,6 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`cisd `_ - Undocumented - - `h_apply_cisd `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. @@ -46,3 +42,160 @@ Documentation particles. Assume N_int is already provided. + +`h_apply_cisd_selection `_ + Undocumented + + +`h_apply_cisd_selection_delta_rho_one_point `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_delta_rho_one_point_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_delta_rho_one_point_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_dipole_moment_z_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_dipole_moment_z_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_2x2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2 `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_h_core_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_h_core_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset `_ + Calls H_apply on the HF determinant and selects all connected single and double + excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. + + +`h_apply_cisd_selection_moller_plesset_diexc `_ + Generate all double excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + + +`h_apply_cisd_selection_moller_plesset_monoexc `_ + Generate all single excitations of key_in using the bit masks of holes and + particles. + Assume N_int is already provided. + diff --git a/plugins/CISD/tree_dependency.png b/plugins/CISD/tree_dependency.png index 552a4152..fe371494 100644 Binary files a/plugins/CISD/tree_dependency.png and b/plugins/CISD/tree_dependency.png differ diff --git a/plugins/CISD_SC2_selected/README.rst b/plugins/CISD_SC2_selected/README.rst index 307063a6..a9edfd18 100644 --- a/plugins/CISD_SC2_selected/README.rst +++ b/plugins/CISD_SC2_selected/README.rst @@ -12,41 +12,41 @@ Documentation Undocumented -`h_apply_pt2 `_ +`h_apply_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_diexc `_ +`h_apply_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_en_sc2 `_ +`h_apply_pt2_en_sc2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_en_sc2_diexc `_ +`h_apply_pt2_en_sc2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_en_sc2_monoexc `_ +`h_apply_pt2_en_sc2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_monoexc `_ +`h_apply_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_sc2_selected `_ +`h_apply_sc2_selected `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. @@ -57,7 +57,7 @@ Documentation Assume N_int is already provided. -`h_apply_sc2_selected_monoexc `_ +`h_apply_sc2_selected_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/CISD_selected/README.rst b/plugins/CISD_selected/README.rst index 230df80c..3dc6c637 100644 --- a/plugins/CISD_selected/README.rst +++ b/plugins/CISD_selected/README.rst @@ -8,162 +8,158 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`cisd `_ - Undocumented - - `h_apply_cisd_selection `_ Undocumented -`h_apply_cisd_selection_delta_rho_one_point `_ +`h_apply_cisd_selection_delta_rho_one_point `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_delta_rho_one_point_diexc `_ +`h_apply_cisd_selection_delta_rho_one_point_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_delta_rho_one_point_monoexc `_ +`h_apply_cisd_selection_delta_rho_one_point_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_dipole_moment_z `_ +`h_apply_cisd_selection_dipole_moment_z `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_dipole_moment_z_diexc `_ +`h_apply_cisd_selection_dipole_moment_z_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_dipole_moment_z_monoexc `_ +`h_apply_cisd_selection_dipole_moment_z_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet `_ +`h_apply_cisd_selection_epstein_nesbet `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_epstein_nesbet_2x2 `_ +`h_apply_cisd_selection_epstein_nesbet_2x2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_epstein_nesbet_2x2_diexc `_ +`h_apply_cisd_selection_epstein_nesbet_2x2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_2x2_monoexc `_ +`h_apply_cisd_selection_epstein_nesbet_2x2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_diexc `_ +`h_apply_cisd_selection_epstein_nesbet_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_monoexc `_ +`h_apply_cisd_selection_epstein_nesbet_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2 `_ +`h_apply_cisd_selection_epstein_nesbet_sc2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_epstein_nesbet_sc2_diexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2_monoexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_diexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_monoexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_no_projected_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2_projected `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_projected `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_epstein_nesbet_sc2_projected_diexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_epstein_nesbet_sc2_projected_monoexc `_ +`h_apply_cisd_selection_epstein_nesbet_sc2_projected_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_h_core `_ +`h_apply_cisd_selection_h_core `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_h_core_diexc `_ +`h_apply_cisd_selection_h_core_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_h_core_monoexc `_ +`h_apply_cisd_selection_h_core_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_moller_plesset `_ +`h_apply_cisd_selection_moller_plesset `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_cisd_selection_moller_plesset_diexc `_ +`h_apply_cisd_selection_moller_plesset_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_cisd_selection_moller_plesset_monoexc `_ +`h_apply_cisd_selection_moller_plesset_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/DDCI_selected/.gitignore b/plugins/DDCI_selected/.gitignore index ec84a605..22fb64a1 100644 --- a/plugins/DDCI_selected/.gitignore +++ b/plugins/DDCI_selected/.gitignore @@ -1,31 +1,30 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Generators_CAS -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock +ezfio_interface.irp.f +Ezfio_files Perturbation Determinants -Electrons Utils -Properties -Nuclei +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +Pseudo +Bitmask +Generators_CAS +AO_Basis +Electrons MOGuess -Ezfio_files -ddci +Nuclei +Hartree_Fock +Properties +ddci \ No newline at end of file diff --git a/plugins/DDCI_selected/README.rst b/plugins/DDCI_selected/README.rst index 471ebd21..0e5b3be1 100644 --- a/plugins/DDCI_selected/README.rst +++ b/plugins/DDCI_selected/README.rst @@ -12,24 +12,24 @@ Documentation Undocumented -`h_apply_ddci_pt2 `_ +`h_apply_ddci_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_ddci_pt2_diexc `_ +`h_apply_ddci_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_ddci_pt2_monoexc `_ +`h_apply_ddci_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_ddci_selection `_ +`h_apply_ddci_selection `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. @@ -40,7 +40,7 @@ Documentation Assume N_int is already provided. -`h_apply_ddci_selection_monoexc `_ +`h_apply_ddci_selection_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/DDCI_selected/tree_dependency.png b/plugins/DDCI_selected/tree_dependency.png index 42b19ddb..6cfc1811 100644 Binary files a/plugins/DDCI_selected/tree_dependency.png and b/plugins/DDCI_selected/tree_dependency.png differ diff --git a/plugins/FCIdump/.gitignore b/plugins/FCIdump/.gitignore index a637734f..795f6850 100644 --- a/plugins/FCIdump/.gitignore +++ b/plugins/FCIdump/.gitignore @@ -1,25 +1,24 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -MOs -Determinants -Electrons -Utils -Nuclei +ezfio_interface.irp.f Ezfio_files -fcidump +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +Nuclei +Integrals_Bielec +fcidump \ No newline at end of file diff --git a/plugins/FCIdump/tree_dependency.png b/plugins/FCIdump/tree_dependency.png index f846368d..e99d0434 100644 Binary files a/plugins/FCIdump/tree_dependency.png and b/plugins/FCIdump/tree_dependency.png differ diff --git a/plugins/Full_CI/.gitignore b/plugins/Full_CI/.gitignore index df7eac39..5ebe1571 100644 --- a/plugins/Full_CI/.gitignore +++ b/plugins/Full_CI/.gitignore @@ -1,34 +1,33 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Generators_full -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock +ezfio_interface.irp.f +Ezfio_files Perturbation Determinants -Electrons Utils -Properties -Nuclei +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +Pseudo +Generators_full +Bitmask +AO_Basis +Electrons MOGuess -Ezfio_files +Nuclei +Hartree_Fock +Properties target_pt2 full_ci var_pt2_ratio -full_ci_no_skip +full_ci_no_skip \ No newline at end of file diff --git a/plugins/Full_CI/README.rst b/plugins/Full_CI/README.rst index 396fbcd6..64e44609 100644 --- a/plugins/Full_CI/README.rst +++ b/plugins/Full_CI/README.rst @@ -14,7 +14,7 @@ Documentation Undocumented -`h_apply_fci `_ +`h_apply_fci `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. @@ -25,126 +25,126 @@ Documentation Assume N_int is already provided. -`h_apply_fci_mono `_ +`h_apply_fci_mono `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_mono_diexc `_ +`h_apply_fci_mono_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_mono_monoexc `_ +`h_apply_fci_mono_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_monoexc `_ +`h_apply_fci_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_no_skip `_ +`h_apply_fci_no_skip `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_no_skip_diexc `_ +`h_apply_fci_no_skip_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_no_skip_monoexc `_ +`h_apply_fci_no_skip_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_pt2 `_ +`h_apply_fci_pt2 `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_fci_pt2_diexc `_ +`h_apply_fci_pt2_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_fci_pt2_monoexc `_ +`h_apply_fci_pt2_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_delta_rho `_ +`h_apply_pt2_mono_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_mono_delta_rho_diexc `_ +`h_apply_pt2_mono_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_delta_rho_monoexc `_ +`h_apply_pt2_mono_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_di_delta_rho `_ +`h_apply_pt2_mono_di_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_pt2_mono_di_delta_rho_diexc `_ +`h_apply_pt2_mono_di_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_pt2_mono_di_delta_rho_monoexc `_ +`h_apply_pt2_mono_di_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_delta_rho `_ +`h_apply_select_mono_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_select_mono_delta_rho_diexc `_ +`h_apply_select_mono_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_delta_rho_monoexc `_ +`h_apply_select_mono_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_di_delta_rho `_ +`h_apply_select_mono_di_delta_rho `_ Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script. -`h_apply_select_mono_di_delta_rho_diexc `_ +`h_apply_select_mono_di_delta_rho_diexc `_ Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. -`h_apply_select_mono_di_delta_rho_monoexc `_ +`h_apply_select_mono_di_delta_rho_monoexc `_ Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided. diff --git a/plugins/Full_CI/full_ci.irp.f b/plugins/Full_CI/full_ci.irp.f index e2a9700e..c7b8452d 100644 --- a/plugins/Full_CI/full_ci.irp.f +++ b/plugins/Full_CI/full_ci.irp.f @@ -28,6 +28,7 @@ program full_ci print *, '-----' endif double precision :: i_H_psi_array(N_states),diag_H_mat_elem,h,i_O1_psi_array(N_states) + double precision :: E_CI_before(N_states) if(read_wf)then call i_H_psi(psi_det(1,1,N_det),psi_det,psi_coef,N_int,N_det,psi_det_size,N_states,i_H_psi_array) h = diag_H_mat_elem(psi_det(1,1,N_det),N_int) @@ -38,6 +39,7 @@ program full_ci integer :: n_det_before print*,'Beginning the selection ...' + E_CI_before = CI_energy do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_st))) > pt2_max) n_det_before = N_det call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st) @@ -57,12 +59,13 @@ program full_ci if(n_det_before == N_det)then selection_criterion = selection_criterion * 0.5d0 endif - print *, 'N_det = ', N_det - print *, 'N_states = ', N_states - print *, 'PT2 = ', pt2 - print *, 'E = ', CI_energy - print *, 'E+PT2 = ', CI_energy+pt2 + print *, 'N_det = ', N_det + print *, 'N_states = ', N_states + print *, 'PT2 = ', pt2 + print *, 'E = ', CI_energy + print *, 'E(before)+PT2 = ', E_CI_before+pt2 print *, '-----' + E_CI_before = CI_energy call ezfio_set_full_ci_energy(CI_energy) if (abort_all) then exit diff --git a/plugins/Full_CI/full_ci_no_skip.irp.f b/plugins/Full_CI/full_ci_no_skip.irp.f index 73958bf9..c9b8d1a0 100644 --- a/plugins/Full_CI/full_ci_no_skip.irp.f +++ b/plugins/Full_CI/full_ci_no_skip.irp.f @@ -28,6 +28,7 @@ program full_ci print *, '-----' endif double precision :: i_H_psi_array(N_states),diag_H_mat_elem,h,i_O1_psi_array(N_states) + double precision :: E_CI_before(N_states) if(read_wf)then call i_H_psi(psi_det(1,1,N_det),psi_det,psi_coef,N_int,N_det,psi_det_size,N_states,i_H_psi_array) h = diag_H_mat_elem(psi_det(1,1,N_det),N_int) @@ -38,6 +39,7 @@ program full_ci integer :: n_det_before print*,'Beginning the selection ...' + E_CI_before = CI_energy do while (N_det < N_det_max.and.maxval(abs(pt2(1:N_st))) > pt2_max) n_det_before = N_det call H_apply_FCI_no_skip(pt2, norm_pert, H_pert_diag, N_st) @@ -61,8 +63,9 @@ program full_ci print *, 'N_states = ', N_states print *, 'PT2 = ', pt2 print *, 'E = ', CI_energy - print *, 'E+PT2 = ', CI_energy+pt2 + print *, 'E+PT2 = ', E_CI_before+pt2 print *, '-----' + E_CI_before = CI_energy call ezfio_set_full_ci_energy(CI_energy) if (abort_all) then exit @@ -73,6 +76,7 @@ program full_ci call diagonalize_CI if(do_pt2_end)then print*,'Last iteration only to compute the PT2' +! print*,'The thres' threshold_selectors = 1.d0 threshold_generators = 0.999d0 call H_apply_FCI_PT2(pt2, norm_pert, H_pert_diag, N_st) diff --git a/plugins/Full_CI/tree_dependency.png b/plugins/Full_CI/tree_dependency.png index 7696fea7..d9ccb24f 100644 Binary files a/plugins/Full_CI/tree_dependency.png and b/plugins/Full_CI/tree_dependency.png differ diff --git a/plugins/Generators_CAS/.gitignore b/plugins/Generators_CAS/.gitignore index 955ad80c..1b17a42a 100644 --- a/plugins/Generators_CAS/.gitignore +++ b/plugins/Generators_CAS/.gitignore @@ -1,13 +1,23 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +Nuclei +Integrals_Bielec \ No newline at end of file diff --git a/plugins/Generators_CAS/tree_dependency.png b/plugins/Generators_CAS/tree_dependency.png index 718f0a53..2f0b36b8 100644 Binary files a/plugins/Generators_CAS/tree_dependency.png and b/plugins/Generators_CAS/tree_dependency.png differ diff --git a/plugins/Generators_full/.gitignore b/plugins/Generators_full/.gitignore index 955ad80c..8d85dede 100644 --- a/plugins/Generators_full/.gitignore +++ b/plugins/Generators_full/.gitignore @@ -1,13 +1,25 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec \ No newline at end of file diff --git a/plugins/Generators_full/tree_dependency.png b/plugins/Generators_full/tree_dependency.png index 912ac857..d5b988f3 100644 Binary files a/plugins/Generators_full/tree_dependency.png and b/plugins/Generators_full/tree_dependency.png differ diff --git a/plugins/Generators_restart/ASSUMPTIONS.rst b/plugins/Generators_restart/ASSUMPTIONS.rst new file mode 100644 index 00000000..e69de29b diff --git a/plugins/Generators_restart/README.rst b/plugins/Generators_restart/README.rst index 2a476a1a..e7ab7045 100644 --- a/plugins/Generators_restart/README.rst +++ b/plugins/Generators_restart/README.rst @@ -2,40 +2,3 @@ Generators_restart Module ========================= -Documentation -============= - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -`n_det_generators `_ - Read the wave function - - -`psi_coef_generators `_ - read wf - .br - - -`psi_det_generators `_ - read wf - .br - - -`select_max `_ - Memo to skip useless selectors - - -`size_select_max `_ - Size of the select_max array - -Needed Modules -============== - -.. Do not edit this section. It was auto-generated from the -.. by the `update_README.py` script. - -.. image:: tree_dependency.png - -* `Determinants `_ - diff --git a/plugins/Hartree_Fock/.gitignore b/plugins/Hartree_Fock/.gitignore index 0197ab71..c6be1d0d 100644 --- a/plugins/Hartree_Fock/.gitignore +++ b/plugins/Hartree_Fock/.gitignore @@ -1,26 +1,25 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -MOs -Electrons -Utils -Nuclei -MOGuess +ezfio_interface.irp.f Ezfio_files +Integrals_Monoelec +MO_Basis +Integrals_Bielec +Pseudo +Bitmask +AO_Basis +Electrons +MOGuess +Nuclei +Utils Huckel_guess -SCF +SCF \ No newline at end of file diff --git a/plugins/Hartree_Fock/tree_dependency.png b/plugins/Hartree_Fock/tree_dependency.png index 82a2ac8e..e4708d5f 100644 Binary files a/plugins/Hartree_Fock/tree_dependency.png and b/plugins/Hartree_Fock/tree_dependency.png differ diff --git a/plugins/MP2/.gitignore b/plugins/MP2/.gitignore index 999f9390..2b9a8b38 100644 --- a/plugins/MP2/.gitignore +++ b/plugins/MP2/.gitignore @@ -1,31 +1,30 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock +ezfio_interface.irp.f +Ezfio_files Perturbation Determinants -Electrons Utils -Properties -Nuclei -MOGuess +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +Pseudo +AO_Basis +Bitmask SingleRefMethod -Ezfio_files -mp2 +Electrons +MOGuess +Nuclei +Hartree_Fock +Properties +mp2 \ No newline at end of file diff --git a/plugins/MP2/tree_dependency.png b/plugins/MP2/tree_dependency.png index ce5fbcc1..96b06f0b 100644 Binary files a/plugins/MP2/tree_dependency.png and b/plugins/MP2/tree_dependency.png differ diff --git a/plugins/MRCC/.gitignore b/plugins/MRCC/.gitignore index d634568f..21d10223 100644 --- a/plugins/MRCC/.gitignore +++ b/plugins/MRCC/.gitignore @@ -1,31 +1,30 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Generators_full -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -Selectors_full -MOs -Hartree_Fock +ezfio_interface.irp.f +Ezfio_files Perturbation Determinants -Electrons Utils -Properties -Nuclei +Integrals_Monoelec +MO_Basis +Selectors_full +Integrals_Bielec +Pseudo +Generators_full +Bitmask +AO_Basis +Electrons MOGuess -Ezfio_files -mrcc +Nuclei +Hartree_Fock +Properties +mrcc \ No newline at end of file diff --git a/plugins/MRCC/mrcc_utils.irp.f b/plugins/MRCC/mrcc_utils.irp.f index 872588cf..716d5ffc 100644 --- a/plugins/MRCC/mrcc_utils.irp.f +++ b/plugins/MRCC/mrcc_utils.irp.f @@ -1,21 +1,32 @@ BEGIN_PROVIDER [ double precision, lambda_mrcc, (N_states,psi_det_size) ] +&BEGIN_PROVIDER [ double precision, lambda_pert, (N_states,psi_det_size) ] implicit none BEGIN_DOC ! cm/ END_DOC integer :: i,k - double precision :: ihpsi(N_states) - do i=1,N_det_non_cas + double precision :: ihpsi(N_states), hij(N_states) + +do i=1,N_det_non_cas call i_h_psi(psi_non_cas(1,1,i), psi_cas, psi_cas_coef, N_int, N_det_cas, & size(psi_cas_coef,1), n_states, ihpsi) - double precision :: hij + call i_h_j(psi_non_cas(1,1,i),psi_non_cas(1,1,i),N_int,hij) do k=1,N_states - if (dabs(ihpsi(k)) > 1.d-5) then - lambda_mrcc(k,i) = psi_non_cas_coef(i,k)/ihpsi(k) - lambda_mrcc(k,i) = min( lambda_mrcc (k,i),0.d0 ) + lambda_pert(k,i) = 1d0 / (CI_electronic_energy(k)-hij(k)) + lambda_mrcc(k,i) = psi_non_cas_coef(i,k)/ihpsi(k) + if ((lambda_mrcc(k,i)/lambda_pert(k,i))<0.d0 .or. (lambda_mrcc(k,i)/lambda_pert(k,i))>4.d0) then + lambda_mrcc(k,i) = lambda_pert(k,i) else - lambda_mrcc(k,i) = 0.d0 + if ((lambda_mrcc(k,i)/lambda_pert(k,i))<0.1d0 .or. (lambda_mrcc(k,i)/lambda_pert(k,i))>=0d0) then + lambda_mrcc(k,i) = lambda_mrcc(k,i)*((cos((lambda_mrcc(k,i)/lambda_pert(k,i))*3.141592653589793d0/0.1d0+3.141592653589793d0)+1d0)/2.d0) & + + lambda_pert(k,i)*(1.d0-((cos((lambda_mrcc(k,i)/lambda_pert(k,i))*3.141592653589793d0/0.1d0+3.141592653589793d0)+1.d0)/2.d0)) + elseif ((lambda_mrcc(k,i)/lambda_pert(k,i))<=4.0d0 .or. (lambda_mrcc(k,i)/lambda_pert(k,i))>2.0d0) then + lambda_mrcc(k,i) = lambda_mrcc(k,i)*(1.d0-(cos(abs(2.d0-(lambda_mrcc(k,i)/lambda_pert(k,i)))*3.141592653589793d0/2.0d0+3.141592653589793d0)+1.d0)/2d0) & + + lambda_pert(k,i)*((cos(abs(2.d0-(lambda_mrcc(k,i)/lambda_pert(k,i)))*3.141592653589793d0/2.0d0+3.141592653589793d0)+1.d0)/2.d0) + else + lambda_mrcc(k,i) = lambda_mrcc(k,i) + endif endif enddo enddo @@ -23,6 +34,8 @@ END_PROVIDER + + BEGIN_PROVIDER [ character*(32), dressing_type ] implicit none BEGIN_DOC diff --git a/plugins/MRCC/tree_dependency.png b/plugins/MRCC/tree_dependency.png index 8d12e31f..87293361 100644 Binary files a/plugins/MRCC/tree_dependency.png and b/plugins/MRCC/tree_dependency.png differ diff --git a/plugins/Molden/NEEDED_CHILDREN_MODULES b/plugins/Molden/NEEDED_CHILDREN_MODULES index 64795a92..305dfb78 100644 --- a/plugins/Molden/NEEDED_CHILDREN_MODULES +++ b/plugins/Molden/NEEDED_CHILDREN_MODULES @@ -1 +1 @@ -MOs Utils +MO_Basis Utils diff --git a/plugins/Molden/README.rst b/plugins/Molden/README.rst index c97e6319..71639cad 100644 --- a/plugins/Molden/README.rst +++ b/plugins/Molden/README.rst @@ -35,6 +35,6 @@ Needed Modules .. image:: tree_dependency.png -* `MOs `_ +* `MO_Basis `_ * `Utils `_ diff --git a/plugins/Perturbation/.gitignore b/plugins/Perturbation/.gitignore index 955ad80c..effe9ffc 100644 --- a/plugins/Perturbation/.gitignore +++ b/plugins/Perturbation/.gitignore @@ -1,13 +1,26 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Properties +Bitmask +AO_Basis +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec \ No newline at end of file diff --git a/plugins/Perturbation/README.rst b/plugins/Perturbation/README.rst index 9162e94b..aad453e8 100644 --- a/plugins/Perturbation/README.rst +++ b/plugins/Perturbation/README.rst @@ -85,7 +85,7 @@ Documentation Undocumented -`perturb_buffer_by_mono_delta_rho_one_point `_ +`perturb_buffer_by_mono_delta_rho_one_point `_ Applly pertubration ``delta_rho_one_point`` to the buffer of determinants generated in the H_apply routine. @@ -95,12 +95,12 @@ Documentation routine. -`perturb_buffer_by_mono_epstein_nesbet `_ +`perturb_buffer_by_mono_epstein_nesbet `_ Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_epstein_nesbet_2x2 `_ +`perturb_buffer_by_mono_epstein_nesbet_2x2 `_ Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. @@ -120,17 +120,17 @@ Documentation routine. -`perturb_buffer_by_mono_h_core `_ +`perturb_buffer_by_mono_h_core `_ Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_by_mono_moller_plesset `_ +`perturb_buffer_by_mono_moller_plesset `_ Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_delta_rho_one_point `_ +`perturb_buffer_delta_rho_one_point `_ Applly pertubration ``delta_rho_one_point`` to the buffer of determinants generated in the H_apply routine. @@ -140,12 +140,12 @@ Documentation routine. -`perturb_buffer_epstein_nesbet `_ +`perturb_buffer_epstein_nesbet `_ Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_epstein_nesbet_2x2 `_ +`perturb_buffer_epstein_nesbet_2x2 `_ Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine. @@ -165,12 +165,12 @@ Documentation routine. -`perturb_buffer_h_core `_ +`perturb_buffer_h_core `_ Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine. -`perturb_buffer_moller_plesset `_ +`perturb_buffer_moller_plesset `_ Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine. diff --git a/plugins/Perturbation/tree_dependency.png b/plugins/Perturbation/tree_dependency.png index 2cae03aa..a2176cc3 100644 Binary files a/plugins/Perturbation/tree_dependency.png and b/plugins/Perturbation/tree_dependency.png differ diff --git a/plugins/Properties/.gitignore b/plugins/Properties/.gitignore index 955ad80c..1b17a42a 100644 --- a/plugins/Properties/.gitignore +++ b/plugins/Properties/.gitignore @@ -1,13 +1,23 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +Nuclei +Integrals_Bielec \ No newline at end of file diff --git a/plugins/Properties/tree_dependency.png b/plugins/Properties/tree_dependency.png index fafa0285..a2198952 100644 Binary files a/plugins/Properties/tree_dependency.png and b/plugins/Properties/tree_dependency.png differ diff --git a/plugins/Selectors_full/.gitignore b/plugins/Selectors_full/.gitignore index 955ad80c..8d85dede 100644 --- a/plugins/Selectors_full/.gitignore +++ b/plugins/Selectors_full/.gitignore @@ -1,13 +1,25 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Determinants +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +MOGuess +Nuclei +Hartree_Fock +Integrals_Bielec \ No newline at end of file diff --git a/plugins/Selectors_full/tree_dependency.png b/plugins/Selectors_full/tree_dependency.png index d37a6fc0..727db901 100644 Binary files a/plugins/Selectors_full/tree_dependency.png and b/plugins/Selectors_full/tree_dependency.png differ diff --git a/plugins/SingleRefMethod/.gitignore b/plugins/SingleRefMethod/.gitignore index 955ad80c..d85c570a 100644 --- a/plugins/SingleRefMethod/.gitignore +++ b/plugins/SingleRefMethod/.gitignore @@ -1,13 +1,19 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +MO_Basis +Utils +Bitmask +AO_Basis +Electrons +Nuclei \ No newline at end of file diff --git a/plugins/SingleRefMethod/tree_dependency.png b/plugins/SingleRefMethod/tree_dependency.png index d5105c9d..0c44f3b2 100644 Binary files a/plugins/SingleRefMethod/tree_dependency.png and b/plugins/SingleRefMethod/tree_dependency.png differ diff --git a/scripts/compilation/cache_compile.py b/scripts/compilation/cache_compile.py index 77e799b8..37f9b14b 100755 --- a/scripts/compilation/cache_compile.py +++ b/scripts/compilation/cache_compile.py @@ -18,9 +18,8 @@ p = re.compile(ur'-I IRPF90_temp/\S*\s+') mod = re.compile(ur'module\s+(?P\S+).+end\s?module\s+(?P=mod)?', re.MULTILINE | re.IGNORECASE) -tmpdir_root = os.environ.get("TMPDIR",failobj="/dev/shm") -TMPDIR = os.path.join(tmpdir_root,os.environ["USER"],"qp_compiler") - +tmpdir_root = os.environ.get("TMPDIR", failobj="/dev/shm") +TMPDIR = os.path.join(tmpdir_root, os.environ["USER"], "qp_compiler") def return_filename_to_cache(command): diff --git a/scripts/compilation/qp_create_ninja.py b/scripts/compilation/qp_create_ninja.py index 5b99e38d..d9707dfb 100755 --- a/scripts/compilation/qp_create_ninja.py +++ b/scripts/compilation/qp_create_ninja.py @@ -257,7 +257,7 @@ def ninja_ezfio_rule(): install_lib_ezfio = join(QP_ROOT, 'install', 'EZFIO', "lib", "libezfio.a") l_cmd = ["cd {0}".format(QP_EZFIO)] + l_flag - l_cmd += ["ninja && ln -sf {0} {1}".format(install_lib_ezfio, EZFIO_LIB)] + l_cmd += ["rm -f make.config ; ninja && ln -sf {0} {1}".format(install_lib_ezfio, EZFIO_LIB)] l_string = ["rule build_ezfio", " command = {0}".format(" ; ".join(l_cmd)), @@ -320,6 +320,37 @@ def ninja_symlink_build(path_module, l_symlink): return l_string +# +# _ o _|_ o _ ._ _ ._ _ +# o (_| | |_ | (_| | | (_) | (/_ +# _| _| +def ninja_gitignore_rule(): + """ + Return the command to create the gitignore + """ + return ["rule build_gitignore", + " command = module_handler.py create_git_ignore $module_rel", + " description = Create gitignore for $module_rel", ""] + + +def ninja_gitignore_build(path_module, l_symlink, d_binaries): + """ + """ + + path_gitignore = join(path_module.abs, ".gitignore") + + l_b = [i.abs for i in d_binaries[path_module]] + l_sym = [i.destination for i in l_symlink] + + l_string = ["build {0}: build_gitignore {1} || {2}".format(path_gitignore, + " ".join(l_b), + " ".join(l_sym)), + " module_rel = {0}".format(path_module.rel), + ""] + + return l_string + + # _ _ _ # o ._ ._ _|_ (_| / \ ._ _ _. | _ # | | |_) | | \_/ o | | | (_| |< (/_ @@ -474,21 +505,25 @@ def ninja_readme_rule(): For not dealted the readme when ninja -t clean and the generator option """ l_string = ["rule build_readme", - " command = cd $module_abs ; update_README.py", + " command = cd $module_abs ; update_README.py $module_root", + " description = update_README $module_rel", " generator = 1", ""] return l_string -def ninja_readme_build(path_module): +def ninja_readme_build(path_module, d_irp, dict_root_path): """ Rule for creation the readme """ - path_irp_man = join(path_module.abs, "irpf90.make") path_readme = join(path_module.abs, "README.rst") + root_module = dict_root_path[module] + + l_depend = d_irp[path_module]["l_depend"] + [join(root_module.abs, "tags")] l_string = ["build {0}: build_readme {1}".format(path_readme, - path_irp_man), + " ".join(l_depend)), + " module_root = {0}".format(root_module.abs), " module_abs = {0}".format(path_module.abs), " module_rel = {0}".format(path_module.rel), ""] @@ -533,7 +568,7 @@ def get_dict_binaries(l_module, mode="production"): Example : The module Full_CI can produce the binary SCF so you dont need to compile at all the module Hartree-Fock - But you need to change the path acordingle + But you need to change the path acordingly Full_CI/Hartree-Fock/SCF """ d_binaries = defaultdict(list) @@ -664,10 +699,11 @@ def ninja_dot_tree_rule(): return l_string -def ninja_dot_tree_build(path_module): +def ninja_dot_tree_build(path_module, l_module): path_tree = join(path_module.abs, "tree_dependency.png") - l_string = ["build {0}: build_dot_tree".format(path_tree), + l_dep = [join(path.abs, "NEEDED_CHILDREN_MODULES") for path in l_module] + l_string = ["build {0}: build_dot_tree {1}".format(path_tree, " ".join(l_dep)), " module_abs = {0}".format(path_module.abs), " module_rel = {0}".format(path_module.rel), ""] @@ -695,7 +731,7 @@ def create_build_ninja_module(path_module): " pool = console", " description = Compile all the module", ""] - l_string += ["rule make_clean", " command = clean_modules.sh", + l_string += ["rule make_clean", " command = module_handler.py clean {0}".format(path_module.rel), " description = Cleaning module {0}".format(path_module.rel), ""] @@ -711,7 +747,7 @@ def create_build_ninja_module(path_module): f.write("\n".join(l_string)) -def create_build_ninja_global(): +def create_build_ninja_global(l_module): l_string = ["rule update_build_ninja_root", " command = {0} update".format(__file__), @@ -723,7 +759,7 @@ def create_build_ninja_global(): ""] l_string += ["rule make_clean", - " command = cd {0} ; clean_modules.sh *".format(QP_SRC), + " command = module_handler.py clean {0}".format(" ".join([m.rel for m in l_module])), " description = Cleaning all modules", ""] l_string += ["build dummy_target: update_build_ninja_root", @@ -782,6 +818,7 @@ if __name__ == "__main__": l_string += ninja_irpf90_make_rule() l_string += ninja_readme_rule() + l_string += ninja_gitignore_rule() l_string += ninja_binaries_rule() @@ -816,8 +853,18 @@ if __name__ == "__main__": d_genealogy_path = dict_module_genelogy_path(d_genealogy) d_irp = get_file_dependency(d_genealogy_path) + dict_root = module_instance.dict_root + dict_root_path = dict_module_genelogy_path(dict_root) + l_module = d_genealogy_path.keys() + for module in l_module: + # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # + # d o t _ t r e e & r e a d m e # + # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # + l_string += ninja_dot_tree_build(module, l_module) + l_string += ninja_readme_build(module, d_irp, dict_root_path) + # ~#~#~#~#~#~#~#~#~#~#~#~#~ # # M o d u l e _ t o _ i r p # # ~#~#~#~#~#~#~#~#~#~#~#~#~ # @@ -832,7 +879,7 @@ if __name__ == "__main__": d_binaries = get_dict_binaries(l_module, mode="development") l_module = d_binaries.keys() - create_build_ninja_global() + create_build_ninja_global(l_module) for module_to_compile in l_module: @@ -853,15 +900,11 @@ if __name__ == "__main__": l_string += ninja_irpf90_make_build(module_to_compile, l_children, d_irp) - # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # - # d o t _ t r e e & r e a d m e # - # ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ # - l_string += ninja_dot_tree_build(module_to_compile) - l_string += ninja_readme_build(module_to_compile) - l_string += ninja_binaries_build(module_to_compile, l_children, d_binaries) + l_string += ninja_gitignore_build(module_to_compile, l_symlink, d_binaries) + with open(join(QP_ROOT, "config", "build.ninja"), "w+") as f: f.write(header) f.write("\n".join(l_string)) diff --git a/scripts/ezfio_interface/ei_handler.py b/scripts/ezfio_interface/ei_handler.py index c92ac572..688898f5 100755 --- a/scripts/ezfio_interface/ei_handler.py +++ b/scripts/ezfio_interface/ei_handler.py @@ -44,6 +44,8 @@ Optional: size: The size information. (by default is one) Example : 1, =sum(ao_num); (ao_num,3) + ATTENTION : The module and the value are separed by a "." not a "_". + For exemple (determinants.n_det) ezfio_name: The name for the EZFIO lib (by default is ) ezfio_dir: Will be the folder of EZFIO. @@ -131,7 +133,7 @@ def get_type_dict(): fancy_type['bool'] = Type(None, "bool", "logical") fancy_type['character*(32)'] = Type(None, "string", "character*(32)") - fancy_type['character*(64)'] = Type(None, "string", "character*(68)") + fancy_type['character*(64)'] = Type(None, "string", "character*(64)") fancy_type['character*(256)'] = Type(None, "string", "character*(256)") # ~#~#~#~#~#~#~#~ # @@ -228,6 +230,8 @@ def get_dict_config_file(module_obj): # pvd = provider pvd = section.lower() + d[pvd]["module"] = module_obj + # Create the dictionary who containt the value per default d_default = {"ezfio_name": pvd, "ezfio_dir": module_obj.lower, @@ -255,7 +259,7 @@ def get_dict_config_file(module_obj): sys.exit(1) try: - interface = map(str.lower, config_file.get(section, "interface").split(",")) + interface = [i.lower().strip() for i in config_file.get(section, "interface").split(",")] except ConfigParser.NoOptionError: error("doc", pvd, module_obj.path) sys.exit(1) @@ -317,7 +321,7 @@ def create_ezfio_provider(dict_ezfio_cfg): ez_p.set_doc(dict_info['doc']) ez_p.set_ezfio_dir(dict_info['ezfio_dir']) ez_p.set_ezfio_name(dict_info['ezfio_name']) - ez_p.set_output("output_%s" % dict_info['ezfio_dir']) + ez_p.set_output("output_%s" % dict_info['module'].lower) # (nuclei.nucl_num,pseudo.klocmax) => (nucl_num,klocmax) ez_p.set_size(re.sub(r'\w+\.', "", dict_info['size'])) diff --git a/scripts/generate_h_apply.py b/scripts/generate_h_apply.py index 563a7a56..9f878d7d 100755 --- a/scripts/generate_h_apply.py +++ b/scripts/generate_h_apply.py @@ -277,7 +277,7 @@ class H_apply(object): do k=1,N_st norm_psi(k) = norm_psi(k) + psi_coef_generators(i_generator,k)*psi_coef_generators(i_generator,k) ! delta_pt2(k) = 0.d0 -! pt2_old(k) = 0.d0 + pt2_old(k) = 0.d0 ! pt2(k) = select_max(i_generator) enddo !$ call omp_unset_lock(lck) diff --git a/scripts/module/clean_modules.sh b/scripts/module/clean_modules.sh deleted file mode 100755 index 4eae11c4..00000000 --- a/scripts/module/clean_modules.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# -# Cleans a module directory - -if [[ -z ${QP_ROOT} ]] -then - print "The QP_ROOT environment variable is not set." - print "Please reload the quantum_package.rc file." - exit -1 -fi -source ${QP_ROOT}/scripts/qp_include.sh - -function do_clean() -{ - rm -rf -- \ - IRPF90_temp IRPF90_man \ - $(module_handler.py print_descendant) include \ - ezfio_interface.irp.f irpf90.make irpf90_entities tags $(ls_exe) *.mod -} - -if [[ -z $1 ]] -then - check_current_dir_is_module - do_clean -else - check_current_dir_is_src - for i in $@ - do - if [[ -d $i ]] - then - cd $i - do_clean - cd $OLDPWD - fi - done -fi - diff --git a/scripts/module/module_handler.py b/scripts/module/module_handler.py index d0bcca00..8301e0b1 100755 --- a/scripts/module/module_handler.py +++ b/scripts/module/module_handler.py @@ -1,13 +1,13 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- """ -Create the NEEDED_MODULE - aka the genealogy (children module, subchildren module and so on), -of a NEEDED_CHILDREN_MODULES file +Module utilitary Usage: - module_handler.py print_descendant [] - module_handler.py create_png [] + module_handler.py print_descendant [...] + module_handler.py create_png [...] + module_handler.py clean [...] + module_handler.py create_git_ignore [...] Options: print_descendant Print the genealogy of the NEEDED_CHILDREN_MODULES @@ -19,16 +19,27 @@ Options: import os import sys import os.path -from collections import namedtuple +import shutil try: from docopt import docopt + from qp_path import QP_SRC except ImportError: print "source .quantum_package.rc" raise # Canot cache for namedtuple are not hashable +def is_module(path_module): + return os.path.isfile(os.path.join(QP_SRC, + path_module, + "NEEDED_CHILDREN_MODULES")) + + +def is_exe(fpath): + return os.path.isfile(fpath) and os.access(fpath, os.X_OK) + + def get_dict_child(l_root_abs=None): """Loop over MODULE in QP_ROOT/src, open all the NEEDED_CHILDREN_MODULES and create a dict[MODULE] = [sub module needed, ...] @@ -36,8 +47,7 @@ def get_dict_child(l_root_abs=None): d_ref = dict() if not l_root_abs: - qp_root = os.environ['QP_ROOT'] - l_root_abs = [os.path.join(qp_root, 'src')] + l_root_abs = [QP_SRC] for root_abs in l_root_abs: for module_rel in os.listdir(root_abs): @@ -201,19 +211,70 @@ if __name__ == '__main__': arguments = docopt(__doc__) - if not arguments['']: + if not arguments['']: dir_ = os.getcwd() + l_module = [os.path.basename(dir_)] else: - path_file = os.path.abspath(arguments['']) - path_file = os.path.expanduser(path_file) - path_file = os.path.expandvars(path_file) - dir_ = os.path.dirname(path_file) + l_module = arguments[''] + + for module in l_module: + if not is_module(module): + print "{0} is not a volide module. Abort".format(module) + print "No NEEDED_CHILDREN_MODULES in it" + sys.exit(1) - path_file = os.path.basename(dir_) m = ModuleHandler() if arguments['print_descendant']: - print " ".join(sorted(m.l_module)) + + for module in l_module: + print " ".join(sorted(m.l_descendant_unique([module]))) if arguments["create_png"]: - m.create_png([path_file]) + m.create_png(l_module) + + if arguments["clean"] or arguments["create_git_ignore"]: + + l_dir = ['IRPF90_temp', 'IRPF90_man'] + l_file = ["irpf90_entities", "tags", "irpf90.make", + "Makefile", "Makefile.depend", + "build.ninja", ".ninja_log", ".ninja_deps", + "ezfio_interface.irp.f"] + + for module in l_module: + module_abs = os.path.realpath(os.path.join(QP_SRC, module)) + l_symlink = m.l_descendant_unique([module]) + l_exe = [f for f in os.listdir(module_abs) if is_exe(os.path.join(module_abs,f))] + + if arguments["clean"]: + for f in l_dir: + try: + shutil.rmtree(os.path.join(module_abs, f)) + except: + pass + + for symlink in l_symlink: + try: + os.unlink(os.path.join(module_abs, symlink)) + except: + pass + + for f in l_file: + try: + os.remove(os.path.join(module_abs, f)) + except: + pass + + for f in l_exe: + + try: + os.remove(os.path.join(module_abs, f)) + except: + pass + + if arguments["create_git_ignore"]: + path = os.path.join(module_abs, ".gitignore") + + with open(path, "w+") as f: + f.write("# Automatically created by {0} \n".format(__file__)) + f.write("\n".join(l_dir + l_file + l_symlink + l_exe)) diff --git a/scripts/module/qp_install_module.py b/scripts/module/qp_install_module.py index 03460052..8aad1ae1 100755 --- a/scripts/module/qp_install_module.py +++ b/scripts/module/qp_install_module.py @@ -5,12 +5,12 @@ Usage: qp_install_module.py create -n [...] qp_install_module.py download -n [...] qp_install_module.py install ... - qp_install_module.py list (--installed|--avalaible-local|--avalaible-remote) - qp_install_module.py uninstall ... + qp_install_module.py list (--installed | --available-local) + qp_install_module.py uninstall ... [--and_ancestor] Options: - list: List all the module avalaible + list: List all the module available create: Create a new module """ @@ -22,6 +22,8 @@ try: from module_handler import ModuleHandler, get_dict_child from module_handler import get_l_module_descendant from update_README import Doc_key, Needed_key + from qp_path import QP_SRC, QP_PLUGINS + except ImportError: print "source .quantum_package.rc" raise @@ -59,15 +61,13 @@ def save_new_module(path, l_child): if __name__ == '__main__': arguments = docopt(__doc__) - qp_root_src = os.path.join(os.environ['QP_ROOT'], "src") - qp_root_plugin = os.path.join(os.environ['QP_ROOT'], "plugins") if arguments["list"]: if arguments["--installed"]: - l_repository = [qp_root_src] - if arguments["--avalaible-local"]: - l_repository = [qp_root_plugin] + l_repository = [QP_SRC] + elif arguments["--available-local"]: + l_repository = [QP_PLUGINS] m_instance = ModuleHandler(l_repository) @@ -75,11 +75,11 @@ if __name__ == '__main__': print "* {0}".format(module) elif arguments["create"]: - m_instance = ModuleHandler([qp_root_src]) + m_instance = ModuleHandler([QP_SRC]) l_children = arguments[""] - path = os.path.join(qp_root_src, arguments[""]) + path = os.path.join(QP_SRC, arguments[""]) print "You will create the module:" print path @@ -87,7 +87,8 @@ if __name__ == '__main__': for children in l_children: if children not in m_instance.dict_descendant: print "This module ({0}) is not a valide module.".format(children) - print "Run `list` flag for the list of module avalaible" + print "Run `list` flag for the list of module available" + print "Maybe you need to install some module first" print "Aborting..." sys.exit(1) @@ -104,7 +105,7 @@ if __name__ == '__main__': elif arguments["download"]: pass -# d_local = get_dict_child([qp_root_src]) +# d_local = get_dict_child([QP_SRC]) # d_remote = get_dict_child(arguments[""]) # # d_child = d_local.copy() @@ -119,8 +120,8 @@ if __name__ == '__main__': elif arguments["install"]: - d_local = get_dict_child([qp_root_src]) - d_plugin = get_dict_child([qp_root_plugin]) + d_local = get_dict_child([QP_SRC]) + d_plugin = get_dict_child([QP_PLUGINS]) d_child = d_local.copy() d_child.update(d_plugin) @@ -143,31 +144,43 @@ if __name__ == '__main__': print "Installation...", for module_to_cp in l_module_to_cp: - src = os.path.join(qp_root_plugin, module_to_cp) - des = os.path.join(qp_root_src, module_to_cp) + src = os.path.join(QP_PLUGINS, module_to_cp) + des = os.path.join(QP_SRC, module_to_cp) try: os.symlink(src, des) except OSError: - print "Your src directory is broken. Please remove %s"%des + print "Your src directory is broken. Please remove %s" % des raise print "Done" print "You can now compile as usual" elif arguments["uninstall"]: - d_local = get_dict_child([qp_root_src]) + m_instance = ModuleHandler([QP_SRC]) + d_descendant = m_instance.dict_descendant + + d_local = get_dict_child([QP_SRC]) l_name = arguments[""] - l_failed = [ name for name in l_name if name not in d_local ] + l_failed = [name for name in l_name if name not in d_local] if l_failed: print "Modules not installed:" for name in sorted(l_failed): - print "* %s"%name + print "* %s" % name sys.exit(1) else: + if arguments["--and_ancestor"]: + + l_name_to_remove = l_name + [module for module in m_instance.l_module for name in l_name if name in d_descendant[module]] + print "You will remove all of:" + print l_name_to_remove + + else: + l_name_to_remove = l_name + def unlink(x): try: - os.unlink(os.path.join(qp_root_src,x)) + os.unlink(os.path.join(QP_SRC, x)) except OSError: - print "%s is a core module which can not be renmoved"%x - map(unlink,l_name) + print "%s is a core module which can not be renmoved" % x + map(unlink, l_name_to_remove) diff --git a/scripts/module/update_README.py b/scripts/module/update_README.py index 1293f6f2..8cc102c3 100755 --- a/scripts/module/update_README.py +++ b/scripts/module/update_README.py @@ -13,6 +13,24 @@ URL = "http://github.com/LCPQ/quantum_package/tree/master/src/" import os import subprocess from collections import namedtuple +import sys + +""" +NEED to call in a module +First arg can be the root parent +""" +try: + ROOT_module = os.path.realpath(sys.argv[1]) +except: + ROOT_module = os.getcwd() + +if ROOT_module != os.getcwd(): + change = True +else: + change = False + +MODULE_NAME = os.path.basename(os.getcwd()) + header = """ .. Do not edit this section. It was auto-generated from the @@ -71,7 +89,8 @@ def update_needed(data): def extract_doc(item): """Extracts the documentation contained in IRPF90_man file""" - with open("IRPF90_man/%s.l" % (item), 'r') as f: + path = os.path.join(ROOT_module, "IRPF90_man/%s.l" % (item)) + with open(path, 'r') as f: l_line = f.readlines() result = [] @@ -97,15 +116,24 @@ def update_documentation(data): # If the file does not exist, don't do anything - with open('tags', 'r') as f: - l_info = [IRP_info(*i.split()) for i in f.readlines() - if "/" not in i.split()[1]] + path = os.path.join(ROOT_module, "tags") + + with open(path, 'r') as f: + dump = f.readlines() + + l_info = [] + for i in dump: + name, f, ligne = i.split() + + if not change and "/" not in i: + l_info.append(IRP_info(name, f, ligne)) + elif change and MODULE_NAME in i: + l_info.append(IRP_info(name, f.split("/")[-1], ligne)) l_line = [] - module_name = os.path.basename(os.getcwd()) for irp in l_info: - url = os.path.join(URL, module_name, irp.file) + url = os.path.join(URL, MODULE_NAME, irp.file) doc = extract_doc(irp.name) l_line += ["`{0} <{1}#L{2}>`_".format(irp.name, url, irp.line), doc, diff --git a/scripts/qp_include.sh b/scripts/qp_include.sh deleted file mode 100644 index f67e942f..00000000 --- a/scripts/qp_include.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# -# Useful functions in all scripts - -# Make a list unique -function unique_list() -{ - for d in $@ - do - echo $d - done | sort | uniq -} - -function check_current_dir_is_src() -{ - if [[ "${PWD}" == "${QP_ROOT}/src" ]] - then - return 0 - else - echo "Current directory should be \$QP_ROOT/src" - exit -1 - fi -} - -function check_current_dir_is_module() -{ - # If the prefix ${QP_ROOT}/src/ can be removed from $PWD, it means that - # $PWD is somewhere below ${QP_ROOT}/src/ so it is a module. - # If the prefix ${QP_ROOT}/src/ can not be removed from $PWD, then - # "${PWD##${QP_ROOT}/src/}" == "$PWD". - - if [[ "${PWD##${QP_ROOT}/src/}" != "$PWD" ]] - then - return 0 - else - echo "You are not in a submodule" - exit -1 - fi -} - -# List of executables in the current directory -function ls_exe() -{ - find . -perm /u+x -type f -} - -function asksure() { - echo -n $@ "(Y/N) " - answer=w - while [[ $answer != [YyNn] ]] - do - read answer - [[ $answer = [Yy] ]] && retval=0 || retval=1 - done - return $retval -} - -function error() -{ - echo "-------------------- Error --------------------" - printf "$@\n" - echo "-----------------------------------------------" - exit -1 -} - -if [[ -z ${DEBUG} ]] -then - function info () - { - : - } -else - function info () - { - echo "$@" - } -fi - diff --git a/scripts/utility/qp_path.py b/scripts/utility/qp_path.py index 39058557..f997ec21 100644 --- a/scripts/utility/qp_path.py +++ b/scripts/utility/qp_path.py @@ -11,5 +11,6 @@ except: sys.exit(1) else: QP_SRC = os.path.join(QP_ROOT, "src") + QP_PLUGINS = os.path.join(QP_ROOT, "plugins") QP_EZFIO = os.path.join(QP_ROOT, "install", "EZFIO") QP_OCAML = os.path.join(QP_ROOT, "ocaml") diff --git a/src/.gitignore b/src/.gitignore index 1f87bdc1..9bba1426 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1,2 +1,25 @@ -Makefile.config -ezfio_interface.irp.f +CAS_SD +CID +CID_SC2_selected +CID_selected +CIS +CISD +CISD_SC2_selected +CISD_selected +DDCI_selected +DensityMatrix +FCIdump +Full_CI +Generators_CAS +Generators_full +Generators_restart +Hartree_Fock +Molden +MP2 +MRCC +Perturbation +Properties +QmcChem +Selectors_full +Selectors_no_sorted +SingleRefMethod diff --git a/src/AO_Basis/.gitignore b/src/AO_Basis/.gitignore new file mode 100644 index 00000000..7305be49 --- /dev/null +++ b/src/AO_Basis/.gitignore @@ -0,0 +1,15 @@ +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py +IRPF90_temp +IRPF90_man +irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend +build.ninja +.ninja_log +.ninja_deps +ezfio_interface.irp.f +Nuclei +Ezfio_files +Utils \ No newline at end of file diff --git a/src/AOs/NEEDED_CHILDREN_MODULES b/src/AO_Basis/NEEDED_CHILDREN_MODULES similarity index 100% rename from src/AOs/NEEDED_CHILDREN_MODULES rename to src/AO_Basis/NEEDED_CHILDREN_MODULES diff --git a/src/AOs/README.rst b/src/AO_Basis/README.rst similarity index 81% rename from src/AOs/README.rst rename to src/AO_Basis/README.rst index a2f39f8d..da1ba1dc 100644 --- a/src/AOs/README.rst +++ b/src/AO_Basis/README.rst @@ -46,135 +46,135 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`ao_coef `_ +`ao_coef `_ AO Coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs. -`ao_coef_normalized `_ +`ao_coef_normalized `_ Coefficients including the AO normalization -`ao_coef_normalized_ordered `_ +`ao_coef_normalized_ordered `_ Sorted primitives to accelerate 4 index MO transformation -`ao_coef_normalized_ordered_transp `_ +`ao_coef_normalized_ordered_transp `_ Transposed ao_coef_normalized_ordered -`ao_expo `_ +`ao_expo `_ AO Exponents read from input -`ao_expo_ordered `_ +`ao_expo_ordered `_ Sorted primitives to accelerate 4 index MO transformation -`ao_expo_ordered_transp `_ +`ao_expo_ordered_transp `_ Transposed ao_expo_ordered -`ao_l `_ +`ao_l `_ ao_l = l value of the AO: a+b+c in x^a y^b z^c -`ao_l_char `_ +`ao_l_char `_ ao_l = l value of the AO: a+b+c in x^a y^b z^c -`ao_l_char_space `_ +`ao_l_char_space `_ Undocumented -`ao_md5 `_ +`ao_md5 `_ MD5 key characteristic of the AO basis -`ao_nucl `_ +`ao_nucl `_ Index of the nuclei on which the ao is centered -`ao_num `_ +`ao_num `_ Number of atomic orbitals -`ao_num_align `_ +`ao_num_align `_ Number of atomic orbitals -`ao_overlap `_ +`ao_overlap `_ Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)` -`ao_overlap_abs `_ +`ao_overlap_abs `_ Overlap between absolute value of atomic basis functions: :math:`\int |\chi_i(r)| |\chi_j(r)| dr)` -`ao_overlap_x `_ +`ao_overlap_x `_ Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)` -`ao_overlap_y `_ +`ao_overlap_y `_ Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)` -`ao_overlap_z `_ +`ao_overlap_z `_ Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)` -`ao_power `_ +`ao_power `_ Powers of x,y and z read from input -`ao_prim_num `_ +`ao_prim_num `_ Number of primitives per atomic orbital -`ao_prim_num_max `_ +`ao_prim_num_max `_ Undocumented -`ao_prim_num_max_align `_ +`ao_prim_num_max_align `_ Undocumented -`l_to_charater `_ +`l_to_charater `_ character corresponding to the "L" value of an AO orbital -`n_aos_max `_ +`n_aos_max `_ Number of AOs per atom -`n_pt_max_i_x `_ +`n_pt_max_i_x `_ Undocumented -`n_pt_max_integrals `_ +`n_pt_max_integrals `_ Undocumented -`nucl_aos `_ +`nucl_aos `_ List of AOs attached on each atom -`nucl_list_shell_aos `_ +`nucl_list_shell_aos `_ Index of the shell type Aos and of the corresponding Aos Per convention, for P,D,F and G AOs, we take the index of the AO with the the corresponding power in the "X" axis -`nucl_n_aos `_ +`nucl_n_aos `_ Number of AOs per atom -`nucl_num_shell_aos `_ +`nucl_num_shell_aos `_ Index of the shell type Aos and of the corresponding Aos Per convention, for P,D,F and G AOs, we take the index of the AO with the the corresponding power in the "X" axis diff --git a/src/AOs/ao_overlap.irp.f b/src/AO_Basis/ao_overlap.irp.f similarity index 100% rename from src/AOs/ao_overlap.irp.f rename to src/AO_Basis/ao_overlap.irp.f diff --git a/src/AOs/aos.ezfio_config b/src/AO_Basis/aos.ezfio_config similarity index 100% rename from src/AOs/aos.ezfio_config rename to src/AO_Basis/aos.ezfio_config diff --git a/src/AOs/aos.irp.f b/src/AO_Basis/aos.irp.f similarity index 100% rename from src/AOs/aos.irp.f rename to src/AO_Basis/aos.irp.f diff --git a/src/AOs/dimensions_integrals.irp.f b/src/AO_Basis/dimensions_integrals.irp.f similarity index 100% rename from src/AOs/dimensions_integrals.irp.f rename to src/AO_Basis/dimensions_integrals.irp.f diff --git a/src/AO_Basis/tree_dependency.png b/src/AO_Basis/tree_dependency.png new file mode 100644 index 00000000..bdfa565b Binary files /dev/null and b/src/AO_Basis/tree_dependency.png differ diff --git a/src/AOs/.gitignore b/src/AOs/.gitignore deleted file mode 100644 index 955ad80c..00000000 --- a/src/AOs/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# -IRPF90_temp -IRPF90_man -irpf90.make -tags -Makefile.depend -irpf90_entities -build.ninja -.ninja_log -.ninja_deps diff --git a/src/AOs/tree_dependency.png b/src/AOs/tree_dependency.png deleted file mode 100644 index fdc02c6e..00000000 Binary files a/src/AOs/tree_dependency.png and /dev/null differ diff --git a/src/Bitmask/.gitignore b/src/Bitmask/.gitignore index 955ad80c..2b7b2272 100644 --- a/src/Bitmask/.gitignore +++ b/src/Bitmask/.gitignore @@ -1,13 +1,18 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +MO_Basis +Utils +AO_Basis +Electrons +Nuclei \ No newline at end of file diff --git a/src/Bitmask/NEEDED_CHILDREN_MODULES b/src/Bitmask/NEEDED_CHILDREN_MODULES index b936db90..3c2a1619 100644 --- a/src/Bitmask/NEEDED_CHILDREN_MODULES +++ b/src/Bitmask/NEEDED_CHILDREN_MODULES @@ -1 +1 @@ -MOs +MO_Basis diff --git a/src/Bitmask/README.rst b/src/Bitmask/README.rst index ae339939..f8d44248 100644 --- a/src/Bitmask/README.rst +++ b/src/Bitmask/README.rst @@ -42,7 +42,7 @@ Needed Modules .. image:: tree_dependency.png -* `MOs `_ +* `MO_Basis `_ Documentation ============= diff --git a/src/Bitmask/tree_dependency.png b/src/Bitmask/tree_dependency.png index 8abf1cab..2bf26c7c 100644 Binary files a/src/Bitmask/tree_dependency.png and b/src/Bitmask/tree_dependency.png differ diff --git a/src/Determinants/.gitignore b/src/Determinants/.gitignore index c8587494..06120dcd 100644 --- a/src/Determinants/.gitignore +++ b/src/Determinants/.gitignore @@ -1,32 +1,30 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -Bitmask -Integrals_Bielec -AOs -MOs -Electrons -Utils -Nuclei +ezfio_interface.irp.f Ezfio_files +Integrals_Monoelec +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +Nuclei +Integrals_Bielec guess_triplet guess_singlet truncate_wf save_natorb -save_for_qmcchem -program_beginer_determinants +program_initial_determinants save_for_casino det_svd -guess_doublet +guess_doublet \ No newline at end of file diff --git a/src/Determinants/EZFIO.cfg b/src/Determinants/EZFIO.cfg index a124f030..fe9612cb 100644 --- a/src/Determinants/EZFIO.cfg +++ b/src/Determinants/EZFIO.cfg @@ -55,58 +55,58 @@ default: 0.999 [n_states_diag] type: integer doc: n_states_diag -interface: ezfio, provider +interface: ezfio,provider [n_int] -interface: ezfio, provider +interface: ezfio doc: n_int type: N_int_number [bit_kind] -interface: ezfio, provider +interface: ezfio doc: bit_kind type: Bit_kind [mo_label] -interface: ezfio, provider -doc: o_label +interface: ezfio +doc: mo_label type: character*(64) [n_det] -interface: ezfio, provider +interface: ezfio doc: n_det type: integer [psi_coef] -interface: ezfio, provider +interface: ezfio doc: psi_coef type: double precision size: (determinants.n_det,determinants.n_states) [psi_det] -interface: ezfio, provider +interface: ezfio doc: psi_det type: integer*8 size: (determinants.n_int*determinants.bit_kind/8,2,determinants.n_det) [det_num] -interface: ezfio, provider +interface: ezfio,provider doc: det_num type: integer [det_occ] -interface: ezfio, provider +interface: ezfio,provider doc: det_occ type: integer size: (electrons.elec_alpha_num,determinants.det_num,2) [det_coef] -interface: ezfio, provider +interface: ezfio,provider doc: det_coef type: double precision size: (determinants.det_num) [expected_s2] -interface: ezfio, provider +interface: ezfio,provider doc: expcted_s2 type: double precision diff --git a/src/Determinants/README.rst b/src/Determinants/README.rst index f0497d7f..5af5e170 100644 --- a/src/Determinants/README.rst +++ b/src/Determinants/README.rst @@ -205,10 +205,22 @@ Documentation degree : Degree of excitation +`det_coef `_ + det_coef + + `det_connections `_ Build connection proxy between determinants +`det_num `_ + det_num + + +`det_occ `_ + det_occ + + `det_search_key `_ Return an integer*8 corresponding to a determinant index for searching @@ -505,15 +517,15 @@ Documentation determinants. idx_cas gives the indice of the CAS determinant in psi_det. -`n_det_max `_ +`n_det_max `_ Max number of determinants in the wave function -`n_det_max_jacobi `_ +`n_det_max_jacobi `_ Maximum number of determinants diagonalized by Jacobi -`n_det_max_property `_ +`n_det_max_property `_ Max number of determinants in the wave function when you select for a given property @@ -537,7 +549,7 @@ Documentation Number of single excitation bitmasks -`n_states `_ +`n_states `_ Number of states to consider @@ -585,7 +597,7 @@ Documentation rho(alpha) - rho(beta) -`only_single_double_dm `_ +`only_single_double_dm `_ If true, The One body DM is calculated with ignoring the Double<->Doubles extra diag elements @@ -762,7 +774,7 @@ Documentation Reads the determinants from the EZFIO file -`read_wf `_ +`read_wf `_ If true, read the wave function from the EZFIO file @@ -787,7 +799,7 @@ Documentation Undocumented -`s2_eig `_ +`s2_eig `_ Force the wave function to be an eigenfunction of S^2 @@ -862,7 +874,7 @@ Documentation convergence of the correlation energy of SC2 iterations -`threshold_generators `_ +`threshold_generators `_ Thresholds on generators (fraction of the norm) diff --git a/src/Determinants/diagonalize_CI.irp.f b/src/Determinants/diagonalize_CI.irp.f index 7c017956..9af8d413 100644 --- a/src/Determinants/diagonalize_CI.irp.f +++ b/src/Determinants/diagonalize_CI.irp.f @@ -52,6 +52,10 @@ END_PROVIDER call davidson_diag(psi_det,CI_eigenvectors,CI_electronic_energy, & size(CI_eigenvectors,1),N_det,N_states_diag,N_int,output_determinants) + do j=1,N_states_diag + call get_s2_u0(psi_det,CI_eigenvectors(1,j),N_det,size(CI_eigenvectors,1),CI_eigenvectors_s2(j)) + enddo + else if (diag_algorithm == "Lapack") then @@ -69,7 +73,8 @@ END_PROVIDER if (s2_eig) then i_state = 0 do j=1,N_det - call get_s2_u0(psi_det,eigenvectors(1,j),N_det,N_det,s2) + call get_s2_u0(psi_det,eigenvectors(1,j),N_det,size(eigenvectors,1),s2) + print*,'s2 = ',s2 if(dabs(s2-expected_s2).le.0.3d0)then i_state += 1 do i=1,N_det diff --git a/src/Determinants/s2.irp.f b/src/Determinants/s2.irp.f index 760893e0..fd42fe51 100644 --- a/src/Determinants/s2.irp.f +++ b/src/Determinants/s2.irp.f @@ -1,4 +1,4 @@ -subroutine get_s2(key_i,key_j,phase,Nint) +subroutine get_s2(key_i,key_j,s2,Nint) implicit none use bitmasks BEGIN_DOC @@ -7,21 +7,21 @@ subroutine get_s2(key_i,key_j,phase,Nint) integer, intent(in) :: Nint integer(bit_kind), intent(in) :: key_i(Nint,2) integer(bit_kind), intent(in) :: key_j(Nint,2) - double precision, intent(out) :: phase + double precision, intent(out) :: s2 integer :: exc(0:2,2,2) integer :: degree double precision :: phase_spsm integer :: nup, i - phase = 0.d0 + s2 = 0.d0 !$FORCEINLINE call get_excitation_degree(key_i,key_j,degree,Nint) select case (degree) case(2) - call get_double_excitation(key_i,key_j,exc,phase_spsm,Nint) + call get_double_excitation(key_j,key_i,exc,phase_spsm,Nint) if (exc(0,1,1) == 1) then ! Mono alpha + mono-beta if ( (exc(1,1,1) == exc(1,2,2)).and.(exc(1,1,2) == exc(1,2,1)) ) then - phase = -phase_spsm + s2 = -phase_spsm endif endif case(0) @@ -29,7 +29,7 @@ subroutine get_s2(key_i,key_j,phase,Nint) do i=1,Nint nup += popcnt(iand(xor(key_i(i,1),key_i(i,2)),key_i(i,1))) enddo - phase = dble(nup) + s2 = dble(nup) end select end @@ -72,7 +72,7 @@ BEGIN_PROVIDER [ double precision, s2_values, (N_states) ] integer :: i double precision :: s2 do i = 1, N_states - call get_s2_u0(psi_det,psi_coef(1,i),n_det,psi_det_size,s2) + call get_s2_u0(psi_det,psi_coef(1,i),n_det,size(psi_coef,1),s2) s2_values(i) = s2 enddo @@ -89,18 +89,32 @@ subroutine get_s2_u0(psi_keys_tmp,psi_coefs_tmp,n,nmax,s2) integer :: i,j,l double precision :: s2_tmp s2 = 0.d0 +!print*,'IN get_s2_u0' +!print*,'n,nmax = ',n,nmax + double precision :: accu + accu = 0.d0 + do i = 1,n + accu += psi_coefs_tmp(i) * psi_coefs_tmp(i) +! print*,'psi_coef = ',psi_coefs_tmp(i) + enddo +!print*,'accu = ',accu +!print*,'' !$OMP PARALLEL DO DEFAULT(NONE) & - !$OMP PRIVATE(i,j,s2_tmp) SHARED(n,psi_coefs_tmp,psi_keys_tmp,N_int) & - !$OMP REDUCTION(+:s2) SCHEDULE(dynamic) + !$OMP PRIVATE(i,j,s2_tmp) SHARED(n,psi_coefs_tmp,psi_keys_tmp,N_int) REDUCTION(+:s2) SCHEDULE(dynamic) do i=1,n - call get_s2(psi_keys_tmp(1,1,i),psi_keys_tmp(1,1,i),s2_tmp,N_int) - s2 += psi_coefs_tmp(i)*psi_coefs_tmp(i)*s2_tmp do j=i+1,n call get_s2(psi_keys_tmp(1,1,i),psi_keys_tmp(1,1,j),s2_tmp,N_int) s2 += (psi_coefs_tmp(i)+psi_coefs_tmp(i))*psi_coefs_tmp(j)*s2_tmp +! s2 = s2 + 2.d0 * psi_coefs_tmp(i)*psi_coefs_tmp(j)*s2_tmp enddo enddo !$OMP END PARALLEL DO + do i=1,n + call get_s2(psi_keys_tmp(1,1,i),psi_keys_tmp(1,1,i),s2_tmp,N_int) + s2 += psi_coefs_tmp(i)*psi_coefs_tmp(i)*s2_tmp + enddo s2 += S_z2_Sz +!print*,'s2 = ',s2 +!print*,'' end diff --git a/src/Determinants/tree_dependency.png b/src/Determinants/tree_dependency.png index 189eb10c..d47d4c23 100644 Binary files a/src/Determinants/tree_dependency.png and b/src/Determinants/tree_dependency.png differ diff --git a/src/Electrons/.gitignore b/src/Electrons/.gitignore index 955ad80c..b2bd2f7f 100644 --- a/src/Electrons/.gitignore +++ b/src/Electrons/.gitignore @@ -1,13 +1,13 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files \ No newline at end of file diff --git a/src/Ezfio_files/.gitignore b/src/Ezfio_files/.gitignore index 955ad80c..85ad9d4e 100644 --- a/src/Ezfio_files/.gitignore +++ b/src/Ezfio_files/.gitignore @@ -1,13 +1,12 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f \ No newline at end of file diff --git a/src/Ezfio_files/README.rst b/src/Ezfio_files/README.rst index db63d6c8..65ccb7e8 100644 --- a/src/Ezfio_files/README.rst +++ b/src/Ezfio_files/README.rst @@ -30,8 +30,8 @@ Documentation .br -`output_aos `_ - Output file for AOs +`output_ao_basis `_ + Output file for AO_Basis `output_bitmask `_ @@ -54,135 +54,79 @@ Documentation Output file for CID_selected -`output_cis `_ - Output file for CIS - - -`output_cisd `_ - Output file for CISD - - -`output_cisd_sc2_selected `_ - Output file for CISD_SC2_selected - - -`output_cisd_selected `_ - Output file for CISD_selected - - `output_cpu_time_0 `_ Initial CPU and wall times when printing in the output files -`output_ddci_selected `_ - Output file for DDCI_selected - - -`output_densityfit `_ - Output file for DensityFit - - -`output_densitymatrix `_ - Output file for DensityMatrix - - -`output_determinants `_ +`output_determinants `_ Output file for Determinants -`output_electrons `_ +`output_electrons `_ Output file for Electrons -`output_ezfio_files `_ +`output_ezfio_files `_ Output file for Ezfio_files -`output_fcidump `_ - Output file for FCIdump - - -`output_full_ci `_ - Output file for Full_CI - - -`output_generators_cas `_ +`output_generators_cas `_ Output file for Generators_CAS -`output_generators_full `_ +`output_generators_full `_ Output file for Generators_full -`output_generators_restart `_ - Output file for Generators_restart - - -`output_hartree_fock `_ +`output_hartree_fock `_ Output file for Hartree_Fock -`output_integrals_bielec `_ +`output_integrals_bielec `_ Output file for Integrals_Bielec -`output_integrals_monoelec `_ +`output_integrals_monoelec `_ Output file for Integrals_Monoelec -`output_moguess `_ +`output_mo_basis `_ + Output file for MO_Basis + + +`output_moguess `_ Output file for MOGuess -`output_molden `_ - Output file for Molden - - -`output_mos `_ - Output file for MOs - - -`output_mp2 `_ - Output file for MP2 - - -`output_mrcc `_ +`output_mrcc `_ Output file for MRCC -`output_nuclei `_ +`output_nuclei `_ Output file for Nuclei -`output_perturbation `_ +`output_perturbation `_ Output file for Perturbation -`output_properties `_ +`output_properties `_ Output file for Properties -`output_pseudo `_ +`output_pseudo `_ Output file for Pseudo -`output_qmcchem `_ - Output file for QmcChem - - -`output_selectors_full `_ +`output_selectors_full `_ Output file for Selectors_full -`output_selectors_no_sorted `_ - Output file for Selectors_no_sorted - - -`output_singlerefmethod `_ +`output_singlerefmethod `_ Output file for SingleRefMethod -`output_utils `_ +`output_utils `_ Output file for Utils diff --git a/src/Integrals_Bielec/.gitignore b/src/Integrals_Bielec/.gitignore index 955ad80c..54da4aed 100644 --- a/src/Integrals_Bielec/.gitignore +++ b/src/Integrals_Bielec/.gitignore @@ -1,13 +1,20 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +MO_Basis +Utils +Pseudo +Bitmask +AO_Basis +Electrons +Nuclei \ No newline at end of file diff --git a/src/Integrals_Bielec/tree_dependency.png b/src/Integrals_Bielec/tree_dependency.png index 4bc3b55a..fb08a8dd 100644 Binary files a/src/Integrals_Bielec/tree_dependency.png and b/src/Integrals_Bielec/tree_dependency.png differ diff --git a/src/Integrals_Monoelec/.gitignore b/src/Integrals_Monoelec/.gitignore index 5cb6d504..6a1ebe1f 100644 --- a/src/Integrals_Monoelec/.gitignore +++ b/src/Integrals_Monoelec/.gitignore @@ -1,22 +1,21 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -AOs -MOs -Electrons -Utils -Nuclei +ezfio_interface.irp.f Ezfio_files +MO_Basis +Utils +Pseudo +AO_Basis +Electrons +Nuclei check_orthonormality -save_ortho_mos +save_ortho_mos \ No newline at end of file diff --git a/src/Integrals_Monoelec/NEEDED_CHILDREN_MODULES b/src/Integrals_Monoelec/NEEDED_CHILDREN_MODULES index 31cf3c24..1702863b 100644 --- a/src/Integrals_Monoelec/NEEDED_CHILDREN_MODULES +++ b/src/Integrals_Monoelec/NEEDED_CHILDREN_MODULES @@ -1 +1 @@ -MOs Pseudo +MO_Basis Pseudo diff --git a/src/Integrals_Monoelec/README.rst b/src/Integrals_Monoelec/README.rst index 1a6ed8f1..98ec1331 100644 --- a/src/Integrals_Monoelec/README.rst +++ b/src/Integrals_Monoelec/README.rst @@ -6,7 +6,7 @@ Needed Modules .. image:: tree_dependency.png -* `MOs `_ +* `MO_Basis `_ * `Pseudo `_ Documentation diff --git a/src/Integrals_Monoelec/tree_dependency.png b/src/Integrals_Monoelec/tree_dependency.png index aff3f7bf..10fff3cb 100644 Binary files a/src/Integrals_Monoelec/tree_dependency.png and b/src/Integrals_Monoelec/tree_dependency.png differ diff --git a/src/MOGuess/.gitignore b/src/MOGuess/.gitignore index f87a185b..e57e3bac 100644 --- a/src/MOGuess/.gitignore +++ b/src/MOGuess/.gitignore @@ -1,22 +1,21 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps -Pseudo -Integrals_Monoelec -AOs -MOs -Electrons -Utils -Nuclei +ezfio_interface.irp.f Ezfio_files -H_CORE_guess +Integrals_Monoelec +MO_Basis +Utils +Pseudo +AO_Basis +Electrons +Nuclei +H_CORE_guess \ No newline at end of file diff --git a/src/MOGuess/tree_dependency.png b/src/MOGuess/tree_dependency.png index 6ed2260d..31b8d39b 100644 Binary files a/src/MOGuess/tree_dependency.png and b/src/MOGuess/tree_dependency.png differ diff --git a/src/MO_Basis/.gitignore b/src/MO_Basis/.gitignore new file mode 100644 index 00000000..8eb04d30 --- /dev/null +++ b/src/MO_Basis/.gitignore @@ -0,0 +1,17 @@ +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py +IRPF90_temp +IRPF90_man +irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend +build.ninja +.ninja_log +.ninja_deps +ezfio_interface.irp.f +Utils +Nuclei +AO_Basis +Electrons +Ezfio_files \ No newline at end of file diff --git a/src/MO_Basis/EZFIO.cfg b/src/MO_Basis/EZFIO.cfg new file mode 100644 index 00000000..5aec39e0 --- /dev/null +++ b/src/MO_Basis/EZFIO.cfg @@ -0,0 +1,26 @@ +[mo_tot_num] +type: integer +doc: Total number of molecular orbitals and the size of the keys corresponding +interface: ezfio + +[mo_coef] +type: double precision +doc: coefficient of the ith ao on the jth mo +interface: ezfio +size: (ao_basis.ao_num,mo_basis.mo_tot_num) + +[mo_label] +type: character*(64) +doc: Label characterizing the MOS (local, canonical, natural, etc) +interface: ezfio + +[mo_occ] +type: double precision +doc: MO occupation numbers +interface: ezfio +size: (mo_basis.mo_tot_num) + +[ao_md5] +type: character*(32) +doc: Ao_md5 +interface: ezfio \ No newline at end of file diff --git a/src/MO_Basis/NEEDED_CHILDREN_MODULES b/src/MO_Basis/NEEDED_CHILDREN_MODULES new file mode 100644 index 00000000..fd00d6f5 --- /dev/null +++ b/src/MO_Basis/NEEDED_CHILDREN_MODULES @@ -0,0 +1 @@ +AO_Basis Electrons diff --git a/src/MOs/README.rst b/src/MO_Basis/README.rst similarity index 82% rename from src/MOs/README.rst rename to src/MO_Basis/README.rst index 784ac176..5cbe0165 100644 --- a/src/MOs/README.rst +++ b/src/MO_Basis/README.rst @@ -38,7 +38,7 @@ Needed Modules .. image:: tree_dependency.png -* `AOs `_ +* `AO_Basis `_ * `Electrons `_ Documentation @@ -47,16 +47,16 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`ao_to_mo `_ +`ao_to_mo `_ Transform A from the AO basis to the MO basis -`cholesky_mo `_ +`cholesky_mo `_ Cholesky decomposition of AO Density matrix to generate MOs -`mix_mo_jk `_ +`mix_mo_jk `_ subroutine that rotates the jth MO with the kth MO to give two new MO's that are '+' = 1/sqrt(2) (|j> + |k>) @@ -65,70 +65,70 @@ Documentation by convention, the '-' MO is in the greater index (max(j,k)) -`mo_as_eigvectors_of_mo_matrix `_ +`mo_as_eigvectors_of_mo_matrix `_ Undocumented -`mo_as_eigvectors_of_mo_matrix_sort_by_observable `_ +`mo_as_eigvectors_of_mo_matrix_sort_by_observable `_ Undocumented -`mo_coef `_ +`mo_coef `_ Molecular orbital coefficients on AO basis set mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_label : Label characterizing the MOS (local, canonical, natural, etc) -`mo_coef_transp `_ +`mo_coef_transp `_ Molecular orbital coefficients on AO basis set -`mo_density_matrix `_ +`mo_density_matrix `_ Density matrix in MO basis -`mo_density_matrix_virtual `_ +`mo_density_matrix_virtual `_ Density matrix in MO basis (virtual MOs) -`mo_label `_ +`mo_label `_ Molecular orbital coefficients on AO basis set mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_label : Label characterizing the MOS (local, canonical, natural, etc) -`mo_occ `_ +`mo_occ `_ MO occupation numbers -`mo_overlap `_ +`mo_overlap `_ Undocumented -`mo_sort_by_observable `_ +`mo_sort_by_observable `_ Undocumented -`mo_to_ao `_ +`mo_to_ao `_ Transform A from the MO basis to the AO basis -`mo_to_ao_no_overlap `_ +`mo_to_ao_no_overlap `_ Transform A from the MO basis to the S^-1 AO basis -`mo_tot_num `_ +`mo_tot_num `_ Total number of molecular orbitals and the size of the keys corresponding -`mo_tot_num_align `_ +`mo_tot_num_align `_ Aligned variable for dimensioning of arrays -`s_mo_coef `_ +`s_mo_coef `_ Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix. -`save_mos `_ +`save_mos `_ Undocumented diff --git a/src/MOs/cholesky_mo.irp.f b/src/MO_Basis/cholesky_mo.irp.f similarity index 100% rename from src/MOs/cholesky_mo.irp.f rename to src/MO_Basis/cholesky_mo.irp.f diff --git a/src/MOs/mo_overlap.irp.f b/src/MO_Basis/mo_overlap.irp.f similarity index 100% rename from src/MOs/mo_overlap.irp.f rename to src/MO_Basis/mo_overlap.irp.f diff --git a/src/MOs/mos.irp.f b/src/MO_Basis/mos.irp.f similarity index 93% rename from src/MOs/mos.irp.f rename to src/MO_Basis/mos.irp.f index 634773a8..016b48ad 100644 --- a/src/MOs/mos.irp.f +++ b/src/MO_Basis/mos.irp.f @@ -26,7 +26,6 @@ END_PROVIDER BEGIN_PROVIDER [ double precision, mo_coef, (ao_num_align,mo_tot_num) ] -&BEGIN_PROVIDER [ character*(64), mo_label ] implicit none BEGIN_DOC ! Molecular orbital coefficients on AO basis set @@ -55,17 +54,28 @@ END_PROVIDER enddo enddo deallocate(buffer) - call ezfio_has_mo_basis_mo_label(exists) - if (exists) then - call ezfio_get_mo_basis_mo_label(mo_label) - else - mo_label = 'no_label' - endif else ! Orthonormalized AO basis mo_coef = 0. endif - +END_PROVIDER + +BEGIN_PROVIDER [ character*(64), mo_label ] + implicit none + BEGIN_DOC + ! Molecular orbital coefficients on AO basis set + ! mo_coef(i,j) = coefficient of the ith ao on the jth mo + ! mo_label : Label characterizing the MOS (local, canonical, natural, etc) + END_DOC + + logical :: exists + PROVIDE ezfio_filename + call ezfio_has_mo_basis_mo_label(exists) + if (exists) then + call ezfio_get_mo_basis_mo_label(mo_label) + else + mo_label = 'no_label' + endif END_PROVIDER BEGIN_PROVIDER [ double precision, mo_coef_transp, (mo_tot_num_align,ao_num) ] diff --git a/src/MO_Basis/tree_dependency.png b/src/MO_Basis/tree_dependency.png new file mode 100644 index 00000000..028fc9bd Binary files /dev/null and b/src/MO_Basis/tree_dependency.png differ diff --git a/src/MOs/utils.irp.f b/src/MO_Basis/utils.irp.f similarity index 77% rename from src/MOs/utils.irp.f rename to src/MO_Basis/utils.irp.f index 38357c5d..7cc94c6d 100644 --- a/src/MOs/utils.irp.f +++ b/src/MO_Basis/utils.irp.f @@ -30,7 +30,7 @@ subroutine mo_as_eigvectors_of_mo_matrix(matrix,n,m,label) double precision, allocatable :: mo_coef_new(:,:), R(:,:),eigvalues(:) !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: mo_coef_new, R - call write_time(output_mos) + call write_time(output_mo_basis) if (m /= mo_tot_num) then print *, irp_here, ': Error : m/= mo_tot_num' stop 1 @@ -40,21 +40,21 @@ subroutine mo_as_eigvectors_of_mo_matrix(matrix,n,m,label) call lapack_diag(eigvalues,R,matrix,size(matrix,1),size(matrix,2)) integer :: i - write (output_mos,'(A)'), 'MOs are now **'//trim(label)//'**' - write (output_mos,'(A)'), '' - write (output_mos,'(A)'), 'Eigenvalues' - write (output_mos,'(A)'), '-----------' - write (output_mos,'(A)'), '' - write (output_mos,'(A)'), '======== ================' + write (output_mo_basis,'(A)'), 'MOs are now **'//trim(label)//'**' + write (output_mo_basis,'(A)'), '' + write (output_mo_basis,'(A)'), 'Eigenvalues' + write (output_mo_basis,'(A)'), '-----------' + write (output_mo_basis,'(A)'), '' + write (output_mo_basis,'(A)'), '======== ================' do i = 1, m - write (output_mos,'(I8,X,F16.10)'), i,eigvalues(i) + write (output_mo_basis,'(I8,X,F16.10)'), i,eigvalues(i) enddo - write (output_mos,'(A)'), '======== ================' - write (output_mos,'(A)'), '' + write (output_mo_basis,'(A)'), '======== ================' + write (output_mo_basis,'(A)'), '' call dgemm('N','N',ao_num,m,m,1.d0,mo_coef_new,size(mo_coef_new,1),R,size(R,1),0.d0,mo_coef,size(mo_coef,1)) deallocate(mo_coef_new,R,eigvalues) - call write_time(output_mos) + call write_time(output_mo_basis) mo_label = label SOFT_TOUCH mo_coef mo_label @@ -69,7 +69,7 @@ subroutine mo_as_eigvectors_of_mo_matrix_sort_by_observable(matrix,observable,n, integer,allocatable :: iorder(:) !DIR$ ATTRIBUTES ALIGN : $IRP_ALIGN :: mo_coef_new, R - call write_time(output_mos) + call write_time(output_mo_basis) if (m /= mo_tot_num) then print *, irp_here, ': Error : m/= mo_tot_num' stop 1 @@ -120,21 +120,21 @@ subroutine mo_as_eigvectors_of_mo_matrix_sort_by_observable(matrix,observable,n, print*,'' enddo - write (output_mos,'(A)'), 'MOs are now **'//trim(label)//'**' - write (output_mos,'(A)'), '' - write (output_mos,'(A)'), 'Eigenvalues' - write (output_mos,'(A)'), '-----------' - write (output_mos,'(A)'), '' - write (output_mos,'(A)'), '======== ================' + write (output_mo_basis,'(A)'), 'MOs are now **'//trim(label)//'**' + write (output_mo_basis,'(A)'), '' + write (output_mo_basis,'(A)'), 'Eigenvalues' + write (output_mo_basis,'(A)'), '-----------' + write (output_mo_basis,'(A)'), '' + write (output_mo_basis,'(A)'), '======== ================' do i = 1, m - write (output_mos,'(I8,X,F16.10)'), i,eigvalues(i) + write (output_mo_basis,'(I8,X,F16.10)'), i,eigvalues(i) enddo - write (output_mos,'(A)'), '======== ================' - write (output_mos,'(A)'), '' + write (output_mo_basis,'(A)'), '======== ================' + write (output_mo_basis,'(A)'), '' call dgemm('N','N',ao_num,m,m,1.d0,mo_coef_new,size(mo_coef_new,1),R,size(R,1),0.d0,mo_coef,size(mo_coef,1)) deallocate(mo_coef_new,R,eigvalues) - call write_time(output_mos) + call write_time(output_mo_basis) mo_label = label SOFT_TOUCH mo_coef mo_label @@ -168,12 +168,12 @@ subroutine mo_sort_by_observable(observable,label) enddo enddo - write (output_mos,'(A)'), 'MOs are now **'//trim(label)//'**' - write (output_mos,'(A)'), '' + write (output_mo_basis,'(A)'), 'MOs are now **'//trim(label)//'**' + write (output_mo_basis,'(A)'), '' deallocate(mo_coef_new,value) -! call write_time(output_mos) +! call write_time(output_mo_basis) mo_label = label SOFT_TOUCH mo_coef mo_label diff --git a/src/MOs/.gitignore b/src/MOs/.gitignore deleted file mode 100644 index 955ad80c..00000000 --- a/src/MOs/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# -IRPF90_temp -IRPF90_man -irpf90.make -tags -Makefile.depend -irpf90_entities -build.ninja -.ninja_log -.ninja_deps diff --git a/src/MOs/NEEDED_CHILDREN_MODULES b/src/MOs/NEEDED_CHILDREN_MODULES deleted file mode 100644 index 4692ec21..00000000 --- a/src/MOs/NEEDED_CHILDREN_MODULES +++ /dev/null @@ -1 +0,0 @@ -AOs Electrons diff --git a/src/MOs/mos.ezfio_config b/src/MOs/mos.ezfio_config deleted file mode 100644 index b0971eb8..00000000 --- a/src/MOs/mos.ezfio_config +++ /dev/null @@ -1,7 +0,0 @@ -mo_basis - mo_tot_num integer - mo_coef double precision (ao_basis_ao_num,mo_basis_mo_tot_num) - mo_label character*(64) - mo_occ double precision (mo_basis_mo_tot_num) - ao_md5 character*(32) - diff --git a/src/MOs/tree_dependency.png b/src/MOs/tree_dependency.png deleted file mode 100644 index a7a32ce5..00000000 Binary files a/src/MOs/tree_dependency.png and /dev/null differ diff --git a/src/Nuclei/.gitignore b/src/Nuclei/.gitignore index 955ad80c..f09c71f7 100644 --- a/src/Nuclei/.gitignore +++ b/src/Nuclei/.gitignore @@ -1,13 +1,14 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Ezfio_files +Utils \ No newline at end of file diff --git a/src/Nuclei/EZFIO.cfg b/src/Nuclei/EZFIO.cfg new file mode 100644 index 00000000..81c168ff --- /dev/null +++ b/src/Nuclei/EZFIO.cfg @@ -0,0 +1,22 @@ +[nucl_num] +doc: Number of nuclei +type: integer +interface: ezfio, provider + +[nucl_label] +doc: Nuclear labels +type: character*(32) +size: (nuclei.nucl_num) +interface: ezfio, provider + +[nucl_charge] +doc: Nuclear charges +type:double precision +size: (nuclei.nucl_num) +interface: ezfio, provider + +[nucl_coord] +doc: Nuclear coordinates in the format (:, {x,y,z}) +type: double precision +size: (nuclei.nucl_num,3) +interface: ezfio \ No newline at end of file diff --git a/src/Nuclei/README.rst b/src/Nuclei/README.rst index e96fd490..9f0b15d9 100644 --- a/src/Nuclei/README.rst +++ b/src/Nuclei/README.rst @@ -23,68 +23,68 @@ Documentation .. Do not edit this section. It was auto-generated from the .. by the `update_README.py` script. -`element_name `_ +`element_name `_ Array of the name of element, sorted by nuclear charge (integer) -`nucl_charge `_ +`nucl_charge `_ Nuclear charges -`nucl_coord `_ +`nucl_coord `_ Nuclear coordinates in the format (:, {x,y,z}) -`nucl_coord_transp `_ +`nucl_coord_transp `_ Transposed array of nucl_coord -`nucl_dist `_ +`nucl_dist `_ nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors -`nucl_dist_2 `_ +`nucl_dist_2 `_ nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors -`nucl_dist_vec_x `_ +`nucl_dist_vec_x `_ nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors -`nucl_dist_vec_y `_ +`nucl_dist_vec_y `_ nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors -`nucl_dist_vec_z `_ +`nucl_dist_vec_z `_ nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors -`nucl_label `_ +`nucl_label `_ Nuclear labels -`nucl_num `_ +`nucl_num `_ Number of nuclei -`nucl_num_aligned `_ - Number of nuclei +`nucl_num_aligned `_ + Number of nuclei algined -`nuclear_repulsion `_ +`nuclear_repulsion `_ Nuclear repulsion energy -`positive_charge_barycentre `_ +`positive_charge_barycentre `_ Centroid of the positive charges diff --git a/src/Nuclei/nuclei.ezfio_config b/src/Nuclei/nuclei.ezfio_config deleted file mode 100644 index 07be4d29..00000000 --- a/src/Nuclei/nuclei.ezfio_config +++ /dev/null @@ -1,6 +0,0 @@ -nuclei - nucl_num integer - nucl_label character*(32) (nuclei_nucl_num) - nucl_charge double precision (nuclei_nucl_num) - nucl_coord double precision (nuclei_nucl_num,3) - diff --git a/src/Nuclei/nuclei.irp.f b/src/Nuclei/nuclei.irp.f index ec1fb7d4..a8def602 100644 --- a/src/Nuclei/nuclei.irp.f +++ b/src/Nuclei/nuclei.irp.f @@ -1,57 +1,14 @@ - BEGIN_PROVIDER [ integer, nucl_num ] -&BEGIN_PROVIDER [ integer, nucl_num_aligned ] +BEGIN_PROVIDER [ integer, nucl_num_aligned ] implicit none BEGIN_DOC - ! Number of nuclei + ! Number of nuclei algined END_DOC PROVIDE ezfio_filename - nucl_num = 0 - logical :: has - call ezfio_has_nuclei_nucl_num(has) - if (has) then - call ezfio_get_nuclei_nucl_num(nucl_num) - else - print *, irp_here - stop 1 - endif - ASSERT (nucl_num > 0) integer :: align_double nucl_num_aligned = align_double(nucl_num) END_PROVIDER -BEGIN_PROVIDER [ double precision, nucl_charge, (nucl_num) ] - implicit none - BEGIN_DOC - ! Nuclear charges - END_DOC - PROVIDE ezfio_filename - nucl_charge = -1.d0 - logical :: has - call ezfio_has_nuclei_nucl_charge(has) - if (has) then - call ezfio_get_nuclei_nucl_charge(nucl_charge) - else - print *, irp_here - stop 1 - endif - ASSERT (minval(nucl_charge) >= 0.d0) -END_PROVIDER - -BEGIN_PROVIDER [ character*(32), nucl_label, (nucl_num) ] - implicit none - BEGIN_DOC - ! Nuclear labels - END_DOC - PROVIDE ezfio_filename - nucl_label = "" - logical :: has - call ezfio_has_nuclei_nucl_label(has) - if (has) then - call ezfio_get_nuclei_nucl_label(nucl_label) - endif -END_PROVIDER - BEGIN_PROVIDER [ double precision, nucl_coord, (nucl_num_aligned,3) ] implicit none diff --git a/src/Pseudo/.gitignore b/src/Pseudo/.gitignore index 955ad80c..7305be49 100644 --- a/src/Pseudo/.gitignore +++ b/src/Pseudo/.gitignore @@ -1,13 +1,15 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f +Nuclei +Ezfio_files +Utils \ No newline at end of file diff --git a/src/Utils/.gitignore b/src/Utils/.gitignore index 955ad80c..85ad9d4e 100644 --- a/src/Utils/.gitignore +++ b/src/Utils/.gitignore @@ -1,13 +1,12 @@ -# -# Do not modify this file. Add your ignored files to the gitignore -# (without the dot at the beginning) file. -# +# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py IRPF90_temp IRPF90_man -irpf90.make -tags -Makefile.depend irpf90_entities +tags +irpf90.make +Makefile +Makefile.depend build.ninja .ninja_log .ninja_deps +ezfio_interface.irp.f \ No newline at end of file